gpa750 les ateliers multigammes chapitre 5
Download
Skip this Video
Download Presentation
GPA750 Les ateliers multigammes Chapitre 5

Loading in 2 Seconds...

play fullscreen
1 / 31

GPA750 Les ateliers multigammes Chapitre 5 - PowerPoint PPT Presentation


  • 94 Views
  • Uploaded on

GPA750 Les ateliers multigammes Chapitre 5. Cours 8-9. Sommaire. Ordonnancement dans les ateliers multigammes ( Job shop scheduling ) : Formulation disjonctive. Énumération implicite sur les calendriers actifs. La procédure de résolution par analyse de goulots successifs :

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' GPA750 Les ateliers multigammes Chapitre 5' - magee


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
sommaire
Sommaire
  • Ordonnancement dans les ateliers multigammes (Job shop scheduling) :
    • Formulation disjonctive.
    • Énumération implicite sur les calendriers actifs.
    • La procédure de résolution par analyse de goulots successifs :
      • Minimisation du temps total de finition Cmax.
      • Minimisation de la somme des tardivetés pondérées.
    • Une procédure générale pour l’ordonnancement dans les ateliers flexibles monogames avec temps de changements.
ateliers multigammes job shop
Ateliers multigammes(Job shop)

1. Description de l’environnement de l’atelier

  • m machines (i = 1, 2, …, m);
  • n commandes (j = 1, 2, … n) à traiter avec une fonction objectif à minimiser.
    • Chaque commande j a une opération (i, j) à effectuer sur la machine i pour une durée de pij.
    • Les routages des commandes sur les machines dans l’atelier sont connues et varient de commande en commande.
    • Par exemple:
      • C1 : M1-M2-M4-M5.
      • C2: M2-M3-M5-M4-M1.
    • Chaque commande peut passer sur chaque machine au plus une fois : il n ’y a pas de re-circulation (par exemple : Mk-Ml-Mk).

2. Pratique :

  • Industrie des semi-conducteurs (re-circulation).
  • Hôpital : les commandes sont les patients;chaque patient a son routage et doit être traité à un certain nombre de stations (départements) dans le système.
ateliers multigammes job shop1
Ateliers multigammes(Job shop)

3. Définitions et notation pour Jm//Cmax sans re-circulation

  • On définit le graphe disjonctif G = (N, A, B) pour représenter Jm//Cmax sans re-circulation où:
  • N: l’ensemble des nœuds correspondant à toutes les opérations avec deux nœuds supplémentaires : un nœud source (u) et un nœud puit (v).
  • A: l’ensemble des arcs conjonctifs qui représentent les contraintes de précédence entre les opérations d’une seule commande i.e., les arcs du type (i, j) -> (k, j) qui définissent les contraintes de routage de la commande j.
  • B: l’ensemble des arcs disjonctifs i.e. deux opérations (i, l) et (i, j) appartenant à 2 commandes différentes l et j qui doivent être traitées par la même machine i sont reliées entre elles par 2 arcs disjonctifs allant dans les deux sens opposés : arcs disjonctifs (i, l) <-> (i, j).
  • Note :
    • Un arc disjonctif entre 2 commandes l et j exprime le fait que l et j doivent s’exécuter dans des intervalles de temps disjoints.
ateliers multigammes avec deux machines j2 c max sans recirculation

J2,2

M1

M2

J2,1

J1,2

J1,1

Ateliers multigammes avec deux machines : J2//Cmax sans recirculation

4. Problème J2//Cmax sans re-circulation.

  • Comment min Cmax?
ateliers multigammes avec deux machines j2 c max sans recirculation1

M1

M2

M2

M1

Ateliers multigammes avec deux machines : J2//Cmax sans recirculation

Il y a 4 ensembles de commandes :

  • Type 1 : J1,1 = ensemble des commandes devant être traitées seulement sur la machine M1.
  • Type 2 : J2,2 = ensemble des commandes devant être traitées seulement sur la machine M2.
  • Type 3 : J1,2 = ensemble des commandes qui doivent être traitées d ’abord sur la machine M1 et ensuite sur la machine M2 :
  • Type 4 : J2,1 = ensemble des commandes qui doivent être traitées d’abord sur la machine M2 et ensuite sur la machine M1:
algorithme pour r soudre j2 c max sans recirculation
Algorithme pour résoudre J2//Cmax sans recirculation

