GPA 750 Chapitre 3 : Les méthodes d’ordonnancement génériques

23
GPA 750 Chapitre 3 : Les méthodes d’ordonnancement génériques Cours #6

description

GPA 750 Chapitre 3 : Les méthodes d’ordonnancement génériques. Cours #6. 3.1. Sommaire. Objet : décrit quelques techniques utilisées pour traiter les problèmes d’ordonnancement difficiles rencontrés dans l’industrie (il faut donc trouver une solution acceptable) . Techniques : - PowerPoint PPT Presentation

Transcript of GPA 750 Chapitre 3 : Les méthodes d’ordonnancement génériques

Page 1: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

GPA 750Chapitre 3 : Les méthodes

d’ordonnancement génériques

Cours #6

Page 2: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.1. SommaireObjet :• décrit quelques techniques utilisées pour traiter les problèmes d’ordonnancement

difficiles rencontrés dans l’industrie (il faut donc trouver une solution acceptable).

Techniques :• Règles de Priorité Locale.• Règles de Priorité Composée.• Énumération Implicite (Branch & Bound).• Recherche de type ‘Beam’.• Recherche de type locale:

– Recuit simulé (Simulated Annealing).– Recherche Tabou (Tabu Search).– Algorithme Génétique.

Page 3: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.2. Règles de priorité de base : Procédure générale

• Initialisation– S’j : temps de début au plus tôt de j;– C’j : temps de fin au plus tôt de j;– J = Ensemble des commandes .– {Predj} : ensemble des prédécesseurs immédiats de j.– {Succj} : ensemble des successeurs immédiats de j.– At : Ensemble des commandes pouvant être traitées au temps t.– Et : Ensemble des commandes en cours d’exécution au temps t.– Ft : Ensemble des commandes complétées au temps t.

• Procédure Avant (Forward Pass)– Étape 1:

• t=0; E0 = { }; Ao = {ensemble des commandes n’ayant pas de prédécesseurs}• Pour chaque commande j dans Ao :

– S’j = 0 et C’j = pj

• J = J ; E0 = A0

– Étape 2 :• t = min j dans Et

{C’j}• Mettre à jour les ensembles J, Ft, At et Et;

– At = At + {Succj} – Ft = Ft + j;– Et = Et - j;– J = J - j.

• Soit k la commande obtenue en appliquant une règle quelconque sur l’ensemble At;– La commande k peut être débutée au temps t sur la machine m.– S’k = Max {j Predj}

C’j,– C’k = S’k + pk ;

• Mettre à jour les ensembles– At = At - k; Et = Et + k

– Étape 3:• Si Ft J aller à l’Étape 2;• Le temps de finition Cmax = max (C’1, …., C’n)• FIN.

Page 4: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.2. Règles de priorité de base: Règles de priorité locale

• Différents types de classifications de règles de priorité :– Statique vs. Dynamique

• Statique– dépend des données de la commande ou de la machine.

» Exemple : SPT– Reste invariable dans le temps.

• Dynamique– Peut varier dans le temps

» Exemple Marge Minimale en premier (MS) défini comme suit : Max (dj – pj – t, 0)

– Locale vs. Globale• règle locale: utilise seulement l’information pertinente

– à la file d’attente où la commande attend ;– ou à la machine (station) où la commande attend.

• Règle globale: utilise l’information des autres machines ou des autres commandes dans la séquence.

Page 5: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.2. Règles de priorité de base : Exemples de règles

• Règle Aléatoire (SIRO):– Sélectionner la commande à exécuter de façon aléatoire.

• Earliest Release Date First (ERD):– Date de mise en disponibilité le plus tôt en premier (PAPS).

• Earliest Due Date First (EDD) :– La commande avec la plus petite date promise en premier; EDD tend à

minimiser le retard maximal.• Minimum Slack Rule (MS) :

– Marge minimale en premier.• Si une machine est disponible au temps t, la marge de chaque commande j est

