Recherche Opérationnelle Ordonnancement

Transcription

Recherche Opérationnelle Ordonnancement
Recherche Opérationnelle - Ordonnancement
Recherche
Opérationnelle
Ordonnancement
Yves Correc
Yves Correc 26/02/2007
3–1
Recherche Opérationnelle - Ordonnancement
Sommaire
3.
3.1.
3.2.
3.3.
3.4.
3.5.
3.6.
3.7.
3.8.
3.9.
ORDONNANCEMENT...............................................................................................................3–3
Caractérisation d'un projet .....................................................................................................3–3
Représentation graphique......................................................................................................3–4
Problématique du chemin critique..........................................................................................3–6
Méthode (française) potentiel-tâche: MPM ...........................................................................3–7
Méthode (américaine) potentiel-étape: PERT ......................................................................3–9
Modifications du projet .........................................................................................................3–10
Contraintes disjonctives .......................................................................................................3–11
Contraintes cumulatives.......................................................................................................3–14
Optimisation du coût et de la durée d'un projet ...................................................................3–24
Yves Correc 26/02/2007
3–2
Recherche Opérationnelle - Ordonnancement
3.
ORDONNANCEMENT
3.1.
CARACTÉRISATION D'UN PROJET
L'organisation d'un grand projet pose des problèmes dont la complexité et la taille ont nécessité le
développement de méthodes de planification.
La première étape est la caractérisation du projet:
Celui-ci est décomposable en un certain nombre d'opérations (plus ou moins) élémentaires appelées
tâches. Ce découpage est un délicat compromis: trop fin, il devient inextricable, trop grossier il
masque l'importance de certaines opérations élémentaires.
En pratique, on procède souvent par niveaux, chaque tâche identifiée pouvant être à son tour
considérée comme un petit projet décomposable à un niveau inférieur.
Une tâche est définie par 4 caractéristiques :
- i = nom (ou code) de la tâche,
- ti = date de début de la tâche (on note parfois fi la date de fin)
- di = durée de tâche (di = fi – ti),
-
γik = quantité du moyen k (personnel, matière, coût...) nécessaire à l'accomplissement de la
tâche i . Elle est évidemment liée à di, et peut varier au cours du temps.
γik
ti
ti + di
On appellera ordonnancement d'un projet tout ensemble de valeurs données aux caractéristiques
( ti, di, γik ) pour toute tâche i d'un projet.
Ces tâches sont l'objet de contraintes (on ne peut faire n'importe quoi n'importe comment !…). Ces
contraintes sont de trois types :
(1) contraintes de type potentiel:
tj - ti ≥ aij
- Localisation temporelle absolue (une tâche doit débuter après telle date, ou bien être achevée
pour telle date).
- Succession entre tâches (localisation temporelle relative: une tâche ne peut commencer avant
l'achèvement d'autres tâches)
(2) contraintes de type disjonctif : [ti , ti + di ] ∩ [ tj , tj + dj ] = ∅
- Deux tâches ne peuvent être réalisées simultanément (utilisation des mêmes moyens par
exemple). On peut dans certains cas se ramener au type potentiel.
(3) contraintes de type cumulatif :
∑γ
i( t )
ik
≤ Γk ( t )
- Difficiles à prendre en compte, elles proviennent de la limitation des moyens disponibles à un
instant donné.
Résoudre un problème d'ordonnancement consistera dans ces conditions à rechercher un
ordonnancement (s'il existe) qui satisfasse les contraintes imposées et optimise un certain objectif. Ce
dernier pourra par exemple être la durée totale de réalisation du projet, que l'on cherchera à
minimiser. On ne traitera pas dans un premier temps les contraintes de moyens.
Yves Correc 26/02/2007
3–3
Recherche Opérationnelle - Ordonnancement
3.2.
REPRÉSENTATION GRAPHIQUE
On se propose de représenter graphiquement les tâches que l'on vient de définir, et si possible les
contraintes correspondantes. La méthode la plus ancienne , la seule disponible avant 1960, est le
planning à barres ou diagramme de Gantt (Henry Gantt 1917).
Ce type de diagramme utilise deux échelles perpendiculaires de coordonnées: l'axe des abscisses
pour le temps, et l'axe des ordonnées pour les différentes tâches.
On représente alors chaque tâche par un segment de droite horizontal dont la longueur est
proportionnelle à la durée de la tâche.
Exemple :
Soit un projet constitué de 4 tâches: A (durée 3 semaines) doit précéder B durée (2 semaines) et D
(durée 6 semaines) non exclusives, ainsi que C (durée 3 semaines) qui suit B.
durée
1
2
3
4
5
6
7
8
9
10
A
B
C
D
Cette représentation est très parlante pour figurer l'état d'avancement d'un projet (en rouge) par
rapport aux prévisions (en gris). Mais elle est limitée aux petits projets et ne permet pas de traduire
convenablement les contraintes existant entre tâches. Enfin les renseignements véritablement
intéressants sont les dates effectives ti de début des tâches, ainsi que les éventuelles marges
disponibles sur certaines d'entre elles (pour répondre à la question de savoir si un retard sur une
tâche particulière peut se répercuter à l'ensemble du projet, ou non).
C'est pourquoi sont apparues des méthodes plus modernes basées sur la théorie des graphes.
Méthode américaine (PERT)
La méthode américaine PERT (Program Evaluation and Review Technique, 1959) développée pour
l'US Navy par Malcom, Roseboom, Clark et Fazar, a permis un gain de temps de 2 à 3 ans sur le
développement du programme de missiles Polaris.
A la même époque, Walker et Kelley mettaient au point pour DuPont la méthode CPM (Critical Path
Method, 1959), analogue à la précédente sauf sur certains points de détail.
On ne distinguera pas, dans la suite, ces deux méthodes regroupées sous le vocable de "méthode
américaine".
Ce sont en fait des extensions du diagramme de Gantt, obtenues en construisant un graphe dont les
arcs correspondent aux segments du diagramme, et les sommets aux étapes de la réalisation, c'est à
dire à la fin de certaines tâches et au début d'autres: S'il est dit qu'une tâche doit en précéder deux
autres, les arcs associés seront adjacents, et partageront un tel sommet qui sera l'étape "fin de la
première tâche et début de la seconde et de la troisième".
tache j
tache i
étape
i-jk
tache k
Ce type de représentation du projet, sous la forme d'un graphe dont les arcs représentent les tâches
et les sommets des étapes, est appelée "potentiel - étape" , par analogie avec un réseau électrique
dont les nœuds sont portés à un certain potentiel (qui dans le cas présent est en fait le temps).
Yves Correc 26/02/2007
3–4
Recherche Opérationnelle - Ordonnancement
On poursuivra l'exemple précédent, en construisant ce graphe à partir du diagramme de Gantt. Pour
cela on identifiera les nœuds-étapes (E1, E2, E3, E4, E5, FIN) avec les jonctions des segments du
diagramme, pour obtenir le graphe suivant:
durée
1
2
3
4
5
6
7
8
9
10
A
B
C
D
E3
E1
E5
E2
FIN
E4
Chaque arc sera ensuite valué par la durée de la tâche qu'il représente. Il convient de souligner
l'aspect relativement artificiel de cette construction, qui n'est pas toujours évidente à réaliser, et qui
surtout supporte mal les modifications ultérieures du projet. On ne peut pratiquement traduire avec ce
type de représentation que les contraintes de type potentiel. On obtient sur cet exemple le graphe
suivant:
E3
B
E1
t1
A
3
2
t3
C
E5
3
t5
E2
t2
FIN
D
6
t4
E4
Méthode française (MPM)
Vers la même époque (1958), Bernard Roy introduisait la méthode des potentiels METRA (MPM),
souvent appelée "méthode française", caractérisée par une représentation "potentiel – tâche", et
utilisée pour la construction du paquebot France (1959).
Chaque sommet du graphe représente ici une tâche, et chaque arc une contrainte de potentiel, c'est à
dire une relation temporelle entre tâches. On affectera donc à chaque arc-contrainte sortant d'un
sommet la durée de la tâche associée à ce sommet, pour répercuter vers la tâche extrémité de l'arc la
contrainte correspondante (on doit avoir achevé cette tâche dont on donne la durée avant de pouvoir
commencer la suivante).
On pourra donc définir très simplement le graphe à partir de la liste des tâches, ce qui nous donne
immédiatement les sommets, et du dictionnaire des précédents qui est la traduction directe des
relations d'antériorité entre tâches (au contraire de la méthode américaine dont la gymnastique de
construction des sommets –E1, E2, E3, E4 sur l'exemple précédent- auxquels vont être connectés les
arcs-tâches n'est pas toujours évidente).
Yves Correc 26/02/2007
3–5
Recherche Opérationnelle - Ordonnancement
On introduira dans les deux cas un sommet "début de projet" noté α, et un sommet "fin de projet" noté
ω. L'application de la méthode française "potentiel-tâche" au même exemple donne le graphe suivant:
B
tB
2
α
C
3
2
tC
A
t-début
0
tA
ω
6
2
D
t-fin
tD
Cette méthode est donc beaucoup plus puissante que la méthode PERT pour le traitement des
contraintes que l'on peut rencontrer. Elle permet en effet l'adjonction de nouvelles contraintes par
simple adjonction d'arcs, sans remanier profondément le graphe. Le résultat de tout cela est qu'une
évolution de la méthode MPM (PDM : Precedence Diagram Method, 1980) est aujourd'hui
universellement utilisée, même si l'on parle souvent, par abus de langage, d'un "PERT", comme on dit
un "frigidaire" au lieu d'un réfrigérateur…
Nous détaillerons ces deux méthodes au moyen d'un exemple (construction d'un pavillon). Les
travaux à réaliser, leur durée, et leurs précédents obligatoires (les autres travaux qui devront
impérativement être achevés pour que la tâche considérée puisse commencer – typiquement on ne
pourra débuter la couverture qu'après en avoir terminé avec la charpente, etc), sont résumés dans le
tableau qui suit.
tâche
désignation
durée
précédents
A
maçonnerie
7
∅
B
C
charpente
couverture
3
1
A
B
D
plomberie électricité
8
A
E
F
revêtements extérieurs
menuiseries
2
1
CD
CD
G
H
Aménagement jardin
plâtres
1
2
CD
F
J
K
peinture
finitions
2
1
H
EGJ
3.3.
PROBLÉMATIQUE DU CHEMIN CRITIQUE
Comme nous l'avons vu plus haut, une simple description des travaux à réaliser ne suffit pas à bâtir
un projet efficace. Les questions qui se posent sont:
• Quelle va être la durée totale du projet?
• Quand peuvent effectivement débuter chacune des tranches de travaux envisagées?
• Des délais sont-ils admissibles sur certaines d'entre elles? Si oui, lesquels?
La réponse à ces questions va impliquer la définition pour chaque tâche d'une date au plus tôt de
début d'exécution ti (quand peut-on effectivement commencer à travailler sur la tâche i compte tenu
de l'achèvement préalable de toutes les tâches qui doivent la précéder?), et d'une date au plus tard
de début d'exécution Ti (jusqu'à quand peut-on repousser le début d'exécution de cette tâche sans
mettre en péril la date d'achèvement prévue de l'ensemble du projet, par une répercussion
malencontreuse sur les tâches aval du délai envisagé?).
Yves Correc 26/02/2007
3–6
Recherche Opérationnelle - Ordonnancement
Les notions introduites sont alors celles de marge mi (délai admissible Ti - ti ) et de tâche critique
(marge nulle : tout retard sur cette tâche se répercutera immanquablement à l'ensemble du projet).
La réponse aux deux premières questions va nous conduire à tenter de réaliser au plus tôt l'ensemble
des tâches proposées, compte tenu de leurs relations de précédence et de leur durée. Il est évident
que le projet sera pénalisé par les tâches les plus longues et les plus lentes, dont l'achèvement
conditionnera l'avancement général (il faudra pour progresser attendre la fin de ces tâches-là).
La détermination de la durée minimale du projet nous conduira donc à rechercher dans les graphes
précédents le plus long chemin entre l'entrée et la sortie, entre le début et la fin du projet (et non le
plus court car celui-ci laisserait de côté les tâches longues qui resteraient inachevées!…). Nous
trouverons sur ce plus long chemin l'ensemble des tâches dont la longueur et la place sont telles
qu'elles impactent tout le projet, que tout retard les touchant se répercute jusqu'à la sortie au travers
de l'ensemble des tâches critiques.
Les méthodes que nous allons voir procèdent donc en deux temps:
• Phase 1: trouver ce plus long chemin, ou chemin critique, au moyen d'un premier balayage
en avant du graphe au cours duquel on calculera les dates au plus tôt.
• Phase 2: calculer les éventuelles marges disponibles pour les autres tâches, au moyen d'un
balayage en arrière du graphe partant de la fin déterminée du projet, au cours duquel on
calculera les dates au plus tard et les marges.
3.4.
MÉTHODE (FRANÇAISE) POTENTIEL-TÂCHE: MPM
On a vu que la représentation correspondante associe à chaque tâche un sommet du graphe et à
chaque relation d'antériorité un arc du graphe. C'est sur ce graphe que l'on va déterminer le chemin
critique, en calculant de proche en proche les dates de début de chaque tâche, en fonction des
contraintes induites par les tâches antérieures. L'algorithme de recherche de chemin extrémal sousjacent sera celui de Roy, vu au chapitre précédent. Mais sa justification intuitive apparaitra ici
clairement.
L'étape préliminaire indispensable sera la décomposition en niveaux du graphe (qui garantit la
progression monotone du calcul, sans retours en arrière intempestifs…). On ne détaillera pas cette
étape, qui conduit au graphe ordonné suivant (avec autant de sommets réels que de tâches, plus les
pseudo-tâches début et fin):
B
3
1
C
A
7
8
D
8
2
E
K
1
ω
2
0
1
α
1
1
7
G
8
F
1
H
2
J
Niveaux
0
1
Yves Correc 26/02/2007
2
3
4
5
6
7
8
3–7
Recherche Opérationnelle - Ordonnancement
Comment déterminer la date au plus tôt tj de début d'une tâche j ?
Phase 1:
Cette tâche est supposée précédée d'un certain nombre de tâches i qui devront toutes être achevées
pour que puisse débuter la tâche j.
t1
1
t2
2
d1
d2
j
tj
d3
t3
3
i
Chaque tâche i débute au plus tôt à ti, s'achève à ti + di, et doit être finie avant le début de la tâche j.
La date de début au plus tôt de la tâche j est par conséquent égale à tj = max ( ti + di )
-1
i ∈Γ (j)
La première phase de la méthode (balayage en avant) consistera donc à calculer les dates au plus tôt
tj de toutes les tâches j au moyen de cette formule en balayant les sommets du graphe par niveaux
croissants, à partir de tα = 0, jusqu'à la sortie (fin du projet) dont la date au plus tôt tω est la durée du
projet.
Nous connaissons maintenant la durée minimale du projet, que nous verrouillons en décidant que
c'est aussi la date au plus tard Tω = tω d'achèvement de celui-ci.
Phase 2:
Comment déterminer les dates au plus tard Ti d'achèvement des tâches i , dates qui
devront rester compatibles avec l'objectif d'achèvement global à Tω = tω ?
Considérons une tâche i précédant plusieurs tâches j, chacune pouvant débuter au plus tard à Tj.
1
di
Ti
i
di
2
T1
T2
di
3
T3
j
A quelle date au plus tard Ti peut-on commencer la tâche i pour que les tâches j puissent démarrer
au plus tard à Tj ?
La tâche i sera terminée à Ti + di , qui doit vérifier Ti + di ≤ Tj pour toutes les tâches j suivantes.
La date de début au plus tard de la tâche i est donc égale à Ti = min ( Tj ) - di
j ∈Γ(i)
On en déduit la marge mi , différence entre la date au plus tard et la date au plus tôt, mi = Ti - ti .
La seconde phase de la méthode (balayage en arrière) consistera donc à calculer les dates au plus
tard Ti de toutes les tâches i au moyen de cette formule en balayant les sommets du graphe par
niveaux décroissants, depuis la fin du projet (Tω = tω) jusqu'à son début.
Yves Correc 26/02/2007
3–8
Recherche Opérationnelle - Ordonnancement
On pourra ensuite calculer les marges mi de toutes les tâches, et identifier le chemin critique,
constitué de l'ensemble des tâches dont la marge est nulle (tâches critiques): Si l'une d'entre elles
prend du retard, la durée minimale de l'ensemble du projet en sera allongée d'autant.
Ces calculs peuvent être faits sur une représentation en dictionnaire, mais il est plus parlant de les
résumer sous forme graphique (il sera préférable d'adopter une convention de notation telle que : vert
pour les dates au plus tôt, rouge pour les dates au plus tard, bleu pour les marges, et rouge pour le
chemin critique):
B
0 0
C
4
7 7
7
8
D
0
15 19
1
G
E
8
0
1
F
15 15
0 4
0
1
3.5.
2
3
20 20
2
3
8
Niveaux
1
4
15 18
1
A
10 14
1
α
0
4
7
3
16 16
H
0
K
2
1
21 21
0
18 18
J
0
5
6
7
8
MÉTHODE (AMÉRICAINE) POTENTIEL-ÉTAPE: PERT
On définit de la même manière que précédemment une étape "début" et une étape "fin" du projet. Les
tâches seront les arcs du graphe, et les sommets des étapes.
Ces étapes i seront définies par l'achèvement d'un ensemble de tâches, et le début d'un autre
ensemble de tâches. Si une tâche j doit succéder à une tâche i, l'origine de l'arc (j) doit être l'extrémité
de l'arc (i). La construction du graphe n'est pas immédiate (et peut même poser des problèmes
sérieux dans certains cas…), car elle demande la définition de ces étapes: Si l'on se donne pour
-1
chaque tâche i, l'ensemble Γ (i) des tâches qui doivent la précéder, les différentes étapes du projet
-1
correspondront aux différents ensembles Γ (i).
-1
Dans l'exemple traité, les différentes étapes du projet sont données par la colonne Γ (i) du tableau,
c'est-à-dire :
(fin de A), (fin de B), (fin de C et D), (fin de F), (fin de H), (fin de E,G,J), (fin de K), (fin du projet).
Le graphe correspondant est donné ci-dessous, et les calculs sont menés de la même manière que
dans la méthode MPM. Par contre il est nécessaire de déterminer ensuite pour chaque arc/tâche les
dates au plus tôt et au plus tard à partir des dates calculées pour les nœuds (qui représentent ne
l'oublions pas les étapes intermédiaires entre tâches, que l'on avait construites au préalable).
10,14
0,0 A 7,7
7
début
B
3D
8
1
E
C
15,15
2
1 F
16,16
H
G
1
K
J
2 18,18
1
20,20
2
21,21
fin
Nous avons ici affaire à un multigraphe car il peut exister plusieurs arcs entre deux sommets (tâches
en parallèle): par exemple E et G.
Yves Correc 26/02/2007
ω
0
2
7 11
3–9
Recherche Opérationnelle - Ordonnancement
3.6.
MODIFICATIONS DU PROJET
D'éventuelles modifications du projet à ordonnancer n'entraînent dans le cas MPM que l'adjonction
des sommets-tâches correspondants avec les arcs-contraintes associés, tandis que pour le PERT les
aménagements à apporter au graphe peuvent être considérables. Par la suite on n'utilisera plus que la
méthode française (MPM).
Pour modifier l'ordonnancement, on reprendra le balayage avant du graphe pour recalculer les dates
au plus tôt à partir du point de modification et jusqu'à la sortie ω du graphe. Le balayage arrière devra
lui être repris complètement.
Exemple :
La construction d'une centrale hydroélectrique nécessite les travaux suivants:
tâches
désignation
A
B
C
D
E
F
G
H
I
Construction des routes d'accès
Préparation des carrières et terrassements
Logements et bureaux pour le personnel
commande du matériel électrique et hydraulique
construction de la centrale
construction du barrage, des digues, de l'évacuateur
Construction des galeries et conduites forcées
montage des machines
essais de fonctionnement
ω
fin des travaux
durées
(mois)
4
6
4
12
10
24
7
10
3
0
précédents
∅
A
∅
∅
B,C
B,C
A
D,E,G
F,H
I
Déterminer un ordonnancement des travaux de durée minimale (calculer les dates au plus tôt, les
dates au plus tard, les marges, et déterminer les opérations critiques).
Le calcul sera effectué directement sur la représentation graphique, mais on pourrait tout aussi bien
travailler sur une représentation en dictionnaire (c'est d'ailleurs ainsi qu'on pourrait le programmer).
On adoptera ici la convention consistant à représenter en vert les dates au plus ti , en rouge les dates
au plus tard Ti (et en bleu éventuellement les marges mi si on les affiche).
0,12
D
12
4,17
7
10
0
0
4
10,14
4,4
4
A
0
0,6
C
Yves Correc 26/02/2007
20,24
10
G
0,0
α
H
6
B
4
4
6
E
I
10,10
24
34,34
3
ω
37,37
F
3–10
Recherche Opérationnelle - Ordonnancement
Supposons maintenant que les travaux préparatoires (B,G) à la construction de la centrale (E) et du
barrage (F) déclenchent un mouvement de contestation écologiste (M) de grande ampleur
(manifestations, procès,…) dont l'effet sera un retard prévisible de 3 mois (sur E et F). Que devient
l'ordonnancement du projet?
L'introduction de cette nouvelle tâche M amène celle d'un niveau supplémentaire dans le graphe, sur
lequel on recalcule un ordonnancement de durée minimale.
0,16
D
12
4,4
H
7
α
0
4
A
4,5
B
0
0,10
7
11,11
6
M
4
14,18
3
E
3
4
C
10
0
4
0,0
10
G
24,28
I
14,14
24
38,38
3
ω
41,41
F
On remarquera l'effet de cascade de cet impondérable: le retard apporté de 3 mois se traduit en fin de
projet par un retard de 4 mois. Les marges de D et C s'allongent. B n'est plus une tâche critique. G le
devient, ainsi que M… et c'est ainsi que l'on en arrive à tenter de réduire la durée de M en faisant
appel aux forces de l'ordre… (NB. Cet exercice est une fiction totale!)
3.7.
CONTRAINTES DISJONCTIVES
Le traitement d'une contrainte disjonctive entre deux tâches A et B peut se faire en étudiant les deux
cas "A précède B" et "B précède A" séparément pour choisir ensuite sur un critère à définir la
meilleure solution. On construit donc les deux ordonnancements en ajoutant la contrainte de type
potentiel correspondante.
Exemple:
Une réalisation industrielle comporte un certain nombre d'opérations définies comme suit:
Tâches
A
B
C
D
E
F
G
H
I
J
K
L
Durée
1
7
6
13
21
4
11
4
7
3
2
24
Précédents
∅
A
A
A
BC
CE
DF
D
GF
GL
IJ
H
Yves Correc 26/02/2007
(1) Donner le graphe (décomposé en niveaux) associé à la
méthode potentiel-tâche de Roy.
(2) Au moyen de cette méthode, déterminer les dates au plus
tôt, au plus tard, les marges et les tâches critiques.
Indiquer le chemin critique sur le graphe.
(3) Les opérations I et J ne peuvent avoir lieu en même temps
car elles mobilisent le même outillage (contrainte
disjonctive).
Quelle
en
est
l'incidence
sur
l'ordonnancement déterminé plus haut? Que peut-on
recommander?
3–11
Recherche Opérationnelle - Ordonnancement
On effectue la décomposition en niveaux sur le dictionnaire des précédents:
A
B
C
D
E
F
G
H
I
J
K
L
B
C
D
E
F
G
H
I
J
K
L
A
A
A
BC
CE
DF
D
GF
GL
IJ
H
E
F
G
H
I
J
K
L
BC
CE
DF
D
GF
GL
IJ
H
F
G
I
J
K
L
E
F
GF
GL
IJ
H
G
I
J
K
F
GF
GL
IJ
I
J
K
G
G
IJ
K
IJ
Et on construit le graphe résultant:
7
B
0
6
1
A
6
C
I
4
7
F
K
2
11
α
21
1
E
ω
3
4
1
13
D
13
H
4
11
G
L
J
24
Niveaux
La première variante est obtenue avec la contrainte additionnelle "I précède J":
B
0
A
1
6
6
C
I
4
7
F
K
2
11
α
E
21
1
7
Niveaux
Yves Correc 26/02/2007
7
3
4
1
D
13
13
H
4
G
L
11
24
J
3–12
ω
Recherche Opérationnelle - Ordonnancement
La seconde variante est obtenue avec la contrainte additionnelle "J précède I":
7
B
A
1
I
4
6
C
F
4
3
13
13
H
Niveaux
4
2
K
11
1
D
7
3
0
21
6
1
α
E
11
G
L
J
24
Le calcul des dates au plus tôt (balayage avant du graphe), des dates au plus tard
(balayage arrière), et des marges est résumé dans les trois tableaux qui suivent, pour le
graphe originel d'abord, pour les deux variantes ensuite:
I et J
sans lien
Chemin critique:
I
précède
J
Chemin critique:
J
précède
I
Chemin critique:
F
A
B
C
D
E
H
Date au +tôt
0
1
1
1
8
14 29 18 33
44
44 51 53
Date au + tard
0
1
2
7
8
20 29 24 33
44
48 51 53
Marge
0
0
1
6
0
6
0
0
4
Date au +tôt
0
1
1
1
8
14 29 18 33
44
51 54 56
Date au + tard
0
1
2
10
8
23 29 27 33
44
51 54 56
Marge
0
0
1
9
0
9
0
0
0
0
L
6
G
I
J
K
ω
Tâches
0
0
A B E F G I K
0
9
0
0
A B E F G I J K
Date au +tôt
0
1
1
1
8
14 29 18 33
47
44 54 56
Date au + tard
0
1
2
3
8
16 29 20 33
47
44 54 56
Marge
0
0
1
2
0
2
0
0
0
2
0
0
0
A B E F G J I K
On constate que la durée totale du projet passe de 53 à 56 dans les deux cas. Mais il est
préférable de réaliser I avant J car les marges sur les tâches D, H et L sont alors rallongées
de 7 unités.
Yves Correc 26/02/2007
3–13
ω
Recherche Opérationnelle - Ordonnancement
3.8.
CONTRAINTES CUMULATIVES
On peut rencontrer deux catégories de problèmes:
•
Minimiser la durée totale du projet en respectant certaines contraintes sur des moyens
particuliers (matériels ou personnels).
•
Lisser l'usage des moyens avec une contrainte sur la durée totale du projet.
Mais le problème le plus fréquent consiste en fait à trouver un compromis entre une utilisation
optimale de moyens coûteux et la durée globale du projet.
La méthode classique des potentiels ne permettant pas de gérer les contraintes dues à la limitation
des ressources, on utilisera une heuristique (méthode sérielle), et l'on introduira préalablement la
notion de diagramme de charge associé au projet, afin de visualiser l'utilisation des moyens pendant
son déroulement.
A cet effet, on représentera sur un graphe les moyens nécessaires à l'avancement du projet, avec en
abscisse le temps (généralement échantillonné par valeurs entières: jours, semaines, …), et en
ordonnée la quantité de moyens consommée à l'instant t. Cela suppose bien sûr que ces moyens sont
réductibles à une unité commune (nombre d'ouvriers, budget, …). On devra dans le cas contraire
envisager plusieurs diagrammes séparés, ce qui compliquera les choses…
Sur ce diagramme de charge, que l'on peut aussi voir comme une forme d'évolution du diagramme de
Gantt, l'utilisation pour la tâche A d'un niveau de moyens égal à 2 pendant 3 unités de temps sera
représentée par un rectangle de hauteur 2 et de longueur 3, positionné à partir de la date au plus tôt
de démarrage de la tâche.
mo yens
5
lim ita tio n
des moye ns
4
3
C
2
1
B
A
1
2
3
4
5
temp s
D iag ram m e de c harge associé à un o rdo nna nce m e n t
On a fait là sans le dire une hypothèse assez forte sur le déroulement des tâches élémentaires: on
suppose que la consommation de moyens y est constante sur leur durée, ce qui est évidemment un
peu réducteur, mais donnera des méthodes de résolution assez simples, comme la méthode sérielle.
On pourrait bien sûr tenter de réguler la charge en faisant varier la consommation d'une tâche entre
son début et sa fin, ou en jouant sur sa durée qui ne serait plus alors une donnée fixe du problème.
C'est certainement plus réaliste, mais cela introduit beaucoup plus de degrés de liberté qui, s'ils
peuvent éventuellement améliorer la solution, compliquent énormément la résolution. On se limitera
donc dans ce cours à l'hypothèse de tâches de durée fixe, à décaler en bloc si besoin est.
Yves Correc 26/02/2007
3–14
Recherche Opérationnelle - Ordonnancement
On devine à ce stade que le calcul d'un ordonnancement sous contraintes de moyens et/ou de durée
va s'apparenter d'un peu loin à une partie de Tetris où l'on va essayer de faire tenir dans la grande
boîte délimitée par ces contraintes globales l'ensemble des rectangles associés aux tâches (et non les
figures déformables qui apparaîtraient si l'on pouvait jouer à la fois sur la charge et la durée de la
tâche), et dans un ordre compatible avec leur exécution…
Cet ordre va dépendre bien sûr des contraintes de précédence entre tâches, mais aussi de l'intérêt
que pourra présenter la réalisation d'une tâche plutôt qu'une autre quand les moyens font défaut... On
entame à un moment donné la réalisation d'une tâche à sa date au plus tôt: oui, mais que fait-on si
elle est en concurrence au niveau des moyens avec une autre tâche? A laquelle vaut-il mieux allouer
préférentiellement les moyens? Laquelle supportera le moins mal (pour le projet global) de prendre du
retard de ce fait?
Plusieurs critères sont envisageables pour aider ce choix. Les données disponibles au terme d'un
ordonnancement sans contraintes de moyens sont: date au plus tôt, date au plus tard, marge, durée,
moyens… Le bon sens conduit à privilégier les tâches les plus "urgentes", soit dans l'absolu parce
que leur date butée est proche (date au plus tard), soit en relatif parce que l'on a une marge faible ou
nulle dessus (marge) avec une répercussion immédiate sur l'ensemble du projet.
L'heuristique que nous utiliserons ici, baptisée méthode sérielle parce que l'on va y balayer
séquentiellement l'ensemble des tâches du projet pour déterminer dans quelles conditions (nominales
ou retardées) elles pourront être exécutées, comporte trois étapes:
1) Résolution du problème d'ordonnancement classique (sans contrainte de moyens)
et construction du diagramme de charge. Si les moyens nécessaires sont compatibles
avec les limitations imposées, fin de l'algorithme, sinon:
2) Classement des tâches suivant l'un de ces critères: par dates au plus tôt croissantes,
par dates au plus tard croissantes, par marges croissantes, par durées croissantes. On
utilisera de préférence le deuxième ou le troisième.
3) Reconstruction séquentielle de l'ordonnancement en réalisant les tâches dans
l'ordre prévu en fonction de la disponibilité des moyens: On étudie les tâches l'une après
l'autre suivant l'ordre défini par le classement (2), en vérifiant à chaque fois si elle peut
commencer à la date au plus tôt initialement prévue. Cela nécessite que:
•
•
Toutes les tâches qui la précèdent doivent avoir été achevées.
Tous les moyens nécessaires à sa réalisation doivent être disponibles pendant
toute sa durée prévue.
Si ces deux conditions sont vérifiées, la tâche peut s'exécuter comme prévu.
Dans le cas contraire, on doit retarder son démarrage jusqu'au moment où les moyens
nécessaires sont enfin disponibles.
Deux cas de figure apparaissent alors: Si le retard est inférieur à la marge, il n'y a pas
d'impact sur le projet, sinon des répercussions sont à prévoir sur l'ensemble du projet qui
prendra du retard (difficile à prévoir exactement sans faire le calcul: attention à l'effet
domino évoqué au paragraphe 3.6.).
Yves Correc 26/02/2007
3–15
Recherche Opérationnelle - Ordonnancement
On illustrera cette méthode sur l'exemple défini par le tableau suivant:
Tâches
précédents
moyens
durée
A
∅
3
6
B
∅
2
3
C
∅
1
6
D
B
1
2
E
B
3
4
F
AD
3
3
G
CEF
2
1
(1) Déterminer l'ordonnancement au plus tôt (dates, marges), et le diagramme de charge associé.
(2) Trouver un ordonnancement correspondant à des moyens limités globalement à 5 unités.
Après décomposition en niveaux, on obtient le graphe représentatif du projet, sur lequel on calcule
(date au plus tôt, date au plus tard):
0,0
A
0
α
0
0
6,6
F
6
3,4
D
3
0,1
B
3
0,3
3
3,5
E
6
C
2
9,9
4
G
1
10,10
ω
Le diagramme de charge associé est :
Moyens
8
7
6
5
C
4
B
3
2
1
E
D
C
A
F
G
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Yves Correc 26/02/2007
t
3–16
Recherche Opérationnelle - Ordonnancement
On applique la méthode sérielle avec pour critère de classement la date au plus tard. On donne en
colonne 3 les moyens restant disponibles au moment de commencer une tâche (à la date au plus tôt):
Tâche
Date au
plus tard
Moyens
nécessaires
Moyens
disponibles
A
0
3
5
OK
B
1
2
2
OK
C
3
1
0 puis 2
D
4
1
1
E
5
3
1 puis 4
Doit attendre la fin de A, décalage de 3
F
6
3
1 puis 2 puis 5
Doit attendre la fin de E, décalage de 4
G
9
2
5
Remarques:
Doit attendre la fin de B, décalage de 3, sans
conséquences
OK
OK après F
Le diagramme de charge résultant est le suivant (allongement de la durée du projet à 14):
Moyens
8
7
6
5
4
3
2
1
Limitation des
moyens à 5 unités
D
B
C
E
A
F
C
G
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Yves Correc 26/02/2007
t
3–17
Recherche Opérationnelle - Ordonnancement
Exercice 1 (construction d'une maison avec limitation des moyens)
La construction d'un édifice comporte un certain nombre de tâches. Pour chacune d'elle sont précisés
ci-dessous le libellé, la durée (en jours), les moyens requis (nombre d'ouvriers), et les contraintes sur
le début :
A
pose des cloisons
10 j
B
menuiserie
12 j
C
vitrerie
14 j
D
ossature
10 j
E1
électricité-plomberie
6j
E2
électricité-plomberie
14 j
F
charpente
11 j
plus tard 20 jours avant le début de B
G
couverture
13 j
H
électricité-chauffage
15 j
I
revêtements muraux
16 j
3 ouv
2 ouv
2 ouv
6 ouv
1 ouv
2 ouv
3 ouv
au plus tôt à la fin de E1 et G
au plus tôt à la fin de A et G
au plus tôt à la fin de B
au plus tard 5 jours après début des travaux
au plus tôt à la fin de D
au plus tôt à la fin de A
au plus tôt lorsque les 4/5 de D sont achevés et au
2 ouv
2 ouv
1 ouv
au plus tôt à la fin de F
au plus tôt à la fin de E et I
au plus tôt à la fin de C
(1)
Déterminer, au moyen de la méthode "potentiel-tâche" de ROY, un ordonnancement de durée
minimale (dates au plus tôt, au plus tard, marges et chemin critique).
(2)
Etablir le diagramme de charge associé. Commentaires ? Peut-on lisser la charge sans
retarder la livraison ? Y a-t-il un intérêt quelconque à retarder la livraison ?
NB. On prendra pour résoudre cet exercice l’hypothèse surréaliste que la main d'oeuvre concernée
est universellement compétente et parfaitement interchangeable...
Solution:
On effectue la décomposition en niveaux sur le dictionnaire des précédents, qui résulte
immédiatement de l'énoncé des contraintes de précédence entre tâches:
A
E1,G
A
E1,G
A
G
A
B
A,G
B
A,G
B
A,G
B
A
C
C
B
C
B
C
B
C
B
E2
D
E1
E2 A
E2 A
E1 D
E2 A
G
H
E,I
E2 A
F
H
E,I
I
C
I
C
F
4/5D
G
F
G
F
H
E,I
H
E,I
I
C
I
C
C
B
B
H
E,I
I
C
H
H
I
I
C
I
H
I
niveaux
D
E1, F
G
A
B, E2
C
I
H
Ce qui permet de construire le graphe associé au projet, décomposé en niveaux, sur lequel va être
effectué successivement le calcul des dates au plus tôt (balayage avant, en vert), au plus tard
(balayage arrière, en rouge), et des marges (en bleu). Le chemin critique est indiqué en rouge.
Yves Correc 26/02/2007
3–18
Recherche Opérationnelle - Ordonnancement
10
10
E2
14
H
13
D
0à5
A
8
F
G
11
10
α
6
E1
B
13
C
12
I
14
ω
15
16
20
Graphe décomposé en niveaux
1
0
0à5
3
10 26
E1
6
4
8
8 8
F
11
5
6
32 32
42 70
10
A
E2
19 19
G
10
α
0 0
D
10
2
13
0
13
14
42 42
B
7
12
54 54
C
14
68 68
I
8
9
84 84
H
99 99
ω
15
16
20
Calcul des dates au plus tôt, et au plus tard
1
0
0à5
0
3
10 26
E1
6
4
8
0
19 19
G
0
13
20
7
14
28
0
11
6
32 32
42 70
10
A
E2
16
8 8
F
5
10
α
0 0
D
10
2
13
0
42 42
B
0
12
54 54
C
0
14
68 68
I
8
9
84 84
H
99 99
ω
16
0
15
0
0
Calcul des marges, et chemin critique
0
1
2
3
4
5
6
7
8
9
On détermine ensuite le diagramme de charge associé à ces ordonnancement au plus tôt, sans
contraintes de ressources:
Yves Correc 26/02/2007
3–19
Recherche Opérationnelle - Ordonnancement
On observe un pic de consommation de ressources (9) dû au démarrage de la tâche F avant la fin de
la tâche D. Par ailleurs, compte tenu des marges sur E1 et E2, supérieures respectivement aux
durées de F, et de B+C, il apparaît possible de retarder le début de E1 après la fin de F, et le début de
E2 après la fin de C, de manière à lisser quelque peu la charge durant la plus grande partie de la
construction sans augmenter sa durée totale (99), réduisant ainsi le nombre maximal d'ouvriers
nécessaires pendant cette période de 4 à 3, comme l'indique le diagramme de charge modifié qui suit:
Si l'on veut aller plus loin, il est nécessaire d'effacer le pic précité en retardant le démarrage de F
après la fin de D, ce qui retarde globalement la construction de 2 jours car F est sur le chemin critique.
La durée totale passe alors de 99 à 101 jours, ce qui requiert 6 ouvriers pendant 10 jours, puis 3
ouvriers au plus jusqu'à l'achèvement:
Yves Correc 26/02/2007
3–20
Recherche Opérationnelle - Ordonnancement
Exercice 2
Une réalisation industrielle comporte un certain nombre d'opérations définies par le tableau suivant:
Durée
(jours)
15
10
10
15
5
30
25
60
20
5
25
35
40
20
20
20
35
55
5
Tâche
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
Tâches précédentes
B
Aucune
A
Aucune
C D
E
F
A
C H
I
G J
K
L
B
M
N 0
K
K
P Q R
1. Donner
le
graphe
(décomposé
en
niveaux) associé à la méthode potentieltâche de ROY.
2. Au moyen de cette méthode, déterminer
les dates au plus tôt, au plus tard, les
marges et les tâches critiques. Indiquer le
chemin critique sur le graphe.
3. Construire
le
diagramme
de
charge
associé sachant qu'un seul ouvrier est
affecté à chaque tâche.
4. Peut-on lisser la charge?
Solution
La décomposition en niveaux, conduite à partir du dictionnaire des précédents ci-dessus, nous donne
en partant du début du projet les niveaux suivants:
(B D), (A N), (C H), (E I), (F J), (G), (K), (L Q R), (M), (O), (P), (S).
Et le graphe correspondant est:
15
20
E
I
H
G
25
60
20
J
L
25
K
5
25
A
15
30
35
M
40
O
Q
20
P
S
5
10
F
25
C
5
10
B
15
0
10
N
20
α
D
10
0
35
ω
55
R
Yves Correc 26/02/2007
3–21
Recherche Opérationnelle - Ordonnancement
La suite des dictionnaires de précédents correspondant à la construction de ces niveaux est la
suivante:
Niv 1 = B, D
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
Niv 2 = A, N
B
A
CD
E
F
A
CH
I
GJ
K
L
B
M
NO
K
K
PQR
A
C
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
Niv 7 = K
K
L
M
O
P
Q
R
S
A
C
E
F
A
CH
I
GJ
K
L
M
NO
K
K
PQR
Niv 3 = C, H
C
E
F
G
H
I
J
K
L
M
O
P
Q
R
S
Niv 8=L,Q,R
L
M
O
P
Q
R
S
K
L
M
O
K
K
PQR
L
M
O
PQR
C
E
F
CH
I
GJ
K
L
M
O
K
K
PQR
Niv 4 = E, I
E
F
G
I
J
K
L
M
O
P
Q
R
S
Niv 9 = M
M
O
P
S
M
O
P
Niv 5 = F, J
E
F
I
GJ
K
L
M
O
K
K
PQR
F
G
J
K
L
M
O
P
Q
R
S
Niv 10 = 0
O
P
S
F
GJ
K
L
M
O
K
K
PQR
Niv 6 = G
G
K
L
M
O
P
Q
R
S
Niv 11 = P
O
P
P
S
G
K
L
M
O
K
K
PQR
Niv 12 = S
P
S
-
Le calcul des dates au plus tôt ti (balayage avant, en vert) et des dates au plus tard Ti (balayage
arrière, en rouge) donne:
0,35
0
15
0
35,50 2
10,210
0
25,40
C
85,85
I
H
60
25,25
170,170
L
25
35
K 110,110
J
20 105,105
5
25
A
10,101
5
25
135,135
M
O
40
20
210,210
Q
230,230
P
250,250
S
5
10
5 40,55 30
G
25
B
70,85
F
10
0,0
E
10
10
N
20
α
D
15
0,0
35
135,215
55
ω
255,255
R 135,195
C'est à dire, pour les marges mi (en bleu) et le chemin critique (en rouge):
Yves Correc 26/02/2007
3–22
Recherche Opérationnelle - Ordonnancement
35
D
0
15
15
200
0
5
15
C
0 1
5
I
60
H
0
20
0
0
G
L
M
25
25
K
5
J
0
35
40
O
0
0
25
A
15 30
15
20
P
0
S
0
5
10
F
25
B
10
0
E
10
10
N
20
20
α
15
0
35
Q
80
ω
0
55
R 60
0
Enfin le diagramme de charge associé à cet ordonnancement (on aura pris soin de commencer par
les tâches du chemin critique, par définition incompressibles, qui vont ainsi constituer en quelque
sorte les "fondations" de la figure…) nous permet de conclure que la charge qui peut temporairement
atteindre 3 unités est susceptible d'être lissée à 2 unités sans retarder le projet.
Deux façons de procéder existent pour chaque pic observé:
Pour effacer le pic N, on peut décaler N après G (figure ci-dessous), ou bien insérer N entre D et C,
les marges sur C, E, F, G le permettant. Le décalage de N est sans doute préférable car il permet de
conserver les marges sur C, E, F, G.
Pour effacer le pic Q, on peut repousser Q après R (figure), ou bien R après Q, les marges le
permettant aussi. Le choix le moins risqué sera de décaler R (la plus petite marge résiduelle est
supérieure dans ce cas).
On n'a pas eu recours ici à la méthode sérielle, vu la simplicité du diagramme de charge à traiter.
3
N
2
Q
N
D N CE
F
B A
H
N
G
Q
R
1
0
50
Yves Correc 26/02/2007
I
J
100
K
L
150
M
200
O
P S
250
3–23
Recherche Opérationnelle - Ordonnancement
3.9.
OPTIMISATION DU COÛT ET DE LA DURÉE D'UN PROJET
On a supposé que les moyens et les durées étaient fixes, le problème consistant uniquement à
déterminer les dates de début des tâches, voire à la rigueur comme l'a vu au paragraphe précédent, à
déterminer la durée du projet en fonction des contraintes sur les moyens.
Il est généralement possible en fait d'accélérer une ou plusieurs tâches au prix d'une augmentation de
leur coût, jusqu'à un certain point, et donc de réduire la durée totale du projet. Le coût global du projet
peut alors être considéré comme une fonction décroissante de sa durée T . Par contre le retard
apporté à l'achèvement d'un projet peut se traduire par des coûts indirects liés à ce retard (par
exemple un manque à gagner sur un retard de construction: immobilisation financière ou mise en
location différée ). Le coût total, somme des coûts directs et indirects, présente souvent une forme
voisine de celle de la figure qui suit.
C
o
û
t
Coût global =
direct+indirect
Coût indirect
Coût direct
Durée T
On peut alors vouloir déterminer la durée optimale Tmin qui minimise le coût global du projet.
Pour cela, on va chercher à établir une relation entre coût et durée, c = f(d).
Pour chaque tâche on peut déterminer deux couples de valeurs (durée-coût), les valeurs
correspondant à une tâche "normale" (di, ci), et les valeurs correspondant à une tâche "accélérée" (Di,
Ci), et supposer que dans l'intervalle le coût varie linéairement en fonction de la durée. Ce qui permet
d'approcher la courbe par un segment de droite ayant pour pente le coût marginal relatif à la tâche i:
cmi = (Ci - ci) / (Di - di)
Si l'on appelle δi la durée de chaque tâche (ajustable dans l'intervalle [di , Di ]), on peut alors prendre
pour objectif de minimiser, en jouant sur les δi, le coût du projet c = Σ (ci + cmi (δi - di)), soit à une
constante près:
Min Σi cmi δI
sous les contraintes de potentiel
durée globale
durée chaque tâche
δi ≤ tj - ti
tn – t1 ≤ d
di ≤ δi ≤ Di
C'est un problème de programmation linéaire, pour d fixé, et l'on devra donc en envisager la résolution
paramétrée par le second membre (en d), ce qui s'avérera très lourd (mind c, où la fonction coût est
décroissante et linéaire par morceaux en fonction de d).
Une approche plus simple consiste à employer la méthode de résolution heuristique qui suit:
On construit l'ordonnancement au plus tôt correspondant aux durées "normales" di des tâches.
On cherche ensuite à réduire la durée globale du projet, en accélérant la tâche du chemin critique de
coût marginal minimum, puis la suivante, etc. On recalcule au cours de ce processus le chemin
critique du projet, qui est susceptible de changer (l'apparition d'un nouveau chemin critique dans
l'ordonnancement correspond à une discontinuité de la pente de la courbe c(d).
La procédure se termine quand aucune amélioration (réduction de la durée d'une tâche d'un chemin
critique) n'est plus possible.
Yves Correc 26/02/2007
3–24