Algorithme 1:

  • On suppose qu ’une machine doit compléter toutes les commandes d ’un type donné avant de passer à un autre type de commandes.
  • Étape 1 : ordonnancer les commandes de type 1 avec un ordre quelconque pour donner la séquence J1,1.
  • Étape 2: ordonnancer les commandes de type 2 avec un ordre quelconque pour donner la séquence J2,2.
  • Étape 3 : ordonnancer les commandes de type 3 selon l ’algorithme de Johnson pour F2//Cmax ou F2//Fmax .
  • Étape 4: ordonnancer les commandes de type 3 selon l ’algorithme de Johnson pour F2//Cmax ou F2//Fmax .
  • Attention : Pour l ’étape 4, M2 est considérée comme la première machine!
algorithme pour r soudre j2 c max sans recirculation1
Algorithme pour résoudre J2//Cmax sans recirculation

Ordonnancement obtenu :

  • Machine 1 : Ordre de traitement sur M1 (J1,2; J1,1; J2,1).
  • Machine 2 : Ordre de traitement sur M2 (J2,1; J2,2; J1,2).

Cas particulier: Si type 1 et type 2 sont absents, on a pour J2//Cmax

Algorithme 2:

  • Étape 1 : ordonnancer les commandes de l’ensemble J1,2 selon l’algorithme de Johnson pour F2//Cmax ou F2//Fmax .
  • Étape 2: ordonnancer les commandes de l ’ensemble J2,1 selon l’algorithme de Johnson pour F2//Cmax ou F2//Fmax .

Ordonnancement obtenu :

  • Machine 1 : Ordre de traitement sur M1 (J1,2; J2,1).
  • Machine 2 : Ordre de traitement sur M2 (J2,1; J1,2).

Exemple .

formulation math matique de jm c max sans recirculation et repr sentation disjonctive
Formulation mathématique de Jm//Cmax sans recirculation et représentation disjonctive

Variables de décision:

yij – temps de début de la commande j sur la machine i i.e. temps de début de l’opération (i, j).

Remarque: Notez que seulement une des deux contraintes disjonctives doit être active.

Le graphe disjonctif G = (N, A, B) :

A : Contraintes de routage de chaque commande j : (i, j) -> (k, j).

B: Ensemble des arcs disjonctifs : un sous-ensemble par machine.

N: Ensemble des opérations.

repr sentation d un ordonnancement
Représentation d’un ordonnancement
  • Pour avoir un ordonnancement réalisable:
    • Il faut choisir un arc de chaque paire d’arcs disjonctifs de sorte qu’il n’y ait pas de cycle dans le graphe résultant.
  • On a alors:
    • Une paire d’arcs disjonctifs par opération sur une même machine.
    • Un sous-ensemble d’arcs par machine.
  • En résumé, spécifier un ordonnancement réalisable revient à:
    • Spécifier les arcs pour chaque machine.
    • Ce qui correspond à spécifier le séquence des opérations sur chaque machine.
  • Voir exemple (page suivante).
  • Comment spécifier les arcs (ou ordonnancement pour chaque) machine?
    • En solutionnant un problème correspondant d’ordonnancement sur une machine…
    • La fonction à optimiser pour ce problème d’une machine dépend de la fonction globale.
exemple d un ordonnancement r alisable
Exemple d’un ordonnancement réalisable

Aucune machine ordonnancée

Séquence 1-2-3 sur machine 1

Un ordonnancement complet

Séquence 1-2-3 sur machine 2

Séquence 1-2-3 sur machine 1

Attention aux cycles lorsqu’on fixe les séquences!

probl me d une machine
Considérons la machine 1.

On a un problème d’une machine avec les opérations:

(1,1), (1,2), (1,3).

Le temps au plus tôt r1j pour débuter l’opération (1, j) correspond :

Le chemin le plus long du nœud de source (u) au nœud (i, j) = L(u,(i, j)).

r1j = L(u,(1,j))

r11= 0;

r12= 8;

r13= 0;

Problème d’une machine
proc dure d num ration compl te des calendriers actifs
Pappel : Calendrier actif

Impossible de générer un autre calendrier en changeant la séquence sur les machines de sorte qu’une opération commence plus tôt et aucune opération commence plus tard.

Algorithme 5.2.1 –

Énumération des calendriers actifs.

Étape 1:

 est l’ensemble qui contient les premières opérations de chaque commande j.

rij= 0 pour (i, j) .

Étape 2: sélection de la machine

Pour l’ordonnancement partiel, calculer :

t() = min (i, j)  {rij+pij}.

Soit i* la machine où le minimum est atteint.

Étape 3: Branchement

Soit ’ l’ensemble des opérations (i*, j) tel que

ri*j< t().

Pour chaque opération dans ’, considérer une extension de la séquence partielle avec cette opération comme étant la prochaine sur la machine i*.

Pour chaque extension, supprimer l’opération ordonnancée de et placer ses successeurs immédiats dans  .

