Vous êtes sur la page 1sur 17

CHAPTER 1

Ordonnancement
1.1. tude de cas
Ordonnancement de tches avec contraintes de prcdences

1.1.1. Exemple : construction d'une maison.

Exercice. On veut construire une maison, ce qui consiste en 9 tches, le plus rapidement possible,
avec les contraintes suivantes :
 Certaines tches dpendent d'autres tches
 Toutes les tches demandent une semaine de travail.
 Chaque ouvrier ne peut travailler que sur une tche par jour
 Il n'y a pas de gain de temps si plusieurs ouvriers travaillent sur la mme tche

N: nains de jardin

I: peinture intrieure

E: lectricit T: toit P: plomberie T: fentres X: peinture extrieure

M: murs

F: fondations

Exemple. Organisez un emploi du temps pour un ouvrier, de faon construire la maison le plus
rapidement.
semaine 1 semaine 2 semaine 3 semaine 4 semaine 5 semaine 6 semaine 7
ouvrier 1
De mme, s'il y a deux ouvriers :
semaine 1 semaine 2 semaine 3 semaine 4 semaine 5 semaine 6 semaine 7
ouvrier 1
ouvrier 2
De mme, s'il y a trois ouvriers :
semaine 1 semaine 2 semaine 3 semaine 4 semaine 5 semaine 6 semaine7
ouvrier 1
ouvrier 2
ouvrier 3
Et s'il y a plus d'ouvriers ?
1
2 1. ORDONNANCEMENT

Dfinition. Dans le jargon de la recherche oprationnelle, nous avons ordonnanc des tches
(construction des fondations, ...) sur plusieurs processeurs (les ouvriers), avec des contraintes de
prcdences (un ordre partiel).

Un ordonnancement est optimal s'il minimise la fonction objectif (ici la dure totale).

1.1.2. Cas d'un processeur.

Exercice. Chercher un algorithme pour ordonnancer optimalement des tches avec contraintes
de prcdences sur un processeur.

Quelle est la complexit de cet algorithme ?

Dmontrez l'optimalit de l'ordonnancement obtenu.

En fait, ce que l'on recherche c'est une numration t1 , . . . , tn des tches de sorte que si ti < tj

alors i < j . Une telle numration des tches est appele extension linaire de l'ordre partiel.
On peut voir a comme un tri des tches. Mais attention, on ne peut utiliser les algorithmes de tri
usuels en O(n log n), (tri insertion, tri fusion, . . . ), que si l'ordre est total (toutes les tches sont
comparables).

1.1.3. Cas d'un nombre illimit de processeurs.

Exercice. Chercher un algorithme pour ordonnancer optimalement des tches avec contraintes
de prcdences sur un nombre inni de processeurs.

Quelle est la complexit de cet algorithme ?

Dmontrez l'optimalit de l'ordonnancement obtenu.

Il s'agit d'un algorithme glouton.


chaque tape, on maximise localement le nombre de tches eectues, et il se trouve que le
problme est susamment simple pour que le rsultat soit un optimal global.

1.1.4. Cas de deux processeurs.

Exercice 1. Ordonnancez optimalement les trois ordres partiels suivants sur 2 processeurs :
1.1. TUDE DE CAS ORDONNANCEMENT DE TCHES AVEC CONTRAINTES DE PRCDENCES 3

f g

d b d e d e f

a a b c a b c
1: ,2: ,3:

1.1.4.1. Algorithme de Coman-Graham (algorithme de liste). L'ide est comme pour p =


