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

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données avancés
Advertisements

Classification et prédiction
Classification et prédiction
Recherche de motifs par méthodes exploratoires: Comparaisons de performances et statistiques sur le score.
Métaheuristiques pour l’optimisation combinatoire
Inférence statistique
1 Réunion biblio 13/12/00 Support Vectors Présentation générale SSS Maintaining Algorithm.
Optimisation dans les télécommunications
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
INTRODUCTION.
Ordonnancement des mouvements de deux robots
Plus rapide chemin bicritère : un problème d’aménagement du territoire
                                        République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique.
LES AUTRES MÉTHODES D’ORDONNANCEMENT
Conception et analyse des algorithmes
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
GPA750 – Ordonnancement des systèmes de production aéronautique
Partie 1: Notions & concepts
Application des algorithmes génétiques
Les Systèmes Multi-Agents pour la Gestion de Production
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
Programmation linéaire
GPA750 – Ordonnancement des systèmes de production aéronautique
Optimisation linéaire
III – Convergence Asymptotique
4. Algorithme de Recuit Simulé
LES ARBRES IUP 2 Génie Informatique
II- L’algorithme du recuit simulé (pseudo-code)
GPA750 Les ateliers multigammes Chapitre 5
IFT Complexité et NP-complétude
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
CSI 4506: Introduction à l’intelligence artificielle
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Algorithmes d ’approximation
La gestion de projet Cours #13 et 14.
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Programmation dynamique
GPA750 – Gestion de Projets
2. Algorithme de Recherche Tabou
Programmation linéaire en nombres entiers : les méthodes de troncature
Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
les méthodes de recherche locale
Tutorat 7 - Introduction au Routage et OSPF
Programmation linéaire en nombres entiers
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
Gestion de projet Planification.
Algorithmes Branch & Bound
Le problème central de l’ordonnancement (les plus longs chemins)
LE FLOT MAXIMAL et LA COUPE MINIMALE
STATISTIQUES – PROBABILITÉS
Intervalles de confiance pour des proportions L’inférence statistique
CSI 4506: Introduction à l’Intelligence Artificielle
Exploration systématique de graphes
08– Arbres Binomiaux Chapitre 12 Hull, 8 éd..
Recherches locales et méta-heuristiques
Optimisation pour la Conception de Systèmes Embarqués
Recherche de motifs par projections aléatoires
Présenté par : ABED Djemaa; BAKHOUIA Roqiya.
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Post-optimisation, analyse de sensibilité et paramétrage
Le Jeu et l’intelligence artificielle
Problème du Car Sequencing
Recuit simulé Une métaheuristique venue de la métallurgie.
Ordonnancement en présence d’agents individualistes
CSI2510 Structures de données et algorithmes Plus court chemin
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
Transcription de la présentation:

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

3.1. Sommaire Objet : Techniques : Règles de Priorité Locale. 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.

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.

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.

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.

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.

Sommaire : Règles de priorité base

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, Ij est calculé pour les commandes restantes et la commande avec Ij plus grand est sélectionnée à la prochaine étape).

3.3. Règle de priorité composée : Règle ATC 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.

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.

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.

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:

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

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.

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.

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.

3.4. Énumération Implicite : Exemple d’énumération implicite 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.

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

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.

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.

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

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

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.