Graphe Ch6.doc

35
Théorie des Graphes Chapitre n° 6 Chapitre n°6 : Applications des chemins extrémaux Le problème de l'ordonnancement consiste en la recherche d'un temps d'exécution minimum pour une tâche complexe T qui peut être décomposée en sous-tâches élémentaires T i pour lesquelles existent différents types de contraintes. Les exemples les plus courants concernent les problèmes de construction qui font intervenir des corps de métiers qui doivent se succéder ou peuvent travailler en parallèle. Plus généralement, le problème de l'ordonnancement concerne la planification de projets de grande taille. Nous allons commencer par décrire un problème d'ordonnancement ne comportant que des contraintes simples et montrer comment on peut le modéliser sous forme d'un problème de recherche de chemin de poids minimum dans un graphe. Ensuite seulement, nous élargirons le problème en y incluant des contraintes et des éléments plus réalistes et nous adapterons le modèle en conséquence. Problème de base de l'ordonnancement : On fait les hypothèses suivantes : 1. On suppose connues les durées d i des tâches T i ; i = 1,n. 2. Pour tout couple de tâches (T i ,T j ), soit T i et T j sont indépendantes l'une de l'autre et peuvent avoir lieu en parallèle, soit T j ne peut démarrer qu'au moins t ij unités de temps après la fin de T i , soit T i ne peut démarrer qu'au moins t ji unités de temps après la fin de T j , 3. Il existe deux tâches fictives de durée nulle, T 0 qui correspond au début des travaux et précède T i pour tout i > 0, Le problème de l'ordonnancement 1

Transcript of Graphe Ch6.doc

Théorie des Graphes Chapitre n° 6

Chapitre n°6 : Applications des chemins extrémaux

Le problème de l'ordonnancement consiste en la recherche d'un temps d'exécution minimum pour une tâche complexe T qui peut être décomposée en sous-tâches élémentaires T i pour lesquelles existent différents types de contraintes. Les exemples les plus courants concernent les problèmes de construction qui font intervenir des corps de métiers qui doivent se succéder ou peuvent travailler en parallèle. Plus généralement, le problème de l'ordonnancement concerne la planification de projets de grande taille.

Nous allons commencer par décrire un problème d'ordonnancement ne comportant que des contraintes simples et montrer comment on peut le modéliser sous forme d'un problème de recherche de chemin de poids minimum dans un graphe. Ensuite seulement, nous élargirons le problème en y incluant des contraintes et des éléments plus réalistes et nous adapterons le modèle en conséquence.

Problème de base de l'ordonnancement :

On fait les hypothèses suivantes :

1. On suppose connues les durées di des tâches Ti ; i = 1,n.

2. Pour tout couple de tâches (Ti ,Tj ), soit Ti et Tj sont indépendantes l'une de l'autre et peuvent avoir lieu en parallèle, soit Tj ne peut démarrer qu'au moins tij unités de temps après la fin de Ti , soit Ti ne peut démarrer qu'au moins tji unités de temps après la fin de Tj ,

3. Il existe deux tâches fictives de durée nulle, T0 qui correspond au début des travaux et précède Ti pour tout i > 0, Tn+1 qui correspond à la fin des travaux et est précédée de Ti pour tout i n.

On recherche le temps minimum nécessaire pour accomplir la tâche T soit X.Par convention, on fait commencer les travaux au temps 0, X est donc aussi la date de fin au plus tôt possible. En outre, pour chaque tâche Ti (i = 0,n+1) on recherche :

1. La date de début au plus tôt possible soit Xi,

2. La date de début au plus tard possible soit Yi compatible avec la durée minimum X,

3. La marge totale, MTi = Yi - Xi , c-à-d le délai maximum compté à partir de la date au plus tôt Xi qui ne modifiera pas la date de fin X,

4. La marge libre, Mli , c-à-d le délai maximum compté à partir de la date au plus tôt Xi qui ne modifiera aucune date de début Xj (j i) des autres tâches.

Le problème de l'ordonnancement

1

Théorie des Graphes Chapitre n° 6

Commentaires et notations:

Le problème de base ne prend pas en compte les ressources nécessaires pour accomplir, éventuellement en parallèle, les différentes tâches. On suppose ces ressources suffisantes.

L'hypothèse 2 concerne une situation classique de succession; par exemple entre la fin de la pose de la première couche de couleur (Ti) et le début de la pose de la seconde couche (T j), il faut attendre au moins un certain temps tij. Quelquefois, deux tâches élémentaires Ti et Tj

peuvent se succéder directement; dans ce cas, tij = 0. Exemple : dès que le mesurage est terminé, on peut commencer à creuser les fondations.

On suppose disposer d'une matrice t dont l'élément ij a la signification suivante :1. tij = 0 , le début de Tj doit suivre la fin de Ti , le délai entre ces 2 événements peut être nul2. tij > 0 , le début de Tj doit suivre la fin de Ti , le délai entre ces 2 événements doit être tij

3. tij = -1, la tâche Tj est indépendante de la tâche Ti

La matrice t n'est évidemment pas quelconque : i,j : i j, l'un des deux éléments tij et tji au moins doit valoir -1 : tij 0 tji = -1. Sans cette condition il pourrait exister deux tâches qui devraient chacune commencer avant l'autre.