de construire un algorithme de type glouton.
On associe chaque tche t une priorit P (t).
Il sera pratique de considrer un processeur inactif comme en train d'excuter une tache vide
. C'est d'ailleurs pas si draisonnable, vu que en pratique en assembleur il y a une instruction
spcique nop pour dire un processeur de ne rien faire.
Par convention, on pose P () = .
Algorithme 1.1.1. Algorithme de liste pour ordonnancer des tches unitaires soumises des
contraintes de prcdences sur p processeurs.
(1) Calculer la priorit P (t) de toutes les tches.
(2) d := 1.
(3) Parmi les tches minimales (on dira aussi disponibles), en choisir p de priorit maximale
(s'il y a moins de p tches minimales, les prendre toutes), et les placer dans l'ordonnan-
cement la date d.
Le choix du processeur est sans importance ; par convention, on mettra celle de poids
max sur le premier processeur, et ainsi de suite.
On note td,k la tche excute au temps d sur le processeur k.
(4) Ritrer la date d := d + 1 avec les tches restantes.

On appelle cet algorithme algorithme de liste parce qu'une faon de l'implanter est de commencer
par construire une liste des tches par ordre de priorit dcroissantes, et ensuite de construire
l'ordonnancement en prenant les lments dans la liste dans l'ordre.
Exercice. Trouver des fonctions de priorit pour que cet algorithme de liste donne des ordon-
nancements optimaux dans les cas p = 1 et p = .

Il s'agit essentiellement d'une gnralisation des algorithmes que l'on a vu prcdemment.


Exercice. valuez la complexit de cet algorithme.
4 1. ORDONNANCEMENT

Exercice. Peut-on avoir td,1 = ?

Seulement si on est arriv la n de l'ordonnancement.


Remarque. la priorit P (td,1 ) des tches sur le premier processeur est dcroissante.
Exercice. Vriez-le !
Donnez aussi un contre-exemple dans le cas du deuxime processeur.

Soit t une tche place une date > d. En regardant successivement les prdcesseurs de t de date
> d, on ni par trouver une tche t0 t disponible. D'aprs le critre de choix de la tche sur
le premier processeur, on a P (t0 ) P (td,1 ). Comme la fonction de priorit est croissante, on en
dduit que P (t) P (td,1 ).
d b

a
Contre exemple :
Problme. Quelle fonction de priorit choisir dans le cas de deux processeurs ?
(1) P (t) := nombre de successeurs de t :
Avec l'ordre 2 ci-dessus, l'algorithme donne un ordonnancement non optimal.
(2) P (t) := taille de la plus grande chane partant de t :
Avec l'ordre 3 ci-dessus, l'algorithme donne de manire non-dterministe un ordon-
nancement non optimal.
Dfinition. On va dnir P (t) rcursivement comme suit :
Pour chaque tche t maximale, on pose P (t) := 0.
On regarde ensuite les tches maximales dans le reste de l'ordre.
Pour chacune d'entre elles, on construit la liste dcroissante des priorits de ses successeurs im-
mdiats. Pour dterminer quelles sont les tches les plus prioritaires, on compare ces listes lexico-
graphiquement. Ensuite, on assigne aux tches les priorits 1, 2, . . . par ordre de priorit.
On ritre avec les tches restantes.
Exercice. Calculer les priorits pour les ordres ci-dessus, ainsi que l'ordonnancement correspon-
dant.
Donner un exemple sur lequel le calcul des priorits est intressant.
valuer la complexit du calcul des priorits.

Thorme. L'algorithme de Coman-Graham donne un ordonnancement optimal.


1.1. TUDE DE CAS ORDONNANCEMENT DE TCHES AVEC CONTRAINTES DE PRCDENCES 5

La preuve du thorme repose sur le lemme suivant.

Lemme. Soit d telle que P (td,2 ) < P (t) pour une certaine tche t excute aprs td,2 (typiquement,
td,2 = ). Alors, td,1 < t. La construction de la fonction de priorit nous permet de dire bien plus
fort : pour toute tche vriant P (t0 ) P (td,1 ), on a t0 < t.
Exercice. Dmontrez le ! Indication : on considrera d'une part l'ensemble T des tches t excu-
tes aprs td,2 , et d'autre part l'ensemble T 0 des tches t0 telles que P (t0 ) P (td,1 ).

Proof. Principe de la preuve du thorme.


On pose d0 := 0, et on repre les positions d1 , d2 , . . . comme ci-dessus.
On dnit des blocs de tches B0 , B1 , B2 , . . . entre chacune de ces positions :

Bk := tdk +1,1 , tdk +1,2 , . . . , tdk+1 ,1 .

En appliquant le lemme, on montre que toutes les tches de B0 prcdent toutes les tches de B1 ,
et ainsi de suite avec les blocs suivants.
Cette dcomposition en blocs prouve l'optimalit de l'ordonnancement. 

Exercice. Donnez les dcompositions en blocs de la preuve dans les exemples d'ordonnancements
que l'on a vu.

1.1.4.2. Algorithme de Fuji et al. Cet autre algorithme est bas sur la remarque suivante :
Remarque. Un ordonnancement de tches de dure unitaire sur 2 processeurs est une couverture
de l'ordre partiel an antichanes de taille au plus 2, de sorte que deux antichanes ne se croisent
pas.

Algorithme 1.1.2. Ordonnancement de tches unitaires soumises des contraintes de prc-


dences sur 2 processeurs.
(1) Chercher une couverture de l'ordre partiel en antichanes de taille au plus 2.
(Comment peut-on faire a ?)
(2) Dcroiser les antichanes obtenues.

Le faire sur un exemple intressant

1.1.5. Cas de p processeurs.

Problme. Est-ce que l'algorithme de Fuji et al. marche encore ?


Indication : analysez l'exemple suivant sur 3 processeurs :

e f

a b c d
6 1. ORDONNANCEMENT

Conclusion : la couverture optimale en antichanes de taille au plus 3 est compose de deux


antichanes ; mais on ne peut pas les dcroiser en un ordonnancement de dure 2.

Problme. Est-ce que l'algorithme de Coman-Graham marche encore ?


Indication : analysez les exemples suivants sur 3 processeurs :

j k l k j

g h i g h i

d e f d e f

a b c a b c

Conclusion : Coman-Graham sur 3 processeurs donne un ordonnancement raisonnable, mais pas


forcment optimal.

Problme. Peut-on quand mme utiliser un algorithme de liste pour trouver une solution opti-
male ?
Comment chercher toutes les solutions optimales ?

Dfinition. Un ordonnancement sera dit tass gauche s'il n'y a pas de date d avec un pro-
cesseur inactif, alors qu'il restait des tches disponibles. Les algorithmes de liste donnent de tels
ordonnancements tasss gauche.

Exercice. Montrer que tout ordonnancement O peut tre transform en un ordonnancement O0


tass gauche sans augmentation de dure totale.

En dduire qu'il existe toujours un ordonnancement tass gauche optimal.


On dit que l'ensemble des ordonnancements tasss gauche est dominant.

Montrez que tout ordonnancement tass gauche peut tre obtenu par un algorithme de liste
(indication : construire une fonction de priorit ad hoc pour cet ordonnancement).
1.1. TUDE DE CAS ORDONNANCEMENT DE TCHES AVEC CONTRAINTES DE PRCDENCES 7

On peut en fait utiliser le principe des l'algorithmes de liste pour faire une recherche exhaustive :
chaque fois que l'on doit faire un choix de p tches parmi les tches disponibles, on explore
tour de rle tous les choix possibles. On parcourt alors un arbre de choix, dont les extrmits sont
les ordonnancements tasss gauches.
C'est ce qu'on appelle un mthode arborescente.
videment, la complexit devient exponentielle !
Pour limiter les dgts, il faut autant que possible essayer d'liminer les choix qui sont clairement
mauvais, de faon couper des branches.
Typiquement, si on a dj trouv un ordonnancement de dure D, ce n'est pas la peine d'explorer
les branches o les choix dj faits impose qu'il y ait des tches aprs D.
Une telle mthode s'appelle branch and bound en anglais.
1.1.5.1. Cas particulier : l'ordre de prcdence est une anti-arborescence.
Thorme. Si l'ordre de prcdence est une anti-arborescence, alors l'algorithme de liste avec
comme fonction de priorit la cohauteur donne un ordonnancement optimal.
1.1.6. Ordonnancement de tches de dures non unitaires.

Problme. Parmi les algorithmes que nous avons vu prcdemment, lesquels s'adaptent au cas
ou les tches sont de dures arbitraires ?

1.1.6.1. Cas d'un processeur.


Exercice. Est-ce qu'un algorithme de liste donne un ordonnancement optimal ?

Pas de dicult : n'importe quelle extension linaire de l'ordre des tches fera l'aaire.
1.1.6.2. Cas d'un nombre illimit de processeurs.
Exercice. Est-ce qu'un algorithme de liste donne un ordonnancement optimal ?

Pas de dicult.
Il s'agit en fait d'un cas particulier de la mthode PERT : pour dterminer la dure totale, il
sut de rechercher un chemin critique. C'est encore un cas de thorme min-max, qui peut tre
vu comme cas particulier du thorme de dualit de la programmation linaire.
Exercice. Dterminer la complexit de la recherche d'un chemin critique.

D'ailleurs on peut aussi utiliser la programmation linaire, comme on l'avait fait en TP.
Tel quel, c'est un peu utiliser un marteau pilon !
Mais on avait pu de la sorte traiter des variantes de ce problme, avec par exemple des tches de
dures variables, moyennant un cot, etc.
8 1. ORDONNANCEMENT

1.1.6.3.Cas de deux processeurs.


Thorme. Mme sans contrainte de prcdences, le problme d'ordonnancer des tches sur 2
processeurs de manire optimale est NP-complet !
1.1.7. Synthse. On a vu ici des exemples d'applications des principales mthodes d'ordon-
nancement :
(1) Mthode PERT
(2) Mthodes de liste
(3) Programmation linaire
(4) Mthodes arborescentes avec stratgies de coupes
Proposition. Considrons le problme d'assigner n tches de dures unitaires sur p processeurs,
sous des contraintes de prcdences, et avec les contraintes et but comme ci-dessus.
 1 ou 2 processeurs : algorithmes en O(n + m) ;
 3 processeurs : complexit inconnue ;
 p processeurs : NP-complet
 processeurs : O(n + m).
Ceci est typique des problmes d'optimisation discrte, o de lgres modications dans les
contraintes peuvent faire une grande dirence de complexit. En fait, la complexit volue souvent
de la manire suivante :
 Pas de contrainte : facile
 Quelques contraintes : complexit polynomiale de degr de plus en plus grand
 Plus de contraintes : trs diciles (NP-complet). Les algorithmes sont bass sur une recherche
arborescente.
 Encore plus de contraintes : facile. ventuellement toujours NP-complet, mais la plupart des
branches peuvent tre coupes trs tt, ce qui donne une bonne complexit en moyenne.

1.2. Description des problmes d'ordonnancements

De manire gnrale, un problme d'ordonnancement consiste organiser l'excution de tches,


en leur attribuant des ressources et en xant leurs dates d'excution. Pour une classication des
dirents types d'ordonnancements, nous renvoyons l'introduction de [1].
Notation 1.2.1. Quelques notations relativement standard (que l'on a pas forcment respect
ci-dessus !) :
m: nombre de machines ;
n: nombre de tches ;
I : ensemble des tches ;
i: indice d'une tche ou d'un vnement ;
ti : date de dbut d'excution de la tche i ou de l'vnement i ;
Ci : date de n d'excution de la tche i ;
Cmax : dure totale de l'ordonnancement : Cmax := max(Ci ) ;
pi : dure de la tche i ;
pi,j : dure de la tche (i, j) (graphe CPM/PERT)
pik : dure de la tche i sur la machine k ;
ri : date de disponibilit de la tche i ;
di : date chue de la tche i (dead-line ) ;
Ti : retard de la tche i : Ti := max(0, Ci di ) ;
Ui : indice de retard : Ui = 1 si la tche est en retard, et 0 sinon ;
1.3. MTHODES POLYNOMIALES ET PSEUDO-POLYNOMIALES 9

wi : poids de la tche i ;
aij : contrainte potentielle entre deux tches (tj ti aij ) ;
<: ordre partiel sur l'ensemble des tches.
Exercice. Ci-dessous est une liste de problmes (pour la plupart dj rencontrs dans ce cours),
et qui rentrent dans le cadre des problmes d'ordonnancements. Dterminer la classication de
chacun de ces problmes, ainsi que la valeur des direntes variables ci-dessus. Prcisez aussi
quelles sont les contraintes disjonctives et les contraintes cummulatives.

(1) Ordonnancement de tches unitaires sur des processeurs avec contraintes de prcdences ;
(2) Assignement de cours des professeurs (ou de nageurs pour un relais 4 nages) ;
(3) Problme des visites ;
(4) Conception d'un emploi du temps dans un petit collge. Pour simplier, on suppose que
toutes les classes, de la 6me la 3me, ont le mme nombre d'heures de chaque matire,
et qu'il y a un professeur par matire ;
(5) Ordonnancement du chantier du TP.

1.3. Mthodes polynomiales et pseudo-polynomiales

Nous allons voir une srie de cas particuliers pour lesquels il existent des mthodes polynomiales
de rsolution.
Il faudrait tre prudent avec la dnition de polynomial.
Polynomial en quoi ? Polynomial en la taille des donnes.
Or, dans les donnes des entiers peuvent apparatre, et il y a deux faons de mesurer la taille d'un
tel entier a :

(1) Le nombre de bits pour stocker a en base 2, c'est--dire log(a).


(2) Le nombre de bits pour stocker a en base 1, c'est--dire a.

Selon le choix de cette mesure, le mme algorithme peut tre polynomial ou exponentiel.
Un algorithme est polynomial s'il est polynomial pour la mesure 1.
Un algorithme est pseudo-polynomial s'il est polynomial pour la mesure 2.
Nous renvoyons [1, p. 76]pour les dtails.

1.3.1. Ordonnancement de tches morcelables (avec premption). Lorsque les tches


sont morcelables, les problmes deviennent nettement plus faciles, et on peut plus souvent les
rsoudre par des mthodes polynomiales ou pseudo-polynomiales.
1.3.1.1. Machines identiques / intervalles de temps distincts.
Problme. Le but est d'ordonnancer des tches morcelables de dure p1 , . . . , pn sur m machines
identiques de telle sorte que la tche i s'excute dans l'intervalle de temps [ri , di ].
Exercice. Ordonnancement sur deux machines identiques, de quatre tches morcelables A, B, C, D
avec pA = pB = pD = 2, pC = 4 ; dA = dD = 5 ; dB = 3, dC = 4 ; rA , rB , rC = 0, rD = 2.
Construisez un problme de transport permettant de rsoudre ce problme par la programmation
linaire.
Indice : dcouper le temps en 5 plages horaires [0, 1], [1, 2], [2, 3], [3, 4], [4, 5].
10 1. ORDONNANCEMENT

Remarque. Cette mthode ne marche que si les dates ri et di sont entires !


De plus, on ne s'autorise morceler les tches qu'en fragments de dure entire. Il est concevable
qu'un morcellement plus n puisse donner de meilleurs rsultats.
Si l'on accepte ces restrictions, la programmation linaire donne un algorithme pseudo-polynomial
(le nombre de plage horaires est born par max(di ) min(ri )).
Exercice. Pour le moment on a seulement cherch une solution faisable du problme d'ordon-
nancement. Cela peut se faire ecacement par un algorithme de ot.
On veut maintenant en plus optimiser la date de n d'excution. Construisez un problme de
transport qui permette de rsoudre ce problme.
Indice : Introduisez des cots sur le rseau prcdent.

1.3.1.2. Machines identiques / dure minimale.


Problme. Le but est d'ordonnancer des tches morcelables de dure p1 , . . . , pn sur m machines
identiques en minimisant la dure totale Cmax .
Exercice. Donner un ordonnancement optimal pour m := 3, n := 5, p1 := 10, p2 := 8, p3 := 4,
p4 := 14, p5 := 1.

Exercice. On pose !!
n
1 X
B := max maxi pi , pi .
m i=1
Vriez que B Cmax .
On peut construire facilement un ordonnancement vriant B = Cmax (et donc optimal) !
Il sut de remplir le diagramme de Gantt de gauche droite et de haut en bas.
Exemple. Ordonnancement de Mac Naughton pour m := 3, n := 5, p1 := 10, p2 := 8, p3 := 4,
p4 := 14, p5 := 1.

La dnition dePB assure que les tches ne se recouvrent pas elles-mmes (pi B ), et qu'il y a
n
assez de place ( i=1 pi mB ). Il se trouve que cela sut !
Algorithme (Mac Naughton)
1.3.1.
(1) B := max maxi pi , m 1
Pn 
( i=1 pi ) .
(2) t := 0 ; k := 1 ;
(3) Pour chaque tche i :
(a) Si t + pi B , on aecte i sur la machine k entre les instants t et t + pi et on pose
t := t + pi .
1.3. MTHODES POLYNOMIALES ET PSEUDO-POLYNOMIALES 11

(b) Sinon on aecte i sur la machine k entre t et B et sur la machine k + 1 entre les
instants 0 et pi (B t), et on pose k := k + 1 et t := pi (B t).
Exercice. Construire un ordonnancement pour m := 4 et (p1 , . . . , p7 ) := (5, 10, 2, 8, 3, 4, 20).

On remarque qu'il y a a relativement peu de premptions (au plus m 1).


1.3.1.3. Machines identiques, temps minimal, contraintes de prcdences.
Problme. Le but est d'ordonnancer des tches morcelables de dure p1 , . . . , pn sur m machines
identiques en minimisant la dure totale Cmax , et avec des contraintes de prcdences entre les
tches.
Exercice. Donnez des algorithmes polynomiaux pour une et deux machines, et pour un nombre
illimit de machines.

Dans ces trois cas, on peut se ramener au problme d'ordonnancement de tches unitaires en
morcelant chaque tche i en une succession de pi tches unitaires.
Remarque. Il faut tout de mme supposer que les dures des tches sont entires.
Pour tre prcis, les algorithmes ainsi obtenus sont pseudo-polynomiaux.

1.3.1.4. Machines distinctes, temps minimal.


Problme. Le but est d'ordonnancer des tches morcelables sur machines distinctes en minimi-
sant la dure totale Cmax , sachant que la dure d'excution de la tche i sur la machine j est
pij .
Exercice. Le tableau suivant donne les valeurs de pij pour 4 tches devant tre excutes sur 3
machines. Donnez un encadrement rapide de Cmax .
tche\machine 1 2 3
1 15 10 6
2 9 9 9
3 8 6 8
4 3 3 2

Slowinski et Labetoulle et Lawler ont propos une mthode trs esthtique pour rsoudre ce
problme via la programmation linaire.
L'ide est de ne pas se proccuper, dans un premier temps, des dates exactes laquelle les tches
seront excutes. On ne s'intresse qu' la dure totale xij que la tche i passe sur la machine j
dans un ordonnancement donn. Une deuxime phase, le thorme de Birkho-Von Neumann (si
si !) permettra de construire les dtails de l'ordonnancement.
12 1. ORDONNANCEMENT

Exercice. Vriez que pour tout ordonnancement, les xij sont solution faisable du programme
linaire suivant :
Xm
xij Cmax , pour i = 1, . . . , n
j=1
n
X
xij Cmax , pour j = 1, . . . , m
i=1
m
X xij
= 1, pour i = 1, . . . , n
j=1
pij
xij 0, pour i = 1, . . . , n et j = 1, . . . , m
o l'on minimise Cmax .

La premire phase consiste chercher une solution xij optimale pour ce programme linaire.
Exercice. Une solution optimale de ce programme linaire pour notre exemple est donne par
la table suivante. On a Cmax := 9.
Construisez un ordonnancement de dure Cmax donnant ces valeurs aux xij .
tche\machine 1 2 3
1 6
2 3 3 3 .
3 4 3
4 2 1

A-t'on t chanceux ?
Il n'est pas vident qu'il existe toujours un ordonnancement optimal de dure Cmax !
Exemple. Construction systmatique pour notre exemple.

Pour construire un tel ordonnancement, on transforme la matrice des xij en une matrice M
bistochastique en rajoutant une ligne et une colonne avec des coecients ci et lj idoines :
Pm
(1) ci := Cmax j=1 xij :dure totale pendant laquelle la tche i n'est pas excute ;
Pn
(2) lj := Cmax i=1 xij :dure totale pendant laquelle la machine j ne fait rien.
Pour tre prcis, c'est Cmax
1
M qui est une matrice bistochastique.
Le thorme de Birkho-Von Neumann permet alors de dcomposer M sous la forme
l
X
M= k Pk ,
k=1
o chaque Pk est une matrice de permutation et k k = Cmax .
P

On construit l'emploi du temps nal en associant chaque k une plage de temps de dure k
pendant laquelle les tches sont assignes aux machines selon la permutation Pk !

1.3.2. Ordonnancement de tches non morcelables.


1.3. MTHODES POLYNOMIALES ET PSEUDO-POLYNOMIALES 13

1.3.2.1. Problme central de l'ordonnancement ; modlisation par graphe potentiel tche. Rap-
pel : soit i et j deux tches d'un problme d'ordonnancement, et ti et tj leurs dates respectives de
dbut d'excution. On appelle contrainte potentielle une containte de la forme tj ti aij .
Exercice. Considrons un ensemble de cinq tches {1, 2, 3, 4, 5} soumises aux contraintes tem-
porelles suivantes :
(1) La tche i dure pi ;
(2) La tche 2 commence au temps 3 ;
(3) Les tches 2 et 3 doivent se chevaucher sur au moins une unit de temps ;
(4) La tche 4 ne peut commencer qu'aprs la n des tches 1 et 2 ;
(5) La tche 5 ne peut pas commencer avant le dbut de la tche 3.
Il n'y a pas de contraintes de ressources.
L'objectif est d'optimiser la dure totale.
Modliser ces contraintes par des contraintes potentielles. On rajoutera deux tches ctives 0 et 6
de faon mesurer facilement la dure totale par t6 t0 .
Reprsenter ces contraintes sur un graphe dont les sommets sont les tches et les artes sont les
contraintes.
Peut-on liminer certaines artes ?
Quelles mthodes pour traiter ce problme ?

Dfinition. Le problme central de l'ordonnancement consiste choisir les dates d'excutions


pour un ensemble de tches I , de faon respecter des contraintes potentielles et minimiser la
dure totale.
Le graphe utilis ci-dessus s'appelle graphe potentiel-tche.
Il s'agit d'une variante des graphes potentiel-vnement utiliss l'origine dans les mthodes
CPM/PERT. Les graphes potentiel-tches ont l'avantage d'tre souvent plus simples, et de per-
mettre plus facilement l'introduction de nouvelles contraintes.
Exercice. Peut-on modliser par un graphe potentiel tche :
 Des contraintes de prcdences ?
 Des dates de disponibilit ? Des dates chues ?
 Des dlais de communication ?
 Des dures d'excution ?
 Des contraintes de ressources ?

Les problmes avec contraintes de ressources (contraintes disjonctives/cumulatives) sont habituel-


lement beaucoup plus diciles que ceux sans (problmes de dcision ), et ne peuvent pas tre
modliss par des graphes potentiel-tches. Une approche classique est de les modliser par des
rseaux de Ptri temporiss. Nous renvoyons [1] pour plus d'information.

1.3.3. Problmes sans contraintes de ressources.


14 1. ORDONNANCEMENT

1.3.3.1. Optimisation de la dure totale.


Exercice. Donner une mthode polynomiale pour rsoudre un problme modlis par un graphe
potentiel-tche, et pour lequel on veut optimiser la dure totale.

1.3.3.2. tude de faisabilit.


Exercice. Le problme modlis par le graphe potentiel tche suivant a-t'il une solution ?

1 2 2

1 1

Dfinition. La valeur d'un chemin dans le graphe potentiel-tches est la somme des coecients
sur les arcs du chemin.
Si le graphe potentiel-tche a un cycle de valeur strictement positive, alors il n'y a pas de solutions.
En fait, il s'agit du seul cas ou il n'y ait pas de solutions :
Thorme. Il existe une solution faisable si et seulement si le graphe potentiel-tche n'a pas de
cycles de valeur strictement positive.
En particulier, s'il les valuations sont strictement positives, il n'y a de solution que s'il n'y a pas
de cycles. C'est typiquement le cas pour des contraintes de prcdences.
Exercice. On a dj dmontr l'un des sens du thorme. L'objectif de cet exercice est de donner
un dmonstration constructive de l'autre sens.
On suppose qu'il n'y a pas de cycles de valeur strictement positive, et on veut dmontrer qu'il y
a une solution faisable.
Soit i et j deux tches, et Cij l'ensemble des chemins lmentaires (sans boucles) allant de i j .
Vrier que Cij est ni.
Si Cij est vide, on pose l(i, j) := . Sinon, il existe donc un chemin dans Cij de plus grande
valeur ; un tel chemin est appel critique, et on note l(i, j) sa valeur. Vrier que si c est un chemin
quelconque allant de i j , alors sa valeur est infrieure l(i, j).
On dni pour chaque tche i, sa date d'excution au plus tt ri := l(0, i).
Vriez que les ri ainsi dnis forment une solution faisable.
Vriez qu'il s'agit aussi d'une solution optimale pour la dure totale.
1.5. ALGORITHMES APPROCHS 15

Problme. Comment calculer les ri eectivement ?

Lorsqu'il n'y a pas de cycles, il sut de faire un parcours en profondeur du graphe, en partant du
sommet 0 (algorithme en O(m), o m est le nombre de contraintes).
Dans le cas gnral, les potentiels ti peuvent tre interprts comme les variables duales du pro-
blme de transport construit partir du graphe potentiel-tches. Du coup, les ri peuvent tre
calculs par une variante de l'algorithme de Ford-Fulkerson en O(n3 ) (en gros, comme dans la
dmonstration du thorme, on peut se contente de chercher une solution faisable ; celle-ci sera
directement optimale si on s'y prend bien ; donc on est ramen un problme de ot).
1.3.3.3. Potentiels cals gauche et droite. On appelle les ri ensemble de potentiels cals
gauche. On pourrait de mme construire un ensemble de potentiels cals droite, en partant cette
fois de la dernire tche. On obtient alors les dates d'excution au plus tard
fi := l(0, n + 1) l(i, n + 1).
Pour tout ordonnancement optimal, on a alors ri ti fi (pourquoi ?).
La quantit fi ri mesure combien de marge on a pour excuter la tche i.
Lorsque i est sur un chemin critique, on a fi ri = 0 : si on perds du temps dans l'excution de
la tche i la dure totale de l'ordonnancement sera aecte.
Dans l'ensemble des tches pour prparer un cours, la photocopie des documents est clairement
une tche critique . . .
Ce que l'on vient de faire est une mthode de chemin critique. C'est une variante de la mthode
CPM/PERT, ou mthode des potentiels (cf. [1, p. 112])
1.3.3.4. Optimisation d'une fonction linaire des ti .
Remarque 1.3.2. Ce que l'on vient de faire se gnralise lorsque l'on recherche non plus optimiser
la dure totale tn+1 t0 de l'ordonancement, mais une fonction linaire quelconque des ti . On peut
toujours se ramener un programme linaire, et en fait mme un problme de transport (mais
plus forcment un problme de ot).
Exercice 2. Regarder comment cette remarque s'applique pour le problme du chantier que l'on
avait vu en TP.

1.3.4. Problmes avec contraintes de ressources renouvellables. La plupart de ces


problmes sont NP-complets, mme dans des cas apparemment simple comme l'ordonnancement
sur deux processeurs de tches indpendantes, mais de dures quelconques.
Il y a quelques exceptions comme celles que l'on avait rencontr au dbut :
 Tches unitaires sur 1 et 2 processeurs identiques avec contraintes de prcdences
 Tches unitaires indpendantes avec contraintes de disponibilit ou de dates chues

1.3.5. Problmes ressources consommables.

Exercice. Lire [1, p. 101-107].


En particulier calculer un ordonnancement optimal pour l'exemple p. 104.

1.4. Mthodes Arborescentes et dynamiques

1.5. Algorithmes approchs


Bibliography
[1] Problmes d'ordonnancement, Modlisation, Complexit, Algorithmes ; J. Carlier, P. Chrtienne, Masson,
tudes et recherches en informatique, 1988.

17

Vous aimerez peut-être aussi