260 likes | 600 Views
GPA750 – Ordonnancement des systèmes de production aéronautique. Cours # 3. Classification des problèmes. Les problèmes sont classifiés avec 3 paramètres : α/β/γ. a) Le champ α (1 entrée) décrit des machines et l’atelier :
E N D
GPA750 – Ordonnancement des systèmes de production aéronautique Cours # 3
Classification des problèmes Les problèmes sont classifiés avec 3 paramètres : α/β/γ. a) Le champ α (1 entrée) décrit des machines et l’atelier : • 1 : 1 machine; m : m machines; P : machines parallèles; F : flow-shop; J : job-shop; O : open-shop; FFs : Flexible flow-shop; etc. b) Le champ β (0, 1 ou plusieurs entrées) décrit les caractéristiques de traitement et des contraintes : • interruption; précédence;préemption (prmp); rj; dj; pij; sijk, permutation (prmu); recirculation (recr); pas d ’attente (nwt = no-wait); etc. c) Le champ γ (1 entrée) contient la mesure deperformance : Cmax, Lmax, Tmax, Cmoy Exemple: J4//Cmax décrit un problème de job-shop avec 4 machines; pas de recirculation et l ’objectif est de minimiser le temps de finition (makespan).
Problèmes avec une machine et deux machines • Séquences de Permutation • Temps moyen de finition • Retard Maximum • Nombre de tâches en retard • Problème avec temps de changement sur une machine • Algorithmes pour deux machines
1. Calendrier de type Permutation • Nbre de calendriers (n!)m • Quelques résultats pour les problèmes d’une machine où: • rj= 0 pour j=1,…,n • Théorème 3.I: Soit R une mesure régulière alors : • le calendrier optimal ne contient pas de temps d’attente entre deux commandes. • pas de gain possible en permettant la pré-emption. • Donc le calendrier optimal est de type ‘permutation’ • Est complètement spécifié par une permutation (séquence) des commandes: J1-J2-,…,Jn
Temps d’attente SPT est la règle qui minimise le temps de passage moyen Fmoy Preuve… SPT minimise aussi Cmoy et Lmoy 2. 1.Modèle à 1 machine : Minimiser le temps de Passage Moyen (1//Fmoy)
Exemple avec SPT • Séquence opt?
2.2. Modèle à 1 machine : Minimiser le temps total de finition pondéré (1//wjCj) • Min wjCj • Règle WSPT(weighted shortest processing time first) est optimale. • Trouver la séquence telle que: ou encore • ordonner les commandes dans l’ordre décroissant des wj /pj.
2.2. Modèle à 1 machine : Minimiser le temps total de finition pondéré (1//wjCj) • Exemple avec WSPT Commandes 1 2 3 4 5 6 7 wj 6 18 12 8 8 17 18 pj 3 6 5 5 6 8 10 wj/pj(décroissant) 2 3 2.4 1.6 1.33 2.13 1.8 pj/wj(croissant) 0.5 0.33 0.42 0.63 0.75 0.47 0.56 ordre 4 1 2 6 7 3 5 Séquence optimale : 2-3-6-1-7-4-5
2.3. Modèle à 1 machine : Minimiser le Retard Maximal (1//Lmax) • Théorème: La règle EDD (plus petite date promise en premier) minimise Lmax lorsque rj=0 pour j=1,…,n • La séquence est telle que: • dj(1) dj(2) … dj(n) • Preuve ... • Exemple: • Note 1: le problème 1/ rj/Lmax est extrêmement difficile si rj > 0. • Note 2: EDD minimise aussi Tmax
2.4. Modèle à 1 machine : Minimiser le nombre de commandes en retard (1//Uj) • On définit Uj comme suit : Uj vaut 1 si cj >dj, 0 sinon. • Algorithme de Moore • Étape 1: Déterminer une première séquence en appliquant la règle EDD; • dj(k) ‘= dj(k+1) pour k = 1,2,…,n-1 • Étape 2: Trouver la première commande, Jj(l) en retard. S’il n’y a pas de commande en retard, aller à l’étape 4. • Étape 3: Trouver la commande dans la séquence (Jj(1), … Jj(l)) ayant le plus grand temps d’opération et rejeter la de la séquence. • Retour à l’étape 2 avec la nouvelle séquence ayant une commande en moins; • Étape 4: Construire la séquence optimale en ajouter les commandes rejetées à la séquence actuelle. • Exemple: • Séquence optimale : 2-3-4-6-1-5
2.5. Modèle à 1 machine : Commandes avec contraintes de préséance (1/prec/Fmoy) • Chaîne de commandes • Contrainte 1: Une fois une chaîne débutée, il faut compléter toutes les commandes de la chaîne • Pour minimiser le temps de passage moyen (Fmoy), séquencer les commandes selon la règle SPT modifiée
2.5. Modèle à 1 machine : Commandes avec contraintes de préséance (1/prec/max) • Algorithme de Lawler • contraintes de préséance générales mais sans la contrainte 1; • Coût j(Cj)associé à la commande j • Fonction non décroissante en Cj • Minimiser max = Maxj{j(Cj}
Algorithme de Lawler : Min max = Maxj{j(Cj} • Théorème: • Soit V l’ensemble des commandes qui peuvent être traitées en dernier. • La dernière commande dans le calendrier doit terminer au temps τ= j(Cj); • Soit h de sorte que h(τ) = min jV{j(Cj) }; • Alors il existe une séquence optimale avec h en dernière position Description de l’algorithme: • Étape 1: Soient J = { }, Jc = {1,…n} et V l’ensemble des tâches n’ayant pas de successeurs. • Étape 2: Soit h tel que - τ = j Jc (pj) • h (τ) = Min jV (j (τ) ) • Ajouter h à J; enlever h de Jc et modifier V afin qu’il représente le nouvel ensemble de tâches n’ayant pas de successeurs. • Étape 3 : Si Jc = { }, Stop; autrement aller à l’étape 2.
2.6. Problème avec temps de changement (setup) sur une machine (1/sj/ymax) • Cas 1: Si les temps de setup ne dépendent pas de la séquence • Ajouter les temps de changement et d’opération • Exemple: • Cas 2 : Si les temps de setup dépendent de la séquence • Problème de commis voyageur (TSP) • Très difficile • Solution heuristique • Cas spécial: • Deux paramètres associés aux commandes aj, bj • S ij = aj – bj • Solution optimale – p85 des notes
Exemple avec temps de changement qui dépendent de la séquence • Données de base sous forme matricielle • Ajouter les temps d’opérations aux temps de changement • Ajouter une colonne représentant le temps de changement pour la première commande • Former un réseau avec: • n+1 nœuds • les arcs (i,j) avec • Cij = Sij +Pj • Résoudre avec un algorithme pour TSP. • Exemple: Ville plus proche en premier (nearest neighbour) • Cas spécial – Voir exemple dans notes 1. Cmax = 1+7+4+4+9+1=26
Heuristique pour TSP • Étape 1: Procédure de construction • Déterminer un tour initial à l’aide d’une règle telle que: v • ville plus proche en premier • Résultat: • S: J[1] - J[2] - J[3] - … - J[n] • Où C(S) = temps pour compléter le tour • Étape 2: Procédure d’amélioration • Échange de deux villes adjacentes (pairwise exchange) • Construire un nouveau tour en échangeant deux villes adjacentes • (J[k], J[k+1]) ----> (j[k+1], j[k]) k=1… n-1 • On obtient n-1 nouvelle séquences Sk • Soit S’ tel que C(S’) = Min (C(Sk)), k= 1,…n • Étape 3: • Si C(S’) < C(S) alors S = S’, aller à l ’étape 2; • Sinon – Stop Solution = S avec C(S).
M1 M2 n4 M1 M2 n2 n1 n3 2.7 Modèle avec 2 machines en série: F2//Cmax. • n commandes, 2 machines • M1 avant M2 • Règle de Johnson pour minimiser Cmax • 4 ensembles de commandes • Comment min Cmax?
Algorithme de Johnson pour F2//Cmax. Etape 1 : • Diviser l’ensemble de jobs en 2 sous-ensembles E1= {p1j p2j} et E2 = {p1j p2j}. Si p1j = p2j, alors la job j peut aller dans E1 ou E2 . Etape 2 : • Appliquer SPT sur E1 et LPT sur E2 . • La séquence résultante est optimale «SPT (E1) - LPT (E2)» est optimale pour F2//Cmax. • Remarque : La structure de cédule «SPT (E1) - LPT (E2)» ne peut pas être généralisée pour Fm// Cmax, pour m3.
Adaptation de l ’algorithme de Johnson pour 3 machines en série : F3//Cmax. On a besoin du critère de dominance (étape 1 ci-après). Étape 1 : vérifier le critère de dominance suivant : si la machine M2 est peu occupée i.e. • Minj {p1j} maxj {p2j} : Machine 1 domine machine 2 ou (i.e. l ’une des 2 inégalités suffit) • Minj {p3j} maxj {p2j} : Machine 3 domine machine 2. • Si ce critère est rempli, un calendrier optimal pour F3//Cmax peut être trouvé en procédant à l ’étape 2. Étape 2 : Réduction à un problème avec 2 machines. • Calculer : aj = p1j + p2j et bj = p2j + p3j où aj et bj sont les temps de traitement de la commande j sur la machine #1 et #2 respectivement. • Appliquer ensuite l’algorithme de Johnson (m=2) en utilisant aj et bj.
Exemple de l’algorithme de Johnson pour résoudre F2//Fmax Exemple 1 : • 7 pièces sont traitées par 2 machines et l ’ordre de traitement est le même pour toutes les pièces. Trouver un calendrier optimal qui minimise Fmax. (Notez que dans ce cas Fmax = Cmax car rj = 0). Pièces : 1 2 3 4 5 6 7 p1j (sur M1) :6 2 4 1 7 4 7 p2j (sur M2) : 3 9 3 8 1 5 6 L ’algorithme de Johnson (séquence optimale) : 4-2-6-7-1-3-5 ou 4-2-6-7-3-1-5
Exemple de l’algorithme de Johnson pour résoudre F3//Cmax Exemple 2 : 6 pièces sont traitées par 3 machines et l ’ordre de traitement est le même pour toutes les pièces. Trouver un calendrier optimal qui minimise Cmax. Pièces : 1 2 3 4 5 6 p1j (sur M1) :4 6 3 5 8 4 p2j (sur M2) : 1 2 1 3 2 1 p3j (sur M3) : 3 9 2 7 6 1 L ’algorithme de Johnson adapté à F3//Cmax produit une séquence optimale : 2 - 4- 5 -1-3-6 ou 4 -2 - 5 -1 -3 - 6.