On pourrait imaginer d'autres types de contraintes de succession, nous y reviendrons.

L'hypothèse 3, n'est en fait qu'une convention qui simplifie l'expression et la modélisation mais elle peut correspondre à une situation réelle : si la tâche T est une construction, T 0 est par exemple l'envoi du formulaire de permis de bâtir et Tn+1 la signature de la réception définitive des travaux. La succession implique t0i = ti,n+1 = 0 ; i = 1,n.On a bien sûr X0 = Y0 = 0 et Xn+1 = Yn+1 = X.

Les tâches pour lesquelles aucun retard vis à vis de la date au plus tôt n'est permis sans remettre en cause la durée de T (MTi = 0) sont dites critiques.

On a aussi MLi MTi . En pratique, de nombreuses tâches non critiques ont une marge libre nulle comme nous le verrons sur l'exemple illustratif. Une tâche a une marge libre non nulle si elle n'est pas critique et si sa terminaison ne conditionne pas le début d'une autre tâche.

Le problème de l'ordonnancement peut être résolu par la programmation linéaire (algorithme du simplexe) mais sa mise en œuvre est beaucoup plus lourde et moins performante que celle de la recherche de chemins extrémaux.

Modélisations en terme de graphe

Il existe deux manières classiques de modéliser le problème de l'ordonnancement :

la méthode PERT (Performance Evaluation Review Technique) la méthode MPM (Méthode des Potentiels Metra)

La première, plus connue, a donné son nom au problème lui même et il n'est pas rare d'entendre parler d'un problème "PERT". Pourtant, la seconde est légèrement plus efficace en

2

Théorie des Graphes Chapitre n° 6

terme de complexité car elle construit un graphe généralement de plus petite taille. On peut considérer que les deux méthodes utilisent des approches duales : ce que l'une représente par un sommet l'autre le modélise par un arc et réciproquement.

Méthode PERT

La méthode PERT construit un graphe G(X,U) associé au problème de telle façon que : les arcs représentent les tâches effectives ou les délais, pondérés par les durées et les sommets modélisent les successions et les deux tâches fictives.

U = {Tâches T1,...Tn. } {Délais positifs} { (T0,Ti) ; i=1,n } { (Ti,Tn+1) ; i=1,n }

X = {x | ui uj = x ssi une contrainte de succession entre ui et uj } { T0 } {Tn+1}

W = matrice des poids ; Wij = di ou tij ou 0 selon l'arc correspondant

Si tij = 0 , on a

Si tij > 0 , on a

(1) et (3) représentent le début de la tâche Ti

(2) et (4) représentent la fin de la tâche Tj

(5) et (6) représentent la fin de la tâche Ti

(5) et (7) représentent le début de la tâche Tj

Lorsque le début d'une tâche Tj est conditionné par la fin de plusieurs tâches Tr, ...Ti , il vient

3

di dj

(5)

di tij

(6)

dj

(7)

(1) (2)

(3) (4)

dr

di

dj

Théorie des Graphes Chapitre n° 6

La modélisation PERT est assez naturelle puisqu'elle représente le temps par les pondérations des arcs. Elle présente cependant une difficulté qui apparaît, par exemple, dans la situation suivante :

tij = tkj = tkm = 0 et tim = -1 autrement dit lorsque le début d'une tâche, ici j, est conditionné par la fin d'au moins deux autres, ici i et k et que le début d'une autre tâche, ici m, n'est conditionné que par la fin de certaines des tâches, ici k, mais pas toutes (pas i) celles qui conditionnent le début de j.

Le graphe suivant (exemple 1) n'est pas correct car il lie indûment m et i.

Pour modéliser correctement les successions, on introduit des arcs artificiels de poids nuls et il vient :

Dans l'exemple ci-dessus, seul l'arc en oblique est indispensable et on aurait pu aussi utiliser le graphe plus simple suivant :

L'utilisation systématique d'arcs artificiels de poids nuls permet de modéliser n'importe quelle situation de succession au départ d'un graphe uniquement constitué d'arcs disjoints représentant les n tâches T1,...Tn. On peut ensuite simplifier le graphe si nécessaire.

De même, dans un but de lisibilité du graphe, on ne considère : l'arc entre T0 et Ti que si Ti est tel que tki = -1 k =1,n. l'arc entre Ti et Tn+1 que si Ti est tel que tik = -1 k =1,n. On peut se convaincre aisément que le contenu informatif en terme de succession n'est pas modifié par cette simplification.

4

di

dk

dj

dm

di 0 dj

dk 0 dm

0

di dj

dk dm

0

Théorie des Graphes Chapitre n° 6

A ce stade, on dispose d'un graphe sans circuit possédant une racine (T0) et une anti-racine (Tn+1) c-à-d un sommet descendant de tous les autres.La longueur d'un chemin entre la racine et l'anti-racine représente le temps minimum nécessaire pour accomplir les arcs qui constituent le chemin : soit des durées de tâches soit des délais entre tâches successives . Il s'agit bien d'un temps minimum car on suppose que chaque délai est compté à son minimum tij.