Retourner à l’étape 2.

Procédure d’énumération complète des calendriers actifs
l arbre correspondant
L’arbre correspondant
  • Ω l’ensemble qui contient les premières pérations de chaque commande j.

t1 = t(Ω) = min (i,j) ЄΩ{rij+pij}

Ω’ = {(i*,l), (i*,k), (i*,p)}

  • Avantage: La procédure d’énumération peut être utilisée pour tous les fonctions objectifs: Cmax, Lmax, etc.
  • Désavantage : temps de calcul très long.
    • Combien de noeuds à chaque niveau?
proc dure d num ration implicite branch and bound
Procédure d’énumération implicite (Branch and Bound)
  • À chaque nœud de l ’arbre :
    • Calculer une borne inférieure sur toute solution découlant de ce nœud.
  • Supposons que la fonction à minimiser est Cmax.
  • Calcul des bornes inférieures :
      • Au nœud v, soit l’opération (i*, j) qui est choisie.
      • Les arcs disjonctifs suivants doivent être ajoutés sur la machine i*:
        • (i*,j) -> (i*,k), pour toute opération k qui n’est pas encore ordonnancée sur la machine i*.
      • Soit D’ l’ensemble de tous les arcs disjonctifs qui ont été fixés par l’ordonnancement partiel au nœud v.
      • Une borne inférieure LB(v) sur Cmax est donnée par le calcul du chemin critique (ou le chemin le plus long) dans le graphe G(D’). Voir exemple 5.2.2.
calcul d une meilleure borne inf rieure pour jm c max sans recirculation
Calcul d ’une meilleure borne inférieure pour Jm//Cmax sans recirculation
  • Une meilleure borne est donnée par la solution du problème à une machine où:
      • Il y a n opérations.
      • Chaque opération (i, j) a une date de mise en disponibilité rij et une date promise dij.
      • On veut minimiser Lmax.
  • En résumé: À chaque nœud v’, on peut construire un sous problème similaire pour chacune des m machines.
    • Soit la machine i et le graphe G(N, A, D’) où :
      • D’ correspond aux arcs disjonctifs déjà fixés aux itérations précédentes.
    • On a pour chaque opération (i, j) sur la machine i:
      • rij = L(u,(i, j)): Chemin le plus long de la source (u) au nœud (i, j) dans G.
      • dij = LB(v’) – L((i, j),v)) + pij.
    • Soit Lmax(i), la solution pour la machine i.
  • La nouvelle borne est obtenue :
    • en trouvant la solution optimale aux m sous-problèmes (un pour chaque machine) Lmax(i), i= 1,…m;
    • en prenant le maximum sur les Lmax(i).
application de la m thode de branch and boud exemple 5 2 2
Niveau 0 :

Aucun arc disjonctif et Cmax = 22.

LB = 22 (chemin le plus long dans G).

Niveau 1:

Ω = {(1,1), (2,2), (1,3)} et r11= r22= r13 = 0.

t(Ω) = min (0+10, 0+8, 0+4) = 4.

i* = 1 (machine 1).

Ω’ = {(1,1), (1,3)} car r11, r13< t(Ω) = 4.

Donc, deux branches du noeud 0 et donc deux séquences partielles au nœud 1: Calcul des bornes.

(1,1) et (1,3).

Si (1,1) est choisi pour la première position alors les arcs disjonctifs suivants doivent être ajoutés :

(1,1) -> (1,2)

(1,1) -> (1,3)

Avec ces deux arcs Cmax = LB = 24.

Pour avoir une meilleure borne, il faut solutionner 3 sous problèmes d’une machine pour M1, M2 et M3.

Application de la méthode de Branch and Boud : Exemple 5.2.2
application de la m thode de branch and boud exemple 5 2 2 suite
Application de la méthode de Branch and Boud : Exemple 5.2.2 (suite)
  • Avantage: La procédure d’énumération implicite trouve la solutionoptimale pour Cmax.
  • Désavantage: temps de calcul très long