calculée comme suit : Max (dj – pj – t, 0).• La commande ayant la marge minimale est sélectionnée pour traitement.

• WSPT :• Lorsqu’une machine devient disponible, la commande ayant le plus grand ratio du

poids (wj) sur temps d’opération (pj) est sélectionnée.• LPT :

– Temps le plus long en premier.• Utilisée pour équilibrer la charge de travail en présence de machines parallèles.• Une fois les commandes assignées, on peut appliquer une autre règle sans affecter la

charge de travail.

Page 6: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.2. Règles de priorité de base : Exemples de règles (suite)

• Shortest Setup First (SST) :– Plus petit temps de changement en premier.

• Least Flexible Job First (LFJ) :– commande la moins flexible en premier.

• Est utilisée lorsqu’une commande peut être exécutée sur plusieurs machines.• La commande la moins flexible est celle qui a un nombre restreint de

machines.• Critical Path (CP) :

– Chemin critique.• Choisir la commande à la tête de la plus longue chaîne de temps d’opération.

• Largest Number of Successors (LNS) :– Plus grand nombre de successeurs.

• Shortest Queue at Next Operation (SQNO) : – Plus petite file d’attente à la prochaine opération.

• Est utilisée dans les ateliers multi-gammes.• Quand une machine devient libre, la commande ayant la plus petite file

d’attente à la prochaine machine est sélectionnée.

Page 7: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

Sommaire : Règles de priorité base

Règle Données ObjectivesERP rj Variation dans le débitEDD dj Retard MaximalMS dj Retard MaximalLPT pj Équilibrage du travail sur plusieurs machinesSPT pj Somme des temps de finition, encoursWSPT pj,wj Somme des temps pondéré de finition, encours

CPpj, réseaude précédance Temps de finition

LNSpj, réseaude précédance Temps de finition

SIRO Facilite l'implantationSST sjk Temps de finition et débitLFJ Mj Temps de finition et débitSQNO Temps mort sur les machine

Règles qui dépendent desdates rj et dj

Autres règles

Règles qui dépendenttemps d'opération

Page 8: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.3. Règles de priorité composée

• Quand? Est utilisée lorsqu’on veut considérer plusieurs objectifs à la fois.• Un objectif réaliste : combine plusieurs règles dans le choix de la

commande à effectuer au temps t.– Le poids accordé à une règle dépend de la valeur d’un paramètre d’échelle (scaling

factor).• Exemple :

– Minimiser wjTj (somme de tardiveté) sur une machine : Problème difficile.– On sait que

• WSPT donne la solution optimale si les temps de mise en disponibilité et les dates promises sont égales à 0;

• MS donne la solution optimale quand les dates promises ne sont pas très serrées et bien distribuées sur l’intervalle de travail.

– Règle ATC (Apparent Tardiness Cost - Coût de la tardiveté apparente) combine les règles suivantes : WSPT et MS - marge minimale, où la marge est donnée par max (dj – pj – t , 0).

• Principe : commandes sont ordonnancées une à la fois selon l’indice Ij plus grand parmi les commandes restantes (à chaque fois que la machine est libre, I j est calculé pour les commandes restantes et la commande avec I j plus grand est sélectionnée à la prochaine étape).

Page 9: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.3. Règle de priorité composée : Règle ATC

• Où :– K est le paramètre d’échelle.

– est le temps d’opération moyen des commandes non traitées.

• Si K est grand alors ATC = WSPT• Si K est petit et il n’y a pas de

commandes en retard alors ATC = MS.

• Si K est petit et il y a des commandes en retard alors ATC = WSPT est appliquée aux commandes en retard.

– Si K est grand alors exp() 1.– exp() = 0 pour les commandes avec

des marges. – Si une commande est en retard alors

ATC= wj/pj car exp()=1.

max( ,0)( ) exp( )j j jj

j

w d p tI t

p Kp

p