La durée minimale X des travaux sera donnée par le poids du chemin le plus long entre la racine et l'anti-racine . Ce paradoxe n'en est pas un car c'est bien la succession des tâches la plus longue qui détermine la durée totale comme le montre ce simple exemple (exemple 2) :

La durée des travaux sera de 18 unités de temps , les tâches critiques sont T1 et T2 , les tâches T3 et T4 peuvent être retardées de 7 unités de temps (leurs marges totales valent 7).Les dates au plus tôt sont respectivement 0 , 10 , 0 et 6.Les dates au plus tard sont respectivement 0 , 10 , 7 et 13.La marge libre de T3 est nulle car un retard sur T3 implique un retard sur T4.La marge libre de T4 est de 7 car tout retard sur le début de T4 qui n'excède pas 7 n'a aucune conséquence sur les autres tâches.

Dans les petits problèmes académiques, il est fréquent que les marges libres soient égales soit à 0 soit aux marges totales correspondantes mais ce n'est pas toujours le cas.

Les dates au plus tôt (Xi) sont données par les poids des chemins T0Ti-maximaux ; en particulier la durée totale X est le poids du chemin T0Tn+1- maximum.

Pour trouver les dates au plus tard (Yi) , il faut :

1. inverser le sens des arcs du graphe, soit G' le graphe obtenu, 2. calculer les dates au plus tôt (X'i) sur le graphe G'3. calculer Yi = X - X'i - di

Reprenons le petit exemple à 4 tâches effectives; Les dates au plus tôt X'i sont respectivement 8 , 0 , 5 et 0.Les dates au plus tard Yi valent donc bien 18-8-10=0 , 18-0-8=10 , 18-5-6=7 et 18-0-5=13.

On peut se convaincre de la validité du procédé en considérant que le poids X'i du chemin Tn+1Ti-maximum du graphe G' représente bien le temps nécessaire à l'accomplissement des tâches qui succèdent à Ti . Si la tâche Ti commence après le moment Yi , le temps total pour accomplir T sera > Yi + X'i + di = X .

Le calcul des marges totales procède d'une simple soustraction : MTi = Yi - Xi

5

T1 T2

T0 T5

0

0

0

0

d1=10 d2=8

d3=6 d4=5

T3 T4

Théorie des Graphes Chapitre n° 6

Les marges libres sont données, par simple application de la définition, par la formule MLi = Min X X -t tj i ij ij - d ; i 0

Méthode MPM

La méthode MPM construit un graphe G(X,U) associé au problème de telle façon que : les sommets représentent les tâches effectives ou fictives et que les arcs pondérés par les durées augmentées des délais éventuels modélisent les

successions. Il vient :

X = { Tâches T0,...,Tn+1 } U = { (Ti,Tj) | tij 0 }Wij = di + tij

La modélisation basée sur l'association sommet - tâche est toujours possible et les successions peuvent s'exprimer sans recours aux arcs artificiels.Une fois le graphe G construit, l'exploitation de G pour trouver les dates au plus tôt, au plus tard et les marges, est identique à celle de la méthode PERT.

La modélisation MPM de l'exemple 1 est la suivante :