proc dure du shifting bottleneck ou du goulot changeant pour jm c max
Procédure du ‘Shifting Bottleneck’ou du goulot changeant pour Jm//Cmax
  • Qualité de l ’heuristique : Cette procédure n’explore pas toutes les solutions
    • Par conséquent, elle ne garantit pas la solution optimale.
    • Cependant, en pratique, l’heuristique donne de très bonnes solutions.
  • Soit
    • M : l’ensemble des machines se trouvant dans l ’atelier.
    • Mo : l’ensemble des machines où les séquences des opérations sont fixées.
      • Les arcs disjonctifs sont déjà définis.
    • Le graphe G’ est obtenu de G=(N, A, B) en fixant les arcs disjonctifs de l’ensemble Mo et en enlevant les arcs correspondant aux machines de l’ensemble B - Mo.
  • Au début Mo est vide : Mo = .
    • À chaque itération, on fixe la séquence sur une machine ‘goulot’:
      • On choisit la machine goulot en solutionnant M-M0 problèmes d’une machine où il faut minimiser Lmax: Lmax (k) = maxiM-Mo {Lmax(i)}.
      • Soit k la machine goulot. On a :
      • Cmax(Mo  k) >= Cmax (Mo) + Lmax(k).
        • Où Cmax (Mo) est le chemin critique dans le graphe G’.
    • Avant de passer à l’itération suivante, on ré-optimise les machines de l’ensemble Mo.
    • Ajouter k dans Mo.
  • Il faut faire attention aux cycles!
proc dure du goulot changeant pour minimiser la somme des tardivet s
Procédure du goulot changeant pour minimiser la somme des tardivetés
  • Soit un atelier avec m machines et n commandes.
  • Pas de re-circulation possible.
  • On veut minimiser wjTj.
  • Approche similaire au goulot où à chaque itération, on résout un certain nombre de problèmes d’une machine.
  • Soit
    • M : l’ensemble des machines.
    • Mo: l’ensemble des machines où les séquences des opérations sont fixées.
      • Les arcs disjonctifs sont déjà définis.
  • Le graphe disjonctif G = (N, A, B) est différent dans ce cas:
    • Un nœud de source u.
    • n puits : v1, v2, …, vn (un puit pour chaque commande).
    • Le chemin le plus long de u à vk donne le temps de finition de la commande k.
  • Le graphe G’ est obtenu de G = (N, A, B) en fixant les arcs disjonctifs de l’ensemble Mo et en enlevant les arcs correspondant aux machines de l’ensemble B-Mo.
    • Le graphe G’ est nécessairement acyclique (pas de cycle).
le graphe associ au probl me de job shop sans re circulation pour minimiser w j t j
Le graphe associé au problème de job shop sans re-circulation pour minimiser wjTj
proc dure du goulot changeant pour minimiser la somme des tardivet s suite
Procédure du goulot changeant pour minimiser la somme des tardivetés (suite)
  • Soit C’k la date de finition de la commande k dans le graphe G’ : C’k correspond à L(u,vk) dans G’.
  • Au début Mo est vide : Mo = .
  • À chaque itération, on fixe la séquence sur une machine de l’ensemble M-Mo.
  • Soit i une machine de M-Mo :
    • Afin d’éviter une augmentation du temps de finition C’k , chaque opération (i, j) de la machine i doit être complétée avant la date dkij.
    • Étant donné que chaque opération (i, j) peut potentiellement retarder n’importe laquelle des n commandes, cette opération possède n dates promises : (d1ij, d2ij,…, dnij).
  • La forme de la courbe de pénalité est donnée par une fonction linéaire par morceaux (piece-wise linear – voir figure 5.10).
structure du sous probl me i pour minimiser la somme des tardivet s
Structure du sous-problème i pour minimiser la somme des tardivetés
  • Le sous problème correspondant à la machine i est décrit comme suit :
    • Min la somme des tardivetés sous :
      • des contraintes de mise en disponibilité.
      • une fonction de pénalité linéaire par morceaux.
    • Peut être résolu de façon heuristique à l’aide d’une extension de l’algorithme ATC.
    • La priorité d’une opération (i, j) est donnée par la valeur suivante :
  • Soit k la machine goulot. Celle-ci est déterminée par :
    • La machine ayant la plus grande coût de pénalité.
    • En utilisant d’autres procédures plus complexes (voir p. 100).
  • Avant de passer à l’itération suivante, on ré-optimise les machines de l’ensemble Mo.
  • Ajouter k dans Mo
ordonnancement dans les ateliers flexibles monogames avec temps de changements
Ordonnancement dans les ateliers flexibles monogames avec temps de changements
  • Un nombre d’étapes.
  • Chaque étape possède :
    • plusieurs machines en parallèles;
    • ou des machines flexibles avec vitesse variable;
    • temps de changement qui dépendent de la séquence.
proc dure g n rale d ordonnancement dans les ateliers flexibles monogames avec temps de changements
Procédure générale d ’ordonnancement dans les ateliers flexibles monogames avec temps de changements.
  • Identification de l’étape goulot.
  • Détermination des fenêtres de temps sur le goulot.
  • Calcul de la capacité requise sur le goulot et balancement de la charge de travail si nécessaire.
  • Ordonnancement du goulot.
  • Ordonnancement des étapes non-goulots.
ad