exp(-MS)

0

0,20,4

0,6

0,81

1,2

0 5 10 15

Marge

Exp(

) exp(-MS)

Page 10: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.3. Règle de priorité composée : Règle ATC (suite)

• La valeur de K est déterminée par analyse statistique sur des données historiques ou par simulation.

• On utilise souvent les statistiques suivantes pour fixer K : – Facteur d’étroitesse des dates promises

• – Étendue des dates promises R

– K sera une fonction de et de R.

1maxd

C

max min

maxd dRC

Page 11: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.3. ATC généralisé : Règle composée avec des temps de changement dépendant de la

séquence (ATCS)Description du type de problème: • n commandes;• Une machine;• Temps de changement sjk si la commande k est effectuée après la

commande j;• La règle ATCS combine les règles WSPT, MS, SST;• La priorité associée à la commande j à la fin de la commande l est:

– où:• est le temps de set-up moyen. • K1 est le paramètre d’échelle associé à la date promise.• K2 est le paramètre d’échelle associé au set-up.

1 2

max( ,0)( , ) exp expj j j ljj

j

w d p t sI t l

p K p K s

s

Page 12: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.3. ATC généralisé: ATCS (suite)

• Les paramètres K1 et K2 sont fonction de 3 facteurs:– Facteur d’étroitesse des dates promise .– Étendue des dates promises R.– La sévérité des temps de changements:

• On peut approximer Cmax par la formule suivante pour le cas d ’une machine (m=1) :

• Remarque : Cette formule aura tendance à surestimer Cmax.

– Les valeurs de K1 et K2 suggérées par analyse statistique et simulation:

/s p

max1

ˆn

jj

C p ns

1

1

2

4.5 , for R 0.5;6 2 , for R 0.5;

/(2 )

K RK R

K

Page 13: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.3. Exemple 3.3.1: ATCS

• Voir p. 35 (séance de laboratoire).

Page 14: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.4. Énumération Implicite (Branch and Bound)

• La solution de tout problème d’ordonnancement peut être trouvée à l’aide d’une énumération complète de l’ensemble des solutions possibles.

• L’énumération peut être effectuée sur un arbre.• L’énumération implicite utilise des bornes pour

faire une énumération intelligente .– Les bornes sont utilisées pour éliminer des branches

de la solution.

Page 15: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.4. Énumération Implicite (Branch and Bound)

• Considérons le problème d’une machine avec :

– des temps de mise en disponibilité;– des dates promises;– On veut min le retard maximal.

• Problème difficile mais peut être résolu par l’énumération implicite.

• L’arbre de l’énumération à n+1 niveaux :– Le nœud 0 est le début (niveau 0). Aucune

commande n’est ordonnancée.– Il y a n branches qui émanent du nœud 0;– Donc, n nœuds au niveau 1:

• Chaque nœud correspond à une séquence partielle avec une commande spécifique en première position.

– (n -1) arcs qui émanent de chaque nœud du niveau 1:

• Donc, n(n-1) nœuds au niveau 2.• Les deux premières positions sont spécifiées.

– Au niveau k, les k premières positions sont spécifiées.

Page 16: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.4. Énumération Implicite : Exemple d’énumération implicite

• Observations : – Il n’est pas nécessaire de considérer toutes les

commandes disponibles à un niveau.– Au niveau k-1, les commandes j1, …, jk-1 ont été

séquencées .• La commande c ne sera pas considérée pour la

position k seulement si :

• où J est l’ensemble des commandes disponibles au temps t.

– Borne inférieure: EDD avec préemption.

min (max( , ) )c l J l lr t r p

Page 17: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.4. Énumération Implicite : Exemple d’énumération implicite

• Exemple 3.4.1– La borne inférieure est obtenue en utilisant

EDD avec préemption sur une machine:• Appliquer la règle EDD à chaque fois qu’une

commande devient disponible;• Préempter la commande courante si les priorités