On remarquera que seuls les arcs incidents à la tâche fictive T0 sont de poids nul ; au contraire des arcs incidents à la tâche fictive de fin T n+1.Il n'y a pas d'arc artificiel, mais par contre l'information sur la durée d'une tâche peut être multipliée (comme pour Tk dans l'exemple) ou masquée lorsqu'elle est combinée à un délai.

6

T0

Ti

Tk

Tj

Tm

Tn+1

0

0

di+tij

dk+tkj

dk+tkm

dj

dm

Théorie des Graphes Chapitre n° 6

Exemple de la construction d'un site d'exploitation minière

Cet exemple emprunté à J. Fichefet (Notes de cours , Théorie des graphes, pages II.37) va nous permettre de comparer les modélisations PERT et MPM (cf. figures I et II).

N°s Tâches Conditions de démarrage Durées en semaines

0 Obtention du permis d'exploiter 01 Construction d'une route 5 semaines après permis d'exploiter 162 Construction d'un port provisoire 1 semaine après permis d'exploiter 143 Commande du matériel portuaire 3 semaines après permis d'exploiter 204 Pose d'une voie ferrée route et port provisoire finis 85 Construction du port définitif port provisoire fini 186 Construction de logements pour le

personnelport provisoire fini et matériel portuaire livré

25

7 Construction de l'installation minière voie ferrée, port définitif et logements achevés

15

8 Mise en place de l'équipement portuaire

matériel portuaire livré et port définitif construit

17

9 Début de l'exploitation minière toutes tâches achevées 0

Tous calculs effectués, on obtient :

Tâche n° Durée Date au plus tôt

Date au plus tard

Fin au plus tôt

Fin au plus tard

Marge Totale

MargeLibre

0 0 0 0 0 01 16 5 24 21 40 19 02 14 1 9 15 23 8 03 20 3 3 23 23 0 04 8 21 40 29 48 19 195 18 15 28 33 46 13 06 25 23 23 48 48 0 07 15 48 48 63 63 0 08 17 33 46 50 63 13 139 0 63 63 63 63

Les tâches critiques (3, 6 et 7)sont mises en évidence.La recherche du chemin de poids maximum sur le graphe G et sur le graphe inversé G' est visualisée par les figures III.15 et IV pour la modélisation MPM Les notations entre crochets représentent les marquages (etiq) et les poids (pi) de l'algorithme de Bellman-Kalaba.Les tâches sont notées xi au lieu des Ti

Les dates de fin sont utilisées pour construire le diagramme dit de Gantt (figure V)

7

Théorie des Graphes Chapitre n° 6

Représentation PERT

- figure I -

Représentation MPM

- figure II -

8

débutgénéral

fin des opérations

5

1

3

(1) 16

(2) 14

(3) 20

0

0

(5) 18

(4) 8

0

0

(6) 25

0

(7) 15

(8) 17

x0

x1

x2

x3

x4

x5

x6x8

x7

x9

5

168

15

1

320

20

25

18

17

18

14

14

14

Théorie des Graphes Chapitre n° 6

Recherche du chemin ToTn+1 maximum dans G

- figure III -

Recherche du chemin Tn+1To maximum dans G'

- figure IV -

9

x0

x1

x2

x3

x4

x5

x6

x8

x7

x9

5

168

15

1

320

20

25

18

17

18

14

14

[nil,0]

[x0,3][x3,23]

[x5,33]

[x7,63]

[x6,48]

[x1,21][x0,5]

[x0,1]

[x2,15]

x0

x1

x2

x3

x4

x5

x6

x8

x7

x9

5

168

15

1

320

20

25

18

17

18

14

14

[x3,63]

[x6,60]

[x7,40][x9,17]

[nil,0]

[x9,15]

[x7,23][x4,39]

[x6,54] [x8,35]

Théorie des Graphes Chapitre n° 6

Diagramme de Gantt

- figure V -

Les rectangles représentent les tâches avec leur durée selon l'axe de temps horizontal.Les tâches critiques sont représentées par des rectangles grisés.Les traits attachés aux rectangles indiquent les marges totales.

Nous allons à présent généraliser le problème de l'ordonnancement en introduisant d'autres aspects. Etant donné sa plus grande simplicité, nous effectuerons les modélisations selon la méthode MPM.

Première généralisation du problème : autres contraintes de succession et de localisation temporelle

Jusqu'à présent, nous avons modélisé la contrainte de succession :"La tâche j ne peut débuter, au plus tôt que tij unités de temps après la fin de la tâche i".

par le sous-graphe :

Dans la phrase, nous pouvons remplacer chacun des mots soulignés par son opposé (début fin ; après avant, tôt tard ) pour créer un autre type de contrainte de succession.

10

00 05 10 15 20 25 30 35 40 45 50 55 60

Ti di + tij Tj

Théorie des Graphes Chapitre n° 6

Illustrons quelques possibilités :

"La tâche j ne peut débuter, au plus tôt que tij unités de temps après le début de la tâche i". +tij

"La tâche j ne peut finir, au plus tôt que tij unités de temps après la fin de la tâche i".+di

NB : le poids de l'arc peut être négatif.

"La tâche j ne peut débuter, au plus tôt que tij unités de temps avant la fin de la tâche i". -tij

"La tâche j ne peut débuter, au plus tard que tij unités de temps après la fin de la tâche i".

Ici la succession i - j est inversée; si Tj doit commencer en Xj pour des raisons n'incluant pas Ti, cette dernière doit commencer après Xj - di - tij.

En effet, Début(j) Fin(i) + tij = Début(i) + Durée (i) + tij Début(i) Début(j) - Durée (i) - tij

Si on procède à plusieurs inversions, on peut retrouver un énoncé déjà modélisé en échangeant le rôle de i et de j. Il est possible de combiner plusieurs types de contraintes entre deux tâches et de créer ainsi des circuits dans le graphe. Un circuit absorbant révélera des contraintes incompatibles.

Exemple : "La tâche j ne peut débuter, au plus tôt que tij unités de temps après la fin de la tâche i" et "La tâche j ne peut débuter, au plus tard que t'ij unités de temps après la fin de la tâche i". On crée alors un circuit (abandonner Bellman-Kalaba au profit Ford –Bellman II) :Si t'ij tij , le circuit est de poids 0, il ne pose pas de problème.Si t'ij < tij , le circuit est de poids > 0 donc absorbant vu que l'on procède à une maximisation et on détecte ainsi une incompatibilité entre les contraintes.

11

Ti di + tij - dj Tj

Ti di - tij Tj

Tj -di - tij Ti

Ti tij Tj

Théorie des Graphes Chapitre n° 6

L' autre type de contrainte visé, c'est-à-dire la localisation temporelle, concerne le fait qu'une tâche Tj doit commencer à une date précise soit s. Pour modéliser cette contrainte, il suffit de créer un circuit comme suit :

Une telle contrainte n'est pas toujours réalisable, notamment s'il existe un chemin de longueur supérieure à s entre To et Tj exprimant que Tj est précédée de tâches dont la durée excède s.A nouveau, cette contradiction sera révélée par un circuit absorbant.

De même, deux tâches Ti et Tj devant démarrer en même temps seront placées sur un circuit de longueur nulle permettant de répercuter sur la tâche i les contraintes de la tâche j et réciproquement .

Nous laissons au lecteur, à titre d'exercices, le soin de modéliser d'autres combinaisons. Par exemple, comment procéder pour créer un écart fixe de t unité de temps entre le début de Ti et celui de Tj ?

12

15

sT0 Tj

-s

T0Tj

-5

3

3

Théorie des Graphes Chapitre n° 6

Exercice sur la méthode MPM

Soit une tâche T constituée de 6 sous- tâches T1,....T6 aux caractéristiques suivantes :

Tâche Conditions de début Durée (sem.)T1 Au plus tôt 2 semaines après le début 6T2 Aucune 4T3 T1 terminée ; T2 terminée au moins depuis 3 semaines 3T4 T3 terminée et obligatoirement en semaine 12 8T5 Au plus tôt 8 semaines après la fin de T3 et au plus tard 13 semaines

après le début de T3T2 commencée depuis 9 semaines au moins

2

T6 Au plus tôt en semaine 15 , T5 terminée et au plus tard 10 semaines après la fin de T2

10

Trouver s'il existent l'ordonnancement optimum, les dates au plus tôt, au plus tard et les marges de chacune des tâches.

13

T0

T1

T2

T3

T5

T6

T7

T4

-12

+12 3

8

10

-13 8+3=11

2-10-4=-14

15

09

4+3=72

6

Théorie des Graphes Chapitre n° 6

Solution (Ford-Bellman II)

Itération 1 : pi = (0, -100, -100, -100, -100, -100, -100, -100)

Itération 2 : pi = (0, 2, 0, -100, 12, -100, 15, -100)

Itération 3 : pi = (0, 2, 1, 8, 12, 9, 15, 25)

Itération 4 : pi = (0, 2, 1, 8, 12, 19, 15, 25)

Itération 5 : pi = (0, 2, 1, 8, 12, 19, 21, 25)

Itération 6 : pi = (0, 2, 7, 8, 12, 19, 21, 31)

Itération 7 : pi = (0, 2, 7, 14, 12, 19, 21, 31)

Itération 8 : pi = (0, 2, 7, 14, 17, 25, 21, 31)

Itération 9 : pi = (5, 2, 7, 14, 17, 25, 23, 31)

=> circuit absorbant T2 , T3, T5 , T6 : de poids 7 + 11 + 2 -14 = 6

Planning impossible.

Pour obtenir une solution changeons la condition 8 semaines après la fin de T3 en 2 semaines après la fin de T3 ce qui donne un circuit T2 , T3, T5 , T6, T2 de poids nul.

Il vient pi = ( 0, 2, 1, 8, 12, 13, 15, 25)

Tâche Date au plus tôt Date au plus tard Marge totale Marge libreT0 0 0 0 0T1 2 2 0 0T2 1 1 0 0T3 8 8 0 0T4 12 12 0 0T5 13 13 0 0T6 15 15 0 0T7 25 25 0 0

Toutes les tâches sont critiques. C'est normal pour les tâches à date fixée comme T4 et celles qui appartiennent à des circuits de poids nul dont au moins une tâche est critique.

Pour augmenter le degré de liberté, il faudrait diminuer le poids de certains arcs.

Seconde généralisation du problème : contraintes de type disjonctif

14

Théorie des Graphes Chapitre n° 6

Il s'agit d'interdire que deux tâches Ti et Tj aient lieu en même temps, par exemple, parce qu'elles utilisent la même ressource rare, sans que l'on veuille préciser laquelle doit précéder l'autre.

Ce type de contraintes est impossible à traduire directement au moyen d'arcs ajoutés au graphe.Si une seule contrainte disjonctive est présente, il suffit de considérer deux problèmes d'ordonnancement associés à deux graphes G et G' dans les quels on modélise respectivement les contraintes "Ti doit débuter au plus tôt après la fin de Tj" et "Tj doit débuter au plus tôt après la fin de Ti". On retient celle des solutions qui donne la durée minimale.

Si on veut interdire la conjonction de plus de deux tâches ou de plusieurs couples de tâches, il y a explosion combinatoire du nombre de problèmes à envisager. Il est alors préférable d'abandonner l'approche de la théorie des graphes au profit de la programmation linéaire en variables mixtes (là aussi la complexité s'accroît par rapport à l'algorithme du simplexe) ou de l'optimisation combinatoire.

Troisième généralisation du problème : durées aléatoires des tâches

En pratique, il est rare que les durées des tâches soient connues avec précision, surtout au début d'un projet de grande ampleur. Au cours de l'évolution du projet, les données sont réactualisées périodiquement pour tenir compte de l'avancement effectif et intégrer de nouvelles informations permettant d'affiner la connaissance des durées. A chaque fois, le graphe est mis à jour et on relance une recherche de chemin maximum.

Au départ cependant, il faut bien estimer les di. On peut faire appel à des experts qui donnent des estimations dont on fait la moyenne. La méthode PERT préconise d'estimer la durée d'une tâche au moyen de trois évaluations : une durée optimiste O, une durée pessimiste P et une

durée vraisemblable V, puis de poser dO V P

4

6 qui représente la moyenne d'une variable

aléatoire Beta.

Une approche intéressante est basée sur la génération aléatoire des durées en accord avec la loi Beta ou une simple distribution triangulaire.

L'exposé de la méthode de génération, dite du rejet, quoiqu'assez simple, dépasse le cadre de ce cours (cf cours de 2eme licence ?). Elle permet de générer N jeux de valeurs pour les n durées. Pour chaque jeu K de données, on calcule le chemin extremum , la durée X(K) et on note les tâches critiques au moyen d'un tableau binaire : CR(i,K) = 1 si Ti est critique pour le jeu de données K , CR(i,K) = 0 sinon.

15

O V P

Théorie des Graphes Chapitre n° 6

Cela permet de calculer une durée moyenne estimée : Xmoyen = X K

NK

N ( )

1

et

un indice de criticité pour chaque tâche : CR(i) = CR i K

NK

N ( , )

1

Un indice de criticité proche de 1, indique que pour la plupart des jeux de données, la tâche concernée est critique et devra donc être exécutée sans délai.On pourrait aussi calculer une marge totale moyenne.

Quatrième généralisation du problème : prise en compte des ressources

Jusqu'à présent, à part dans le cas des contraintes disjonctives, on a négligé les ressources nécessaires à l'accomplissement des tâches. Si on veut en tenir compte, sans sortir de la modélisation par les graphes, on peut analyser le diagramme de Gantt en prenant en compte les ressources mises en œuvre et déplacer les tâches au sein de leurs marges pour lisser les pointes de consommation.

Reprenons l'exemple de l'exploitation minière et supposons que toutes les tâches utilisent la même ressource. On peut limiter la ressource à 3 unités au plus en modifiant les dates de début comme suit :

Evidemment, il s'agit d'une procédure empirique et le problème n'a pas nécessairement de solution si on ne modifie pas la date de fin X.

Si on souhaite obtenir une solution au problème général connu sous le nom de GERT (Generalysed Evaluation Review Technic) il faut mettre en œuvre d'autres méthodes d'optimisation plus sophistiquées. La complexité du problème ne permet pas d'espérer mieux que des heuristiques.

L'optimisation dynamique

16

00 05 10 15 20 25 30 35 40 45 50 55 60

Théorie des Graphes Chapitre n° 6

La seconde application des chemins extrémaux concerne l'optimisation dynamique.Il s'agit d'optimiser une suite de décisions D1,...Dn permettant de faire passer le système sous étude d'un état initial connu E0 à un état final En qui dépend des décisions prises.Chaque décision Di prise dans un état Ej entraîne un coût ou un profit C(i,j) qui dépend à la fois de la décision et de l'état de départ.

Exemple : Au temps T0, on dispose d'un parc de K machines ayant chacune des caractéristiques données ( âge, rendement, taux de panne, type). A chaque début de période T , par exemple chaque trimestre, on peut pour chaque machine :

ne rien faire : elle vieillit, son taux de panne augmente, son rendement diminue mais le coût de la décision est nul,

la remplacer par une machine neuve ayant d'autres caractéristiques : la nouvelle est supérieure en rendement mais son prix d'achat doit être pris en compte,

faire un entretien préventif : peu coûteux, il ne modifie pas le rendement mais diminuera le taux de panne, effectuer une mise à niveau de certains composants qui augmentera le rendement.

L'état d'une machine en T est décrit par :

- son type : Type(T) ( 0 = ancienne ou 1 = nouvelle ) - son âge : A(T) (entier)- sa mise à niveau éventuelle antérieure ou au début de la période : MAJ(T) ( 0 ou 1)- son entretien au début de la période ENT(T) ( 0 ou 1).

Pendant une période T , les modifications suivantes de l'état se produisent selon les décisions

1) A(T) := A(T-1)+12) Si on décide d'un entretien, ENT(T) := 1 sinon ENT(T) := 03) Si on décide d'une mise à niveau, MAJ(T) := 1 ; sinon MAJ(T) := MAJ(T-1)

