Vous êtes sur la page 1sur 11

Classification des modèles

d’ordonnancement
Algorithme de Johnson

L’algorithme de Johnson est l’un des algorithmes d’ordonnancement des centres


de production, crée en 1954 par Johnson … .L’algorithme de Johnson peut
s’appliquer à deux centres de production, à trois centres de production, ou peut
s’étendre à m centres de production qui est le cas d’application générale de
l’algorithme.

Remarque : Un centre de production peut être une machine, un atelier, ou un


département.

I- Ordonnancement de n tâches sur deux machines consécutives

1) Présentation

Pour les n tâches, chacune comporte deux opérations distinctes effectuées par
deux centres de production. Pour simplifier la présentation on conviendra que ces
deux centres sont les machines M1 et M2.

On suppose de plus que l’ordre de passage des différentes tâches est le même sur
les deux machines, c'est-à-dire que la tache doit d’abord s’effectuer sur la
machine M1 puis sur la machine M2 pour tous les travaux à effectuer. Le critère
que l’on retiendra pour juger la performance de l’ordonnancement est celui de la
minimisation du temps total d’exécution de tous les travaux (ce qui inclut les
temps d’attente devant la machine occupée).

2) Démarche

On remplie progressivement le tableau d’affectation en suivant la règle suivante :

Prendre la tâche ayant un temps d’opération le plus court. Si cette opération est
sur la machine M1,mettre la tâche en début de séquence, si l’opération est sur la
machine M2 ,mettre la tâche en fin de séquence. On répète le processus jusqu’à
placer toutes les tâches.
3) Exemple

Soit deux tâches A et B à exécuter sur deux machines M1 et M2.

Voici le tableau de donnés :

Machine/Tâche A B C D E
M1 3 6 4 8 11
M2 5 2 8 12 7

Les valeurs du tableau représentent le temps(en minute) passé par une tâche sur
chaque machine.

Etape1 :

Classant les différentes tâches selon l’algorithme de Johnson.

Voici le tableau d’affectation :

B
A B
A C B
A C E B
A C D E B
Séquence optimale

Donc on déduit que la séquence optimale est : (A;C;D;E;B).

Une fois on a la séquence optimale de l’exécution des tâches, il faut chercher le


temps minimal pour effectuer les différentes tâches selon cette séquence.

Etape2 :

Le tableau suivant montre comment calculer ce temps minimal :


Machine/ A C D E B
Séquence optimale
M1 3 3+4=7 7+8=15 15+11=26 26+6=32
M2 3+5=8 8+8=16 16+12=28 28+7=35 35+2=37

Les valeurs de ce tableau représentent les temps auquel les tâches doivent être
terminées sur l’une des deux machines.

Donc on déduit que :

o le temps minimal pour l’exécution de la séquence optimale est : 37 min


o le temps libre sur la machine M1 est : 5 min
o le temps libre sur la machine M2 est : 3 min

Remarque : Deux contraintes doivent être respectées lors de ce calcul :

1-Une tâche ne peut pas commencer la deuxième opération avant d’avoir


terminer la première.

2-Une tâche ne peut pas commencer sur une machine avant que celle-ci soit libre.

Etape3 :

Après avoir calculé ces différentes données, on dessine le diagramme de Gantt qui
est le suivant :
II- Ordonnancement de n tâches sur trois machines consécutives

1) Présentation

Dans le cas de trois machines, il existe une extension de l’algorithme de


Johnson donnant une solution optimale à condition que la machine
intermédiaire ne doit pas créer un bouchon ; c’est-à-dire que les pièces se
présentant devant cette machine doivent être servi immédiatement.
Donc la condition que la deuxième machine ne soit pas un goulot
d’étranglement se traduit par :

1-le minimum des temps d’opération sur la machine M1 ≥ le maximum des


temps d’opération sur la machine M2.
2-le minimum des temps d’opération sur la machine M3 ≥ le maximum des
temps d’opération sur la machine M2.

Remarque : Si l’une des deux conditions n’est pas vérifiée, il n’est pas alors
garanti que la séquence obtenue soit optimale. On peut seulement espérer
que ca soit une bonne séquence.

Les n tâches s’exécutent sur les trois machines de la même manière que sur
deux machines, en visant toujours à minimiser le temps total d’exécution
de tous les travaux.

2) Démarche

1- Sommer les temps d’exécution sur les deux machines M1 et M2 pour


chaque tâche, et affecter les temps résultant à la machine (M1+M2).
2- Sommer les temps d’exécution sur les deux machines M2 et M3 pour
chaque tâche, et affecter les temps résultant à la machine (M2+M3).
3- Appliquer la règle de Johnson à (M1+M2) et (M2+M3).

3) Exemple
Soit cinq tâches : A, B, C, D et E à exécuter sur trois machines consécutives.

Voici le tableau de données :

Machine/tâche A B C D E
M1 3 6 4 8 11
M2 5 2 8 12 7
M3 5 3 12 7 3

Les valeurs du tableau représentent le temps (en minute) passé par une tâche sur
chaque machine.

On remarque que les deux conditions ne sont pas satisfaisantes, car :

Pour les machines M1 et M2 : 3 < 12.

Pour les machines M2 et M3 : 3 < 12.

Donc on aura une séquence qui n’est pas forcement optimal.

Etape1 :