changent;• Modifier le temps d’opération de la commande

préemptée.

Page 18: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

4.5 Recherche en Faiseau (Beam Search)

• Très similaire à l’énumération implicite.• Cependant, seuls les nœuds ‘intéressants’ ou prometteurs sont explorés.

– Comment déterminer les nœuds prometteurs?• En évaluant le potentiel d’un nœud.

– L’évaluation d’un nœud peut prendre beaucoup de temps;• Deux niveaux de filtre à chaque niveau de l’arbre.• Un premier filtre qui va rapidement sélectionner un certain nombre de nœuds à

considérer au niveau k de l’arbre.– Le nombre de nœuds sélectionner est fixé par la ‘largeur du filtre’.– Exemple de procédure rapide:

» La contribution à la fonction objectif de l’ordonnancement partiel.• Les nœuds ainsi sélectionnés sont explorés plus en détails et seulement un certain

nombre est retenu. – Ce nombre est donné par la largeur du ‘faisceau’.– Exemple de procédure d’exploration:

» Applique une règle de priorité composée.

• Ne garantit pas la solution optimale.– Mais permet de trouver une bonne solution très rapidement.

• Voir exemple 3.5.1 - p. 40

Page 19: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.6. Algorithmes d’amélioration

• Recherche de type locale :– Recuit simulé (Simulated Annealing)– Recherche Tabou (Tabu search)– Algorithme Génétique

• Ces méthodes nécessitent une solution de départ.• À chaque itération, des solutions dans le voisinage de la

solution actuelle sont explorées.• Comment construire des solutions voisines?

– À l’aide d’une procédure qui définit clairement la transformation d’une solution à une autre :

• S -> S’– Exemple: échange des commandes adjacentes dans une

séquence.

Page 20: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.6.1 Algorithmes d’amélioration: Recuit Simulé

• Supposons que – S0 est la meilleure solution à date

avec un coût de G(S0 ); – Sk: la solution à l’itération k;– Les solutions dans le voisinage de Sk

sont explorées;• Soit Sc une solution dans le voisinage

de Sk

• Si G(Sc) G(Sk) alors Sk+1 = Sc;– De plus si G(Sc) G(S0) alors S0 = Sc;

– Mais, si G(Sc) > G(Sk) alors Sk+1 = Sc avec une probabilité donnée par P(Sk, Sc) où:

• On a:

• Et βk = ak où 0 < a < 1• Voir algorithme 3.6.1-page 45.

( ) ( )( , ) exp k ck c

k

G S G SP S S

1 2 ... 0

Page 21: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.6.2 Algorithmes d’amélioration: Recherche Tabou

• Similaire au recuit simulé.• Principales différences :

– Dans la méthode d’acceptation d’un candidat• Recuit simulé – probabiliste.• Tabou – déterministe.

– À chaque itération, une liste d’échanges tabous est conservée.• Longueur de la liste – entre 5 et 9.

– Cette liste contient les mutations inverses.• À chaque fois qu’une mutation est effectuée pour construire un

nouvel ordonnancement dans le voisinage d’une solution, la mutation inverse est gardée dans la liste.

• Cette mutation est défendue tant et aussi longtemps qu’elle reste dans la liste.

– Voir algorithme 3.6.2 - p. 46 et exemple 3.6.2 - p. 46-47

Page 22: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.7 Algorithme Génétique

• Voir algorithme 3.7.1 - p .48-49

Page 23: GPA 750 Chapitre 3 :  Les méthodes d’ordonnancement génériques

3.8. Discussion : Procédure générale

Étape 1: • Calculer différentes statistiques telles que

– Le facteur d’étroitesse des dates promises;– L’étendue des dates promises;– Etc.

Étape 2 : • Déterminer les paramètres de lissage basés sur les

résultats de l’étape 1 et appliquer une règle composée pour trouver une solution initiale.

Étape 3: • Appliquer une méthode d’amélioration locale.