On doit connaître l'âge initial A(0), le coût moyen d'une panne CP, le coût d'un entretien CE et celui d'une mise à niveau CM. On doit aussi pouvoir calculer le taux de panne P ainsi que le rendement R.

Si on suppose qu'il baisse graduellement avec l'âge, le rendement d'une machine pourrait, par exemple, s'exprimer comme suit : R(T) = R(0) [ 1 + 0.2 * MAJ(T) ] / [ 1 + 0.25 A(T)]où R(0) est le rendement de la machine (sans mise à jour) au départ c-à-d lorsque A=0.

Le taux de panne pourrait s'écrire P(T) = P(0) [1 + A(T) ] / [ 1 + ENT(T) ] où P(0) est le taux de panne de la machine au départ c-à-d lorsque A = 0.Le coût moyen des pannes sur la période T vaut CMP(T) = CP * P(T).

Hypothèse 1 : Pour simplifier les notations, supposons qu'il n'y ait qu'une machine (K=1) et négligeons pour l'instant la possibilité d'achat (Type fixé à 0).

17

Théorie des Graphes Chapitre n° 6

Les deux formules ci dessus sont données à titre d'exemple et on pourrait en imaginer d'autres plus complexes.

Si le rendement est exprimé en unités financières, le gain ou la perte G d'une période T pour une machine est :

