GPA750 – Ordonnancement des systèmes de production aéronautique
description
Transcript of GPA750 – Ordonnancement des systèmes de production aéronautique
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 de performance : 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
2. 1.Modèle à 1 machine : Minimiser le temps de Passage Moyen (1//Fmoy)
•
• Temps d’attente
• SPT est la règle qui minimise le temps de passage moyen Fmoy
• Preuve…
• SPT minimise aussi– Cmoy et Lmoy
1 1
( ) ( )1
( ) ( )1 1
1 1( )
1( )
1 1
n n
j j jj j
n
j k j kj
n n
j k j kj j
F F W pn n
W pn
W pn n
(1)
(2) (1)
(3) (1) (2)
0j
j j
j j j
W
W p
W p p
Exemple avec SPT
•
• Séquence opt?
Commande 1 2 3 4 5 6 7Temps 6 4 6 3 2 7 1
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.
j k
j k
p p
w w
2.2. Modèle à 1 machine : Minimiser le temps total de finition pondéré (1//wjCj)
• Exemple avec WSPTCommandes 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
Commandes 1 2 3 4 5 6Temps 1 1 2 4 1 3Date promise 7 3 8 12 9 3
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
Commandes 1 2 3 4 5 6Temps 10 3 4 8 10 6Date promise 15 6 9 23 20 30
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
•
(1) (2) (3) ( )
(1) (2) (3) ( )
' ' ' '....j j j j n
j j j j n
p p p p
n n n n
où
( )
( )1
j kn
j k ijj
P P
( )j kn = nbre de commandes dans la j(k)ième chaîne.
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:
1. Étape 1: Soient J = { }, Jc = {1,…n} et V l’ensemble des tâches n’ayant pas de successeurs.
2. Étape 2: Soit h tel que- τ = j J
c (pj)
1. h (τ) = Min jV (j (τ) )2. 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.
3. Étape 3 : Si Jc = { }, Stop; autrement aller à l’étape 2.
Exemple (de French)
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).
Exemple avec le TSP
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?
M1 M2
n3
M1 M2
n4
n1n2
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.
Sommaire
Problèmes avec une machine où toutes les commandes sont disponibles au temps 0 Objectif Algorithme Observations Min Fmoy SPT Calendrier optimal Min Temps total pondéré WSPT Calendrier optimal Min Lmax EDD Calendrier optimal
Min nbre de commandes en retard Algorithme de Moore Calendrier optimal
Min Temps de passage moyen avec chaînes de préséance SPT modifié Calendrier optimal
Min Max j { γj(Cj) } avec contraintes de préséance Algorithme de Lawler Calendrier optimal
Min Jj
T Min SLACK en premier Ne garantit pas l’optimalité
Problème avec deux machines en série Min Cmax Algorithme de Johnson Calendrier optimal