Td1 Corrige 1314
Td1 Corrige 1314
Td1 Corrige 1314
Pour vrifier que le projet est viable, cest--dire quil existe un ordonnancement correct des tches
respectant les contraintes de prcdence, et avoir une bonne reprsentation graphique de G dterminons si une
dcomposition par niveaux est possible. Cette dcomposition permettra aussi dobtenir un Tri Topologique.
La donne fournit pour chaque tche les tches qui doivent lui succder, cela correspond ce que lon
appelle les listes des successeurs. partir de ces listes il est facile dobtenir les listes de prdcesseurs de la faon
suivante : on considre les tches de A jusqu L dans cet ordre et pour chaque successeur y de la tche x on rajoute
x comme prdcesseur de la tche y.
Cela nous donne les listes de prdcesseurs :
A : C, H, J E: I : G, K
B:L F:A J : E, H
C:H G : F, J K :A
D : B, C, K H: L:C
E J A F G I
FIN
H C L B D
1
Il est reprsent horizontalement (tous les arcs sont orients de gauche droite) et chaque arc a une
valuation gale la dure de la tche correspondant au sommet origine, par exemple 4 pour les arcs (C, A), (C,
D) et (C, L) car C est de dure 4. On rajout un sommet FIN correspondant la fin du projet et les arcs (D, FIN)
et (I, FIN) de dures respectives 1 et 4, qui sont les dures respectives de D et de I, car D et I sont sans
successeur.
E J A F G I
3 6 2 1 2
4
2 3
5 4
K 3 1 FIN
H 5 C 4 L 2 B 2 D
Une mthode possible permettant de dterminer les arcs de transitivit est la suivante : il suffit de faire
un parcours en largeur partir de chaque sommet du graphe. En effet, un parcours en largeur commenant au
sommet x stocke x puis les successeurs immdiats de x, puis les successeurs des successeurs, et ainsi de suite
jusqu obtenir tous les descendants de x dans le graphe. De cette faon si un successeur direct, y, de x, est
rencontr au moins une deuxime fois dans le parcours, il existe alors ncessairement un arc de transitivit de x
y.
Si le graphe de prcdence est reprsent par sa matrice dadjacence, un parcours peut se faire en O(n2)
donc lalgorithme global, qui ncessite n parcours, peut se faire en O(n3).
(3) Dates au plus tt et au plus tard, Marges totales, Dure Minimale du projet et Chemins Critiques
Les tches sont considres dans lordre topologique donn E, H, C, J, A, L, B, F, K, D, G, I, pour les
calculs des dates au plus tt, et dans lordre topologique inverse, pour les calculs des dates au plus tard.
Remarquons que tout autre ordre topologique convient ;
On obtient alors les intervalles de flottement suivants : [0, 2] pour E, [0, 0] pour H, [5, 7] pour C, [5,
5] pour J, [11, 11] pour A, [9, 15] pour L, [11, 17] pour B, [13, 13] pour F, [13, 13] pour K, [16, 19] pour D, [14,
14] pour G, [16, 16] pour I et [20, 20] pour le sommet FIN.
On trouve donc 20 jours comme dure minimale du projet ainsi que les deux chemins critiques (H,
J, A, F, G, I) et (H, J, A, K, I), ce sont des chemins qui vont dune tche initiale une tche finale et passant par
des tches critiques, cest--dire des taches o MT = 0 (marge totale).
2
Le tableau ci-dessous rsume les rsultats :
A B C D E F G H I J K L FIN
t 11 11 5 16 0 13 14 0 16 5 13 9 20
t* 11 17 7 19 2 13 14 0 16 5 13 15 20
MT 0 6 2 3 2 0 0 0 0 0 0 6 0
Montrons quen fait deux quipes, E1 et E2, suffisent pour excuter le projet en 20 jours.
Pour cela utilisons les chemins critiques.
Avec le premier chemin critique, (H, J, A, F, G, I), nous obtenons lorganisation suivante, reprsente
par un diagramme de GANTT des quipes :
La ligne du bas reprsente la succession des tches excutes par la premire quipe, elle correspond au
premier chemin critique, la ligne du haut correspond aux tches excutes par la deuxime quipe. Chaque tche
est reprsente par une bande horizontale allant du dbut de son excution sa fin, laxe horizontal reprsente le
temps.
La tche K doit tre imprativement tre excute de la date 13 la date 16, cest une tche critique.
La tche E peut commencer la date 0 ou 1 ou 2, mais elle doit se terminer 5, et C peut commencer.
De mme, D peut commencer 16 ou 17 ou 18 ou 19.
Les tches F et G sont des tches critiques : F doit commencer la date 13 et G la date 14. La tche C
ne peut commencer qu la date 5, sa date au plus tt.
Remarquons quil y a beaucoup dautres rpartitions possibles, en permutant des blocs entre les
lignes, par exemple, avec le deuxime diagramme, J et les tches C et L dans cet ordre, on peut aussi permuter
A et B, ou D et I,
3
(5) Modification de la date de dbut de L
La date au plus tt de L est donc maintenant 14, elle a augment de 5, cette valeur est infrieure sa
marge totale qui est de 6, la dure minimale du projet nest donc pas modifie. Les dates au plus tt de B et de
D sont maintenant gales 16 et 18. Les dates au plus tard de L, B et D restent donc les mmes.
Les seuls changements portent donc sur L, B et D sans modifier la dure minimale du projet ainsi que
les chemins critiques.
20
K, comme F et G successivement, doivent sexcuter dans lintervalle de temps [13, 16] , il est donc
impossible dexcuter successivement L, B et D dans lintervalle voulu, cest--dire [14, 19] .
Il faut donc une troisime quipe ou accepter une dure de 21, soit un retard de un jour, en excutant L,
puis B, puis D aprs la tche K.
E J A F G I
3 6 2 1 2
4
2 5
5 4
K 5 1 FIN
H 5 C 4 L 2 B 2 D
A B C D E F G H I J K L FIN
t 11 11 5 18 0 13 14 0 18 5 13 9 22
t* 11 19 7 21 2 15 16 0 18 5 13 17 22
MT 0 8 2 3 2 2 2 0 0 0 0 8 0
--- E(3) C(4) L(2) B(2) F(1) G(2) --- D(1) ---
H(5) J(6) A(2) K(5) I(4)
22
4
PROMENADES EULRIENNES
On peut envisager deux types de promenades : soit les points de dpart et darrive sont identiques, soit
ils sont diffrents. La situation tant assez simple, il est facile de voir, la main , en testant toutes les
promenades possibles quil ny a pas de solution. Si cela peut tre considr comme une preuve dans notre cas
particulier, condition de davoir rellement tout test, quen est-il dans le cas gnral ? Il faut modliser la
situation par une structure mathmatique pouvant tre utilise dans tous les cas, traduire la question pose dans
ce modle et tcher de rpondre rigoureusement en prouvant mathmatiquement telle ou telle proprit. Cest ce
que nous allons faire dans les questions suivantes.
B C
Les sommets sont donc les quatre lieux, extrmits des ponts, et les artes reprsentent ces ponts. On
obtient alors un multigraphe connexe car entre A et B, et B et D il y a deux artes (multigraphe) et on peut aller
de tout sommet tout autre sommet via un chane dans le graphe (connexit).
Les deux cas envisags correspondent respectivement chercher soit un cycle passant par chaque arte
une et une seule fois, soit une chane passant par chaque arte une et une seule fois.
Pour quun cycle existe, il faut que tous les sommets aient un degr pair, autrement dit quen chaque
sommet il y ait un nombre pair dartes. En effet, dans un cycle tout sommet pouvant tre le point de dpart et
darrive, ds quon arrive en un sommet par une arte, on doit pouvoir en repartir par une autre arte. Nous
avons l une condition ncessaire dexistence dun cycle passant par chaque arte une seule fois. Cette
condition nous montre que dans le graphe prcdant un tel cycle nexiste pas, les degrs des sommets sont en
effet 3, 5, 3 et 3, le degr dun sommet tant le nombre dartes adjacentes ce sommet.
Pour quune chane passant par chaque arte une seule fois existe la condition ncessaire devient : tous
les sommets doivent tre de degr pair sauf deux, le sommet de dpart et le sommet darrive. Le graphe
prcdent ne vrifie pas non plus cette proprit, tous les degrs tant impairs.
Knigsberg, nom allemand de la ville, sappelle maintenant Kaliningrad, cest une enclave russe situe
entre la Pologne est la Lituanie. Cette ville, lhistoire mouvemente, a vu natre Goldbach, Kant, Hoffmann,
Kirchhoff, Hilbert, entre autres.
La rivire est la Pregolia, Pregel en allemand
Si lon vous dit Prends loseille et tire-toi , Bananas , Tout ce que vous avez toujours voulu
savoir sur le sexe (sans jamais oser le demander) , vous pensez bien sr W. Allen, et vous avez raison, qui
sappelle en effet Allan Stewart Knigsberg, pas tonnant aprs tout car il a dit : Quand jentends du Wagner,
jai envie denvahir la Pologne
Rappelons quun graphe est dit connexe sil existe toujours une chane reliant deux sommets
quelconques, donc si un graphe est eulrien alors il est ncessairement connexe car, possdant un cycle eulrien
5
C, il existe une chane reliant deux sommets quelconques, x et y. Il suffit en effet de partir de x, de cheminer le
long de C et de sarrter ds quon arrive en y.
Le fait que tous les sommets sont de degrs pairs a t tabli dans la question prcdente.
Ces deux remarques montrent la ncessit de la proprit.
Rciproquement, en supposant que G est connexe et que chacun de ses sommets est de degr pair,
montrons quil existe un cycle eulrien.
G tant connexe, il na pas de sommet isol, dautre part, on peut supposer que G a au moins trois
sommets, sinon G est rduit un seul sommet ou une simple arte. Si n = 3, le seul graphe vrifiant les
hypothses est :
2 3 4
9 10
1 5
12 11
8 7 6
Le graphe G C0 a trois composantes connexes qui donnent les cycles C1 = (1, 2, 8, 1), C2 = (4, 5, 6, 4)
et C3 = (9, 10, 12, 11, 9), en partant du sommet 3 de C0, on obtient le cycle eulrien de G :
6
Graphes Pseudo Eulriens
Corollaire
Un graphe simple non orient G = (X, E) est Pseudo Eulrien si et seulement si il est connexe et a
uniquement deux sommets de degrs impairs.
Sil existe une chane eulrienne, le graphe est ncessairement connexe, largument est identique celui
de la question (1), et la proprit sur les degrs a dj t vue la question (2) sur les Ponts de Knigsberg.
Inversement, appelons x et y les deux sommets de G dont les degrs sont impairs. Considrons alors le
graphe G = G + xy, cest--dire le graphe G dans lequel on rajoute une arte reliant x y. Dans G tous les
sommets sont alors de degrs pairs, on peut donc appliquer le Thorme dEULER qui garantit lexistence dun
cycle eulrien C dans G, ce cycle, qui utilise larte xy peut schmatiquement scrire : C = (x, , y, x). On
en dduit donc lexistence dune chane eulrienne C = (x, , y) = C - xy allant de x y dans G.
Les rsultats prcdents sont bien sr valables dans le cas des multigraphes, en effet tous les
raisonnements faits sont toujours valables en cas dartes multiples.
Une autre faon de rpondre la question consiste transformer le multigraphe en graphe simple en
rajoutant un sommet supplmentaire, donc de degr 2, sur chaque arte multiple.
Tous eulriens ?
Le graphe suivant que lon doit dessiner sans lever le crayon et sans passer deux fois sur le mme
trait est pseudo-eulrien :
(3) Algorithmes
- arriv en tout sommet le parcours en largeur le marque visit puis visite tous ses voisins non
encore visits, puis tous les voisins non visits des voisins et ainsi de suite jusqu visiter tous les
sommets du graphe, auquel cas le parcours est termin ou bien reprend en un sommet non encore
visit
- arriv en tout sommet x le parcours en profondeur le marque visit puis choisit lun de ses voisins
y non encore visit, sil en existe, quon explore de la mme faon, si y nexiste pas on repart du
7
sommet ayant prcd x dans le parcours sil existe sinon la recherche reprend en un sommet non
encore visit ou bien se termine.
Il faut ensuite calculer les degrs des sommets : pour chaque sommet x, on fait la somme des lments
le la ligne correspondante de la matrice dadjacence, cest dire des M(x, y) pour chaque y de G. Lalgorithme
est en O(n2) car il faut examiner toute la matrice.
Si les degrs vrifient les conditions voulues, il faut construire le cycle ou la chane. Nous avons vu que
pour la chane on peut se ramener au cycle en rajoutant une arte entre les deux sommets ayant un degr impair,
il suffit donc de savoir construire le cycle.
La preuve que nous avons donne du Thorme dEULER, et nous lavons vu sur un exemple, est
constructive et dbouche sur une fonction rcursive que lon peut schmatiquement crire de la faon suivante :
Euler (G ; C)
Construire un cycle maximal C0 de G ne passant pas deux fois par la mme arte
si C0 contient toutes les artes de G
alors C = C0
sinon Dterminer les Composantes connexes G1, , Gk non rduites un sommet
pour i = 1 k faire Euler (Gi ; Ci)
Construire C partir de C0, C1, et Ck
Pour estimer sa complexit en temps, il faudrait crire en dtail les constructions de C0 et de C partir
de C0, C1, et Ck, on peut montrer quelles peuvent se faire en O(n2), ainsi que la recherche des composantes
connexes de G, voir plus haut. Globalement lalgorithme est en O(n2), donc polynomial.
Sil existe uniquement deux sommets de degrs impairs, x et y, il suffit de rechercher un cycle eulrien
C dans le graphe G = G + xy, puis de supprimer larte xy de C.
Dans lalgorithme prcdent, le point dlicat, au niveau de la mise en uvre effective, cest dire de la
programmation, est bien sr la construction effective du cycle C partir des sous cycles C0, C1, et Ck. Nous
proposons ici un deuxime algorithme, trs proche du prcdent, mais permettant de simplifier considrablement
cette tape de construction. Il consiste grer les sommets et les artes en utilisant une pile , note P,
initialement vide.
Lide est la suivante : partant dun sommet initial quelconque x0, on construit un cycle maximal C0 ne
passant pas deux fois par la mme arte en empilant dans P les sommets dans lordre de leur rencontre et en
marquant les artes au fur et mesure. Si C0 contient toutes les artes de G, alors C = C0, sinon on dpile les
sommets et on les rajoute dans cet ordre au cycle C jusqu trouver en haut de pile un sommet ouvert x,
cest dire un sommet x adjacent une arte xy non encore utilise, cest dire non marque, le sommet y est
alors empil dans P et on continue partir de y.
Et le processus se poursuit de la mme faon tant que la pile nest pas vide.
Le cycle C ainsi construit est un des cycles eulriens possibles du graphe G, en effet, en remontant
C0, et en continuant lexploration ds quon le peut partir dun sommet de C0 vers la premire arte disponible,
on greffe naturellement, sans gestion supplmentaire, et itrativement, les autres sous cycles C1, C2, C0.
8
Une criture possible de cet algorithme est la suivante :
Euler2 (G ; C)
C=;
P= ;
x0 = sommet quelconque de G ;
Empiler (x0) ;
x = x0 ;
tant que P faire
tant que x est ouvert faire
Choisir xy une arte libre adjacente x ;
Marquer xy non libre ;
Empiler (y) ;
x=y;
C=C+x;
Dpiler (P) ;
si P alors x = Sommet de Pile ;
Le cycle eulrien est C
C est une simple liste contenant la suite des sommets du cycle cherch. P, la pile, peut tre implmente
soit par une liste soit par un tableau, et enfin, il faut prvoir une structure permettant de marquer les artes dj
utilises. Il est facile dtablir que cet algorithme peut tre implment en O(n2) en temps et en espace.
Remarque
Le problme du Cycle Hamiltonien cest--dire de la recherche dun cycle passant une fois et une seule
par tous les sommets dun graphe est lui NP Difficile, on ne connat aucun algorithme polynomial pour le
rsoudre.
SUJETS DE RFLEXION
Graphes Orients
Dun point de vue terminologique, lorsque le graphe G est orient, on parlera de circuit au lieu de cycle
et de chemin au lieu de chane. Pour tout sommet x de G on note :
Thorme
Un graphe orient G = (X, U) est Eulrien si et seulement si le graphe non orient sous-jacent est
connexe et pour tout sommet x on a d-(x) = d+(x).
Corollaire
Un graphe orient G = (X, U) est Pseudo Eulrien si et seulement si le graphe non orient sous-jacent
est connexe et pour tout sommet x on a d-(x) = d+(x) sauf pour deux sommets y et z, le dpart et larrive, pour
lesquels on a d+(y) = d-(y) + 1 et a d-(z) = d+(z) + 1.
Les preuves ainsi que le principe de lalgorithme sont similaires celles dj faites dans le cas non
orient, en tenant bien sr compte de lorientation.
9
Problme du Postier Chinois (PPC)
Il sagit donc de dterminer un parcours ferm dun graphe non orient connexe G passant au moins une
fois par chacune de ses artes et qui soit le plus court possible en nombre dartes utilises. Si le graphe est
eulrien, la solution est bien sr un cycle eulrien, chaque arte est utilise exactement une fois, mais comment
faire dans le cas gnral ?
La question est : tant donn un graphe non orient quelconque G, quel est le nombre minimal dartes
quil faut ajouter G pour le rendre eulrien ?
La rponse est particulirement simple sachant que dans G le nombre de sommets de degrs impairs
est toujours pair, en effet, si m est le nombre dartes, on a :
La somme des degrs est gale 2m car chaque arte xy sera compte exactement deux fois : une fois
avec d(x) et une fois avec d(y). On en dduit que la somme sur les sommets de degrs impairs est ncessairement
paire, ce qui nest possible que sil y a un nombre pair de sommets de degrs impairs.
Pour rendre G eulrien, il faut bien sr rendre tous les degrs pairs, il suffit donc dassocier par paires
les sommets de degrs impairs et de rajouter les artes correspondantes.
On peut exploiter cette ide pour rsoudre PPC, mme dans le cas o le graphe G est valu, cest
lAlgorithme de EDMONDS JOHNSON, que nous ne dmontrerons pas, il se rsume aux 4 tapes
suivantes :
tape 1 : Dterminer les sommets de degrs impairs, x1, , x2k, et, pour chaque paire {xi, xj} construire le plus
court chemin C(xi, , xj) les joignant dans G. Si G nest pas valu, chaque arte comptera pour 1
tape 2 : Construction du graphe complet K2k ayant pour sommets {x1, , x2k} et dont les artes sont values
par la longueur du plus court chemin correspondant
tape 3 : Dterminer un couplage parfait M de valeur minimale de K2k, cest--dire apparier les sommets de
K2k de sorte que la somme des valuations des k artes de M soit minimale
tape 4 : Construire le graphe G en ddoublant dans G les artes correspondant aux plus courts chemins des
artes de M, alors G est eulrien. La solution cherche est alors un cycle eulrien de G
Les sommets de degrs impairs sont facilement dterminables, les plus courts chemins sont calculables
par lalgorithme de DIJKSTRA, la construction de G est simple et nous avons vu comment on peut dterminer
un cycle eulrien. Quant au couplage minimal de K2k, il est calculable en temps polynomial mais par des
techniques assez labores. On peut dmontrer :
On peut tendre ce rsultat aux graphes orients mais par un algorithme assez diffrent, et il faut de plus
que le graphe soit fortement connexe, cest--dire que pour toute paire de sommets x et y du graphe, il existe un
chemin de x y et un chemin de y x.
10