G(T) = R (T) - CMP(T) - CE * ENT(T) - CM * (MAJ(T) - MAJ(T-1))

Le graphe qui modélise l'évolution pendant deux périodes est le suivant :

Les sommets noirs indiquent une machine mise à jour, les sommets gris sont les sommet fictifs associés au départ de l'étude et à la fin de l'étude. Le graphe est bien entendu sans circuit, décomposable en niveaux et chaque niveau sauf les deux derniers correspond à un début de période.

Remarquons que le modèle ne tient pas compte des entretiens qui ont précédé l'éventuel dernier, de même, l'époque de mise à jour éventuelle n'importe pas : le modèle est markovien autrement dit sans mémoire du passé : la connaissance de l'état actuel suffit à décrire le système.

Si on veut tenir compte des époques d'entretien et de mise à jour, en gardant le caractère markovien, il faut augmenter le nombre de variables d'état : utiliser ENT(t) et MAJ(t) ; t = 0,T au lieu des seuls ENT(T) et MAJ(T). Le nombre de sommets différents à chaque niveau croît alors exponentiellement.

Pour trouver la suite de décisions optimale, il suffit d'affecter à un arc le poids G calculé selon la décision qu'il modélise. On procède ainsi pour chaque arc sauf ceux qui joignent les sommets des deux derniers niveaux et qui reçoivent un poids nul puis on recherche le chemin de poids maximum entre les sommets fictifs de départ et de fin d'étude.