Machine/tâche A B C D E
M1+M2 8 8 12 20 18
M2+M3 10 5 20 19 10

Etape2 :
Après avoir transformé ce problème de trois machines en un problème deux
machines, on peut appliquer facilement l’algorithme de Johnson.

Voici le tableau d’affectation :

B
A B
A E B
A C E B
A C D E B

Donc on déduit que la séquence obtenue est : (A;C;D;E;B).

Une fois on a la séquence de l’exécution des tâches, il faut chercher le temps


minimal pour effectuer les différentes tâches selon cette séquence.

Etape3 :

Le tableau suivant montre comment calculer ce temps minimal :

Machine/Séquence A C D E B
obtenue
M1 3 3+4=7 7+8=15 15+11=26 26+6=32
M2 3+5=8 8+8=16 16+12=28 28+7=35 35+2=37
M3 8+5=13 16+12=28 28+7=35 35+3=38 38+3=41

Les valeurs de ce tableau représentent les temps auquel les tâches doivent être
terminées sur l’une des trois machines.

Donc on déduit que :

o le temps minimal pour l’exécution de cette séquence est : 41 min


o le temps libre sur la machine M1 est : 9 min
o le temps libre sur la machine M2 est : 7 min
o le temps libre sur la machine M3 est : 11 min

Etape4 :

Après avoir calculé ces différentes données, on dessine le diagramme de Gantt qui
est le suivant :

III- Ordonnancement de n tâches sur m machines consécutives

De la même façon qu’avec trois machines, il est possible de faire toute sorte de
combinaison de machines pour obtenir deux groupes et appliquer la méthode de
Johnson.
La méthode des heuristiques
De nombreuses heuristiques ont été développées depuis une trentaine d’années,
la majorité d’entre elles utilisent des artifices de calcul pour se ramener au
problème de Johnson à deux machines, afin de pouvoir utiliser l’algorithme de
Johnson.

Remarque : L’instabilité naturelle dans la formulation des problèmes (le


groupement des machines) est du à :

i) l’hétérogénéité de la demande
ii) les aléas dans la repense du système pour satisfaire cette demande
iii) interaction entre la fonction production et les autres fonctions de
l’entreprise

Ces méthodes heuristiques donne de bons résultats, mais ne garantie pas la solution
optimale.

1- Heuristique CDS : ?????

Campell, Dudek et Smith (CDS) ont proposé un algorithme qui consiste


simplement à générer m−1 sous problèmes de type Flow-shop à 2 machines, à les
résoudre et à sélectionner la meilleure solution.

Le sous problème k est défini par :

Notation :
n: nombre de tâches.
m: nombre de machines.
Ti j: le temps passé par la tâche i sur la machine j.
k

Le temps passé sur la machine 1 : pi 1= ∑ ti 1


i=1
m

Le temps passé sur la machine 2 : pi 2= ∑ ti2


i=k+1
Pour chacun de ces problèmes, on calcule l'ordre optimal avec l'algorithme de
Johnson et on applique alors cet ordre sur le problème de base pour obtenir
le Cmax(k).
Ensuite, il suffit de choisir le meilleur sur l'ensemble des Cmax(k)

2- Heuristique NEH

En 1983, Nawaz, Enscore et Ham ont proposé un algorithme basé sur l’hypothèse
qu’une tâche ayant un temps total d’exécution élevé est prioritaire par rapport à
une tâche ayant un temps total d’exécution plus faible.

Démarche
m
Etape1 : Pour chaque tâche i (i=1,…, n) calculer Ti=∑ tij .
j=1

Etape2 : Ordonner dans une liste les tâches par ordre décroissant de Ti.

Etape3 : Prendre les deux premières tâches de la liste de l’étape 2 et trouver la


meilleure séquence pour ces deux tâches en calculant les 2 ordonnancements
possibles ????comment. Ne plus changer les positions relatives de ces deux tâches
lors des prochaines étapes de l’heuristique (i=3). ie : lorsqu’on va établir
l’heuristique pour la tâches 3, on va chercher la meilleure séquence en tenant
compte de l’ordonnancement des deux tâches précédentes.

Etape4 : Prendre la tâche se trouvant en ieme position dans la liste de l’étape2 et


trouver la meilleure séquence en plaçant cette tâche dans les i positions possibles
parmi les tâches déjà placées. ???les i positions ou n-i restante positions

Etape5 : Si i < n, i=i+1, aller à l’étape 4.Sinon STOP : la séquence trouvée est la
solution de l’heuristique NEH.

Remarque : L’heuristique trouve la séquence finale par construction, en ajoutant à


chaque étape une nouvelle tâche et en trouvant ainsi la meilleure solution
partielle.
Lien de book ordonnancement

http://books.google.co.ma/books?
id=z4E8bMydYYAC&pg=PA147&lpg=PA147&dq=application+de+Heuristique+NEH
+:Nawaz,Enscore+dans+un+atelier&source=bl&ots=FjCdyDQsVg&sig=yr5dUEu4od
_-
5tqfqGy_1uFZIac&hl=fr&sa=X&ei=DCu_UJvaGYbetAbWnYCIDA&ved=0CCsQ6AEw
AA#v=onepage&q=application%20de%20Heuristique%20NEH%20%3ANawaz
%2CEnscore%20dans%20un%20atelier&f=false

Vous aimerez peut-être aussi