GPA750 – Ordonnancement des systèmes de production aéronautique Cours # 4 Problème avec plusieurs machines • Machines en parallèles • Complexité des problèmes avec plusieurs machines. • Environnement et Organisation (Atelier mono-gamme vs Multigammes) • Représentation réseau d’un calendrier Machines Parallèles Min Fmoy • n commandes • m machines en parallèles • Toutes les commandes sont disponibles au temps t=0 • Algorithme pour minimiser le temps de passage moyen (Min Fmoy ) : – Ordonner les commandes selon SPT; – Prendre les commandes une à la fois et les assigner sur la machine ayant le plus petit temps total d’opération. Exemple de SPT • Exemple j pj 1 5 2 6 3 3 4 8 5 7 6 2 7 3 8 5 9 10 4 2 – Séquence SPT : 6-10-3-7-9-1-8-2-5-4 Fmoy = 8.1 Cmax = 18 Machines Parallèles : Min Cmax et Temps de passage moyen (Fmoy ) • Heuristique pour minimiser Cmax : – Ordonner les commandes selon LPT; – Prendre les commandes une à la fois et les assigner sur la machine ayant le plus petit temps total d’opération. • Pour minimiser Cmax et Temps de passage moyen (Fmoy) – Renverser les séquences sur les machines de sorte que l’on a une séquence SPT. • Exemple… • Ne garantit pas l’optimalité • Qualité de la solution – CMax ( LPT ) 4 1 Copt (OPT ) 3 3m Exemple : Min Cmax et temps de passage moyen Étape 1: LPT Cmax = 16 Étape 2: SPT Fmoy = 8.1 Machines Parallèles : Réduire T • Heuristique 1: Min Tmax – Ordonner les commandes selon EDD; – Prendre les commandes une à la fois et les assigner sur la machine ayant le plus petit temps total d’opération. • Heuristique 2 : Réduire T – Ordonner les commandes selon SLACK (Marge); • dj-pj – Prendre les commandes une à la fois et les assigner sur la machine ayant le plus petit temps total d’opération. • Exemples • Ne garantit pas l’optimalité Exemple pour Réduire T Heuristique 1: EDD Tmoy = 0.6 Tmax = 4 3 commandes en retard Heuristique 2: SLACK Tmoy = 1.3, Tmax = 5, 6 commandes en retard Machines Parallèles : Min le nombre de commandes en retard • Etape 1: Appliquer l’algorithme EDD pour les machines parallèles. • Étape 2: Pour chaque machine, appliquer l’algorithme de Moore pour minimiser le nombre de commandes en retard sur une machine. • Exemple… • Ne garantit pas l’optimalité Sommaire Problèmes avec une machine où toutes les commandes sont disponibles au temps 0 Objectif Algorithme Observations 1 Min Fmoy SPT Calendrier optimal 2 Min Temps total pondéré WSPT Calendrier optimal 3 Min Lmax EDD Calendrier optimal Min nbre de commandes 4 en retard Algorithme de Moore Calendrier optimal Min Temps de passage moyen avec chaînes de 5 préséance SPT modifié Calendrier optimal Min Max j { γj(Cj) } avec contraintes 6 de préséance Algorithme de Lawler Calendrier optimal Min 7 T J j Min SLACK en premier Ne garanti pas l’optimalité Problèmes avec machines en parallèles Objectif 1 Minimiser Fmoy SPT 2 Min Cmax LPT LPT et ensuite SPT 3 Min Cmax et Fmoy sur les machines 4 Min Tmax EDD Calendrier optimal Ne garanti pas l’optimalité Ne garanti pas l’optimalité Ne garanti pas l’optimalité Complexité des problèmes • Procédures simples qui donnent la solution optimale pour certains problèmes. • Solutions approximatives pour d’autres… – Peut-on trouver la solution optimale? • Oui mais… • Deux classes de Problèmes – P vs NP • ‘faciles’ vs ‘difficiles’ – P: On peut trouver une solution dans un temps polynomial • Exemple: règle de Johnson. – NP: Algorithme avec temps de résolution exponentiel • Exemple: énumération complète ou implicite. – Note : P est un sous-ensemble de la classe NP • Donc la plupart des problèmes avec plus de 3 machines font partie de la classe NP . Complexité des algorithmes et des temps de résolution Une opération = 1 micro seconde Complexité Types d’environnements Atelier Mono-gamme Atelier Multi-gamme Atelier Monogamme (Flowshop) • Pour une mesure de performance régulière, il suffit de considérer les calendriers avec la même séquence sur les machines M1 et M2 – Preuve: Faire k avant i sur m1 – Ne change pas les temps de début sur m2 • Il suffit de considérer les calendriers ayant les mêmes séquences sur les machines Mm-1 et Mm afin de minimiser Fmax – Preuve: Faire i avant k sur Mm – ne change pas Fmax • Donc, en pratique, on considère des séquences de permutation seulement dans les ateliers monogammes. Atelier Monogamme Avec encours • Séquence de permutation • J1, …, Jn – Formules pour calcul des temps de finition • Pij – temps d’opération de la commande j sur la machine i – Temps de finition de la première commande sur la machine 1 » Eq (1); – Temps de finition de la kième commande sur la machine 1: » Eq (2) – Temps de finition de la kième commande sur la machine i » Eq (3) i Ci , J 1 Pi , J 1 , i 1,..., m (1) Ci,Jk P1, Jk , k = 1,...,n (2) Ci , Jk max(Ci 1, Jk , Ci , Jk 1 ) Pi , Jk i=2,...,m; k=2,...,n (3) h 1 k h 1 » Représentation réseau Cmax = Plus long chemin dans le réseau Exemple Atelier Monogamme Pas d’encours • Pas d’encours entre les machines • Blocage des machines – Représentation réseau • Ajouter les nœuds (0,Jk), k=1,...,n • Les autres nœuds (i, Jk), i=1,…,m, k=1,…,n • le nœud (i, Jk), représente le temps de départ de la commande k sur la machine i • Le nœud (i, Jk) a deux arcs sortant: – (i+1, Jk) avec comme valeur Pi+1,Jk – (i-1, Jk+1) avec une valeur de Zero – Note : Un problème avec encours limité peut être converti en un problème avec zéro encours. • Ajouter le nombre de machines nécessaires avec des temps d’opération de zéro. Atelier Monogamme Pas d’encours • Soit Dij le temps où la commande j quitte la machine i • Di,J1 = h=1i Ph,J1 • Di,Jk = max(Di-1,Jk + Pi,Jk , Di+1,Jk-1 ) • Dm,Jk = Dm-1,Jk + Pm,Jk • Exemple – Sans encours Atelier Monogamme Pas d’encours • Cas spécial 1: – Deux machines sans encours • Peut être converti en un cas spécial du problème de commis voyageur • Cas Spécial 2: – Pas de temps d’attente entre deux opérations de la même commande – Solution… • Plus tard Atelier Multigamme J1 J2 J3 J4 Représentation d’une séquence réalisable: • Fixer les arcs sur les machines de sorte qu’il n’y ait pas de cycle