Grâce à la propriété de Markov, il est possible de générer le graphe automatiquement de façon simple et de rechercher les poids des chemins optimaux au fur et à mesure de la construction (cf mode de fonctionnement de l'algorithme de Bellman-Kalaba).

18

Maj + Ent

Maj

Rien

Ent

Ent

Rien

Rien

Ent

Maj + EntMaj

f

d

Théorie des Graphes Chapitre n° 6

Cette première généralisation du problème peut s'effectuer sans peine :

S'il y a plusieurs (k) machines identiques, pour lesquelles on prend les mêmes décisions, il suffit de multiplier G(T) par k. Si les machines sont identiques, la meilleure suite de décisions pour l'une d'entre elle est aussi la meilleure pour toutes .... sous réserve qu'il soit possible de les effectuer simultanément . Si ce n'est pas le cas, il faut considérer les machines comme différentes et travailler globalement (cfr hypothèse 3).

Si les machines sont différentes, il suffit d'ajouter un "indice machine" aux diverses variables. On peut rechercher les décisions optimales pour chaque type de machine séparément s'il n'y a pas interaction entre les décisions sinon voir hypothèse 3.

Si les décisions concernant des machines différentes ne sont pas indépendantes, il faut étudier le problème globalement : un sommet du graphe doit modéliser l'état des K machines et un arc est associé à l'ensemble des décisions pour les K machines du parc.

Deux exemples simples d'interaction :

1) Le coût total des dépenses d'entretien et de mise à jour par période est limité.2) Le nombre total d'entretiens (respectivement) de mises à jour par période est limité par le temps mis à effectuer ces opérations et l'obligation de maintenir en permanence un certain nombre de machines en fonctionnement.

Les interactions limitent le nombre de décisions donc de transitions entre états donc de sommets par niveaux.Exemple : 3 machines, dont une (la première) déjà mise à jour et possibilité d'effectuer au plus deux entretiens ou (exclusif) une mise à jour par période :

