La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

GPA 750 Chapitre 3 : Les méthodes dordonnancement génériques Cours #6.

Présentations similaires


Présentation au sujet: "GPA 750 Chapitre 3 : Les méthodes dordonnancement génériques Cours #6."— Transcription de la présentation:

1 GPA 750 Chapitre 3 : Les méthodes dordonnancement génériques Cours #6

2 3.1. Sommaire Objet : décrit quelques techniques utilisées pour traiter les problèmes dordonnancement difficiles rencontrés dans lindustrie (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.

3 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. –{Pred j } : ensemble des prédécesseurs immédiats de j. –{Succ j } : ensemble des successeurs immédiats de j. –A t : Ensemble des commandes pouvant être traitées au temps t. –E t : Ensemble des commandes en cours dexécution au temps t. –F t : Ensemble des commandes complétées au temps t. Procédure Avant (Forward Pass) –Étape 1: t=0; E 0 = { }; A o = {ensemble des commandes nayant pas de prédécesseurs} Pour chaque commande j dans A o : –S j = 0 et C j = p j J = J ; E 0 = A 0 –Étape 2 : t = min j dans E t {C j } Mettre à jour les ensembles J, F t, A t et E t; –A t = A t + {Succ j } –F t = F t + j; –E t = E t - j; –J = J - j. Soit k la commande obtenue en appliquant une règle quelconque sur lensemble A t; –La commande k peut être débutée au temps t sur la machine m. –S k = Max {j Pred j } C j, –C k = S k + p k ; Mettre à jour les ensembles –A t = A t - k; E t = E t + k –Étape 3: Si F t J aller à lÉtape 2; Le temps de finition C max = max (C 1, …., C n ) FIN.

4 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 (d j – p j – t, 0) –Locale vs. Globale règle locale: utilise seulement linformation pertinente – à la file dattente où la commande attend ; –ou à la machine (station) où la commande attend. Règle globale: utilise linformation des autres machines ou des autres commandes dans la séquence.

5 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 (d j – p j – t, 0). La commande ayant la marge minimale est sélectionnée pour traitement. WSPT : Lorsquune machine devient disponible, la commande ayant le plus grand ratio du poids (w j ) sur temps dopération (p j ) 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.

6 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 lorsquune 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 dopération. Largest Number of Successors (LNS) : –Plus grand nombre de successeurs. Shortest Queue at Next Operation (SQNO) : –Plus petite file dattente à la prochaine opération. Est utilisée dans les ateliers multi-gammes. Quand une machine devient libre, la commande ayant la plus petite file dattente à la prochaine machine est sélectionnée.

7 Sommaire : Règles de priorité base

8 3.3. Règles de priorité composée Quand? Est utilisée lorsquon 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 dun paramètre déchelle (scaling factor). Exemple : –Minimiser w j T j (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 lintervalle 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 (d j – p j – t, 0). Principe : commandes sont ordonnancées une à la fois selon lindice I j 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).

9 3.3. Règle de priorité composée : Règle ATC Où : –K est le paramètre déchelle. – est le temps dopération moyen des commandes non traitées. Si K est grand alors ATC = WSPT Si K est petit et il ny 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= w j /p j car exp()=1.

10 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.

11 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 s jk 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. K 1 est le paramètre déchelle associé à la date promise. K 2 est le paramètre déchelle associé au set-up.

12 3.3. ATC généralisé: ATCS (suite) Les paramètres K 1 et K 2 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 C max par la formule suivante pour le cas d une machine (m=1) : Remarque : Cette formule aura tendance à surestimer C max. –Les valeurs de K 1 et K 2 suggérées par analyse statistique et simulation:

13 3.3. Exemple 3.3.1: ATCS Voir p. 35 (séance de laboratoire).

14 3.4. Énumération Implicite (Branch and Bound) La solution de tout problème dordonnancement peut être trouvée à laide dune énumération complète de lensemble 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.

15 3.4. Énumération Implicite (Branch and Bound) Considérons le problème dune 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. Larbre de lénumération à n+1 niveaux : –Le nœud 0 est le début (niveau 0). Aucune commande nest 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.

16 3.4. Énumération Implicite : Exemple dénumération implicite Observations : –Il nest pas nécessaire de considérer toutes les commandes disponibles à un niveau. –Au niveau k-1, les commandes j 1, …, j k-1 ont été séquencées. La commande c ne sera pas considérée pour la position k seulement si : où J est lensemble des commandes disponibles au temps t. –Borne inférieure: EDD avec préemption.

17 3.4. Énumération Implicite : Exemple dénumération implicite Exemple –La borne inférieure est obtenue en utilisant EDD avec préemption sur une machine: Appliquer la règle EDD à chaque fois quune commande devient disponible; Préempter la commande courante si les priorités changent; Modifier le temps dopération de la commande préemptée.

18 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 dun nœud. –Lévaluation dun nœud peut prendre beaucoup de temps; Deux niveaux de filtre à chaque niveau de larbre. Un premier filtre qui va rapidement sélectionner un certain nombre de nœuds à considérer au niveau k de larbre. –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 lordonnancement 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 dexploration: »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 p. 40

19 3.6. Algorithmes damé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? –À laide dune procédure qui définit clairement la transformation dune solution à une autre : S -> S –Exemple: échange des commandes adjacentes dans une séquence.

20 3.6.1 Algorithmes damélioration: Recuit Simulé Supposons que –S 0 est la meilleure solution à date avec un coût de G(S 0 ); –S k : la solution à litération k; –Les solutions dans le voisinage de S k sont explorées; Soit S c une solution dans le voisinage de S k Si G(S c ) G(S k ) alors S k+1 = S c ; –De plus si G(S c ) G(S 0 ) alors S 0 = S c; –Mais, si G(S c ) > G(S k ) alors S k+1 = S c avec une probabilité donnée par P(S k, S c ) où: On a: Et β k = a k où 0 < a < 1 Voir algorithme page 45.

21 3.6.2 Algorithmes damélioration: Recherche Tabou Similaire au recuit simulé. Principales différences : –Dans la méthode dacceptation dun 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 quune mutation est effectuée pour construire un nouvel ordonnancement dans le voisinage dune solution, la mutation inverse est gardée dans la liste. Cette mutation est défendue tant et aussi longtemps quelle reste dans la liste. –Voir algorithme p. 46 et exemple p

22 3.7 Algorithme Génétique Voir algorithme p.48-49

23 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 damélioration locale.


Télécharger ppt "GPA 750 Chapitre 3 : Les méthodes dordonnancement génériques Cours #6."

Présentations similaires


Annonces Google