Neuf décisions restent possibles : Ne rien faire Mettre à jour machine 2 Mettre à jour machine 3 Entretenir machine 1 Entretenir machine 2 Entretenir machine 3 Entretenir machine 1 et 2 Entretenir machine 1 et 3 Entretenir machine 2 et 3contre 32 a priori ( 8 possibilités d'entretien ou rien et 4 possibilités de m-à-j ou rien)

La possibilité d'achat ajoute des variables à la description de l'état d'une machine et modifie certaines possibilités : Variable Type ajoutée Rendement devient une fonction du type : R(T,Type)

Hypothèse 2 : Plusieurs machines - pas d'interaction entre décisions - pas de possibilité d'achat

Hypothèse 3 : Plusieurs machines - interaction entre décisions - pas de possibilité d'achat

Hypothèse 4 : Plusieurs machines - interaction entre décisions - possibilité d'achat

19

Théorie des Graphes Chapitre n° 6

Taux de panne devient une fonction du type : P(T,Type) Mise à jour n'est possible que si Type = 0

Le fait de pouvoir acheter entraîne des coûts plus importants et justifie une actualisation des grandeurs G affectées aux arcs. Cette actualisation peut bien sûr être faite sous les hypothèses

antérieures. Si i est le taux d'actualisation, G(T) devient G T

i T

( )

( )1

Le choix de la durée de l'étude peut interférer de manière importante et artificielle avec les résultats. En effet, un achat de machine neuve effectué dans les dernières périodes de l'étude ne pourra être rentabilisé et sera rejeté du chemin de poids optimal. Pour contrer ce biais, il faut attribuer au parc une valeur résiduelle VR fonction de sa valeur d'achat et de son âge.On pourrait envisager de remplacer le prix d'achat par un amortissement périodique mais cela supposerait que la durée d'amortissement est connue ce qui est contraire à la philosophie de recherche de décision optimale.

Pour tenir compte de cet élément, il faut modifier le graphe comme suit :

Supprimer les arcs entre les 2 derniers niveaux, soit les arcs incidents au sommet terminal f. Relier chaque sommet x de la dernière période à un nouveau sommet x' par un arc de poids VR Relier chaque sommet x' au sommet f par un arc de poids nul.Plus simplement, on peut aussi pondérer les "derniers" arcs avec les poids VR.

Discussion :

L'intérêt de l'optimisation dynamique dépend du réalisme du compromis entre le nombre de variables qui décrivent l'état du système et la taille du graphe qui en résulte d'une part et la réalité économique qu'elle modélise d'autre part. L'introduction de contraintes réalistes sur les décisions et la suppression d'éléments de détails concourent à rendre le modèle opérationnel.Les caractéristiques du graphe sont également importantes : plus le graphe comporte de cycles, plus la taille reste contenue et plus le modèle est efficace. Si un sommet appartient à plusieurs cycles, la situation qu'il modélise pourra être atteinte de plusieurs façons depuis l'état initial et l'optimisation progressive retient seulement la meilleure d'entre elles : l'approche par le graphe économise beaucoup de calculs par rapport à une étude exhaustive des décisions possibles.Par contre si le sous-graphe obtenu en supprimant le sommet terminal f est une arborescence,le modèle n'apporte rien par rapport à l'étude exhaustive.

20

Théorie des Graphes Chapitre n° 6

L'optimisation dynamique au sens large aborde d'autres aspects plus complexes que ceux évoqués ici :

l'optimisation en univers aléatoire basée sur les chaînes de Markov et/ou l'optimisation en horizon infini : grâce à l'actualisation le coût d'une suite infinie de

décisions reste fini car 11( ) i T converge vers 1/i

Dans ces domaines, la théorie des graphes n'est pas utilisée explicitement.

Exercice d'optimisation dynamique.

On dispose de deux machines A et B d'âge respectifs (nombres entiers d'années) i et j. Pur fixer les idées disons i = 1 et j = 3Les deux machines sont de même type. Chaque année, le gain attendu de leur production et le coût de leur pannes en fonction de leur âge est donnée par le tableau suivant :

Age 0 1 2 3 4 5 6Gain 30 30 28 26 24 21 18Coût 0 1 2 3 5 8 12

Après 6 ans les machines sont sans intérêt.Le coût d'achat et celui de revente varient comme suit :

Age 0 1 2 3 4 5 6Achat 100 88 66 44 33 22 11Vente imp. 80 60 40 30 20 10

Sachant que l'on ne rachète une machine que si elle est strictement plus nouvelle que la machine qu'elle remplace et qu'on n'effectue qu'un seul achat au plus par an, construire le graphe permettant de trouver la politique de remplacement optimale à trois périodes.Les changements se font en début de période.

Formaliser le problème pour permettre une génération automatique du graphe.

Formules de génération du graphe

1) relier le sommet (i,j) au sommet (i+1,j+1)2) relier le sommet (i,j) au sommet (i+1,k) ; k : 1 k j3) relier le sommet (i,j) au sommet (k,j+1) ; k : 1 k i4) relier les sommets du dernier niveau à un sommet "Fin"

Poids des arcs :1) R(i) +R(j) -P(i) -P(j)2) R(i) + R(k-1) - P(i) - P(k-1) - A(k-1) + V(j)3) R(j) + R(k-1) -P(j) -P(k-1) - A(k-1) + V(i)4) V(i)+V(j)

21

Théorie des Graphes Chapitre n° 6

22

Fin1,3

2,4

1,4

1,2

2,2

2,3

3,5

2,5

1,5

2,4

2,2

1,2

1,3

2,3

3,3

3,4

4,6

3,6

2,6

1,6

3,5

2,5

1,5

4,4

1,2

Partie du graphe modélisant le problème ; seuls les niveaux 0, 1 et 2 sont complètement représentés.

Théorie des Graphes Chapitre n° 6

Matrice des transitions

1,2 2,2 1,3 2,3 3,3 1,4 2,4 3,4 4,4 1,5 2,5 3,5 4,5 1,6 2,6 3,6 4,6 FIN1,2 x x x x2,2 x x x x1,3 x x x x x x2,3 x x x x x x x3,3 x x x x x1,4 x x x x x x x2,4 x x x x x x x x3,4 x x x x x x x x x4,4 x x x x x1,5 x x x x x x x x2,5 x x x x x x x x x3,5 x x x x x x x x x x1,6 x2,6 x3,6 x4,6 x

Nb : certaines transitions dont par exemple celles issues de (4,4) sont théoriques car la situation (4,4) ne peut se produire qu'au niveau 3 : seul l'arc (4,4) – FIN est utile . C'est la raison pour laquelle on n'a pas représenté les transitions issues de (i,6) sauf celles d'extrémité "FIN".

23