Ro03 TD
Ro03 TD
Ro03 TD
96
97
RO03
TD N1
Exercice 1 :
Soit le graphe
B
A
D
C
I
D
B
Q
P
O
Exercice 3 :
Montrer le lemme de KOENIG : on peut toujours extraire dun chemin allant de i j un chemin
lmentaire allant de i j. Gnraliser une chane.
Exercice 4 :
Quelles mthodes proposez-vous pour coder un graphe en machine ?
98
Exercice 5
On propose deux mthodes pour coder un graphe G=(X,U) en machine : la matrice dadjacence A
et la file des successeurs de tableaux ALPHA1, ALPHA2 et BETA. La matrice associe est dfinie
par A=(aij) avec aij=1 si larc (i,j) appartient U et aij =0, sinon. La file des successeurs BETA est
le tableau des successeurs, les successeurs du sommet I se trouvant entre les adresses ALPHA1(I)
et ALPHA2(I) dans le tableau BETA, (en cours on avait un seul tableau ALPHA).
Rapporter les tableaux A, ALPHA1, ALPHA2 et BETA pour le graphe ci-dessous.
1
3
5
Ecrire un algorithme permettant de passer de la file des successeurs la matrice associe. Quelle
est la complexit de cet algorithme?
Ecrire un algorithme permettant de passer de la matrice associe la file des successeurs. Quelle
est la complexit de cet algorithme ?
remarque:
On a en fait deux matrices associes car les valeurs peuvent tre entires ou boolennes.
Exercice 6 :
Donner le nombre d'artes d'un graphe non orient complet de n sommets.
Exercice 7 :
Expliquer pourquoi si G=(X,E) est un graphe non orient sans boucle, la somme des degrs est
gale deux fois le nombre dartes du graphe.
99
Correction exercice 5 :
100
101
RO03
TD N2
C
J
D
I
E
H
F
)
Montrer que : (i) = {i} + (i)+ 2(i) +3(i)+...+ n-1(i).
On suppose que le graphe est cod par la matrice associ. Ecrire les descendants du sommet A du
graphe ci-dessus ?
Quelle est la complexit, en utilisant cette mthode, de la recherche des descendants dun sommet
si le graphe est cod par la matrice associ ?
Question 3 : calcul des descendants dun sommet
Soit j un descendant de i. On dit que j est distance k de i si k est la longueur du plus court chemin
entre i et j, on va dire que j appartient Dk(i).
)
Montrer que : (i ) = {i} + D1(i)+ D2(i) + + Dk(i) +...+ Dn-1(i).
Quelle est la complexit, en utilisant cette mthode, de la recherche des descendants dun sommet
si le graphe est cod par la matrice associ ?
Dfinition 2 : On appelle fermeture transitive inverse de i, l'ensemble des sommets j de G tels que
(i=j) ou (il existe un chemin de j i) j est alors un ascendant de i.
Question 4 : Dtermination des prdcesseurs dun sommet
On note 1(i) lensemble des prdcesseurs du sommet xi.
Ecrire les prdcesseurs des sommets du graphe ci-dessus.
Question 5 : Dtermination des ascendants dun sommet
Proposer une mthode analogue la prcdente pour calculer les ascendants dun sommet i. Quelle
est sa complexit ?
Question 6 :
Que reprsente lensemble des sommets qui sont la fois descendants et ascendants du sommet i ?
Question 7 :
Proposer un algorithme bas sur les questions prcdentes pour chercher lensemble des
composantes fortement connexes dun graphe. Quelle est sa complexit (cette mthode sappelle la
mthode de MALGRANGE) ? Appliquer cette mthode lexemple prcdent en utilisant la
matrice crite. On distinguera, en appliquant lalgorithme, les descendants (resp. ascendants)
dordre 1, dordre 2, ... etc.
Question 8 :
Dessiner le graphe rduit, le graphe initial est-il planaire ?
103
ROO3
TD N3
Exercice 1 :
D
+
+
B
Chaque aiguillage a 2 ou 3 positions. On a remarqu qu'au bout d'un certain temps, quel que soit
l'tat initial, le tronon E n'est jamais emprunt par le train. Expliquer cela l'aide d'un graphe 10
sommets .
Exercice 2 :
2.0 : Calculer B, B2, B3, B4, (I+B), (I+B)2, (I+B)3, (I+B)4, pour lexemple ci-dessus, o la
matrice B est boolenne (on utilisera les oprations boolennes).
2.1 : Si Bk est le produit matriciel Boolen de B par B, montrer que:
{Bk}ij = 1 s'il existe un chemin de k arcs entre i et j et 0 sinon.
2.2 : On dfinit de mme Bk la puissance kme matricielle Boolenne de B et l'on pose :
)
B k = I + B + B2 +.......+ Bk .
Montrer que :
)
{ B k}ij = 1 s'il existe un chemin de k arcs au plus entre i et j et 0 sinon.
)
)
Montrer que l'on peut dfinir B = lim B k pour k tend vers .
)
2.3 : On pose de mme C k = I + C + C2 +.......+ Ck o C = BT. Montrer que la
)
limite C existe et que :
)
{ C }ij = 1 s'il existe un chemin entre j et i et 0 sinon.
2.4 : Dduire de ce qui prcde une mthode pour dcomposer G en composantes fortement
connexes. Evaluer la complexit de cette mthode.
2.5 : Proposer une mthode pour chercher les composantes connexes du graphe.
104
Exercice 3 :
Un graphe dont tous les sommets sont de mme degr est dit rgulier. Quelles sont les graphes non
orients rguliers de degr 1 ? de degr 2 ?
105
RO03
TD n4
2
2
1
G1
G2
Question 1: Faire tourner lalgorithme sur les graphes G1 et G2. On rapportera les couleurs pour
chaque itration de la boucle.
Question 2: On code le graphe G=(X,U) par la matrice A associe, cest--dire si (i,j) est une arte
du graphe alors aij = aji =1 , sinon aij =0.
106
107
RO03
TD N 5
6
1
=1
5
7
Question 2 : Expliquer intuitivement ce que l'on fait dans la boucle Tant Que. Interprter le test :
(n(i0) + ABS(i-i0)) > 0.
Question 3
A quoi correspondent dans la boucle Tant que les cas :
-n(i) diffrent de 0 ?
-n(i) gal 0 ?
Question 4
Combien de fois excute-t-on la boucle Tant que pour l'exemple ci-dessus ?
Deuxime partie : preuve de lalgorithme.
Question 1: Montrer quen cours dalgorithme on construit une arborescence de racine i0.
Question 2: Montrer que la restriction de cette arborescence aux arcs pleins est une arborescence,
rduite un chemin, dont i est le sommet pendant (cette arborescence est dite arborescence
courante).
Question 3:
Question 4:
Question 5:
Question 6:
Question 7:
Question 8 :
extensions.
On a donc dmontr que cet algorithme permet de dterminer les descendants dun sommet i0.
Quelle mthode proposez-vous pour dterminer les composantes connexes dun graphe? Ecrire un
tel algorithme utilisant comme sous-programme lalgorithme prcdent. Evaluer sa complexit.
109
ROO3
TD N6
110
111
ROO3
TD N7
Sachant que ce reprsentant ne travaille ni ne circule le dimanche et quil part le premier du mois
(un mercredi), quel jour au plus tt sera-t-il de retour en A?
112
113
ROO3
TD N8
3
G1
G3
G2
114
G4
D
g
G5
b
a
f
d
115
2,1
0,1
2,0
1,1
2,2
0,0
0,2
1,2
1,0
La question importante pour ce jeu est: quand un joueur est-il certain de gagner et comment doit-il
jouer?
Nous allons dabord tenter de rpondre cette question pour des piles de taille initiale 2, puis on
gnralisera.
Une position sera dite gagnante si le joueur venant datteindre cette position gagne quelle que soit
la faon de jouer de son adversaire sous rserve que lui-mme joue bien dans la suite du jeu (cest
donc son adversaire de jouer).
Une position sera dite perdante si le joueur ayant atteint cette position va perdre si son adversaire
joue bien.
A) Quelles sont les positions gagnantes pour le cas particulier? Quelles sont les positions
perdantes? Si B commence, qui va gagner?
B) Pour un jeu de NIM en position de dpart (k1,k2) et si B commence jouer, quelle condition
sur k1 et k2, A va-t-il gagner ? Formuler en franais une stratgie gagnante. Que pouvez-vous dire
si on gnralise trois piles ?
C) Le jeu de NIM est un jeu deux joueurs, sans hasard, avec information parfaite (chacun des
joueurs connait avant de jouer ltat du jeu), espace dtats fini et dont le graphe dtats associ
est sans circuit. Montrer, de faon gnrale, que si le graphe dtats dun jeu deux joueurs est sans
circuit, fini, et a un seul tat final gagnant pour celui qui l'atteint, et si les deux joueurs jouent
parfaitement, on peut prdire lavance qui gagnera laide de la notion de noyau. Justifier
compltement.
D) O se situe en gnral la difficult pour un tel jeu ?
E) Pourquoi la mthode prcdente ne s'applique pas mme thoriquement au jeu dchecs ou au
jeu de dames ? Justifier votre rponse. Quelle ide cela vous donne pour ces jeux ?
116
117
ROO3
TD 9
Exercice
x
1
x
10
6
4
20
0
4
10
7
4
1
x
6
2
2
x
3
118
Fin;
D) Modification de l'arborescence :
Dbut
Enlever de A l'arc marqu d'extrmit terminale j et ajouter A l'arc(i,j);
Pour j et tous ses descendants dans A diminuer les de la quantit =j-i-v(i,j);
Aller en C);
Fin;
Fin.
QUESTIONS
1) Appliquer l'algorithme au graphe G1 ci-dessous.
3
10
1
-6
-9
5
6
1
6
1
-3
0
4
3) On rappelle quune arborescence de racine 1 peut tre dfini par une fonction pre de X-{1} > X, telle que 1 soit ascendant de tous les sommets. On admettra qu la fin de A) : tous les
sommets ont un potentiel fini, et que lensemble des arcs ayant permis de fixer le potentiel, donc
satisfaisant j-i= v(i,j), dfinissent une arborescence de racine 1. Montrer que l'arborescence A a
la proprit suivante : " i est la valeur du chemin de larborescence A allant de 1 i ".
4) Expliciter FIN2.
5) Montrer qu chaque fois quon passe par D), on redfinit une nouvelle arborescence de
racine 1 ayant les mmes proprits.
6) Montrer qu'en l'absence de circuit absorbant, l'algorithme se termine en FIN1 aprs un
nombre fini d'tapes et qu'alors i est la valeur minimale d'un chemin allant de 1 i. En dduire sa
validit. Est-il polynomial ? Et sil y avait des circuits absorbants ?
119
ROO3
TD 10
Exercice 1 : ORDONNANCEMENT
Un projet comporte sept tches a,b,c,d,e,f,g. Pour chaque tche, le tableau ci-dessous rapporte sa
dure et les tches pralables.
1) Dessiner le graphe potentiel-tches et calculer les dates au plus tt, les dates au plus tard et le
chemin critique.
2) Dessiner un graphe PERT simplifi avec un minimum darcs fictifs.
tches
dures
tches pralables
a et b
c, d et e
10
6
9
1
7
8
12
5
1
11
Les numros des villes sont les suivants: MOSCOU(1), KAZAN(2), PENZA(3), PERM(4),
OUFA(5),
TOBOLSK(6),
NOVO-SAIMSK(7),
TARA(8),
OMSK(9),
TOMSK(10),
SEMIPALATINSK(11), IRKOUTSK(12).
1. Dterminer litinraire de Michel STROGOFF.
120
2. Quelle tait alors sous lhypothse dindpendance des variables alatoires chances de succs,
la probabilit pour que STROGOFF russisse?
3. Quel aurait t son itinraire sil avait connu les principes du calcul des probabilits?
Exercice 3 : UN PROBLEME DINVESTISSEMENT
1) Un exemple. On dispose de 6 millions investir dans 3 rgions.
Le tableau suivant donne les bnfices rsultant des sommes investies.
Dterminer la politique dinvestissement optimale entre les trois rgions laide dune mthode de
"programmation dynamique". L'ide est d'associer la donne un graphe en niveaux. Le niveau 0
ne contient que le sommet (0,0), (car aucune somme n'a encore t investie). Le niveau 1 contient
les sommets (1,0), (1,1), (1,2), (1,3), (1,4), qui correspondent aux sommes cumuls investies dans
la rgion 1. Le niveau i contient les sommets (i,0), (i,1), (i,2), (i,3), (i,4), (i,5), (i,6), qui
correspondent aux sommes investies dans les rgions 1..i, (i = 2, 3). On introduit les arcs entre les
niveaux i et i+1, valus par les sommes investies dans la rgion i+1. Le dernier sommet est (3,6). Il
s'agit de chercher un chemin de valeur maximale dans ce graphe.
Rgion I
Rgion II
Rgion III
1 million
0,2
0,1
0,4
2 millions
0,5
0,2
0,5
3 millions
0,9
0,8
0,6
4 millions
0,7
2) Le cas gnral. Plus gnralement on dispose de B millions investir dans n rgions. On pose
fi(y) le bnfice optimal pour un investissement cumul dune somme y dans les rgions 1, 2, .., i.
On a f0(0)= 0. Donner une formule de rcurrence reliant fi fi-1 pour i de 1 n.
Quelle est en fonction de n et de B la complexit de la mthode de programmation dynamique et la
complexit dnumration de toutes les solutions possibles.
121
ROO3
TD N11
II
III
quantits disponibles
valeurs nutritives
15
10
plomberie extrieure peuvent tre commencs quand les fondations sont termines et ceux de
plomberie intrieure une fois que lossature est termine.
Quand lossature est termine, on peut construire la charpente du toit et commencer poser les
cblages. Les revtements intrieurs doivent attendre que la charpente soit termine, les cblages
inspects et les travaux de plomberie intrieure achevs. Aprs les revtements intrieurs, on
effectue les amnagements intrieurs, cest--dire poser les planchers, faire la dcoration, mais cela,
bien sr aprs que la couverture ait t pose. Ces tuiles doivent tre commandes spcialement.
Une fois que la couverture, les revtements intrieurs et le briquetage sont termins, on nettoie
lextrieur, puis on passe aux amnagements intrieurs. Et une fois que les amnagements
intrieurs sont termins, on effectue une inspection gnrale. La maison est acheve losque
linspection gnrale et les extrieurs sont termins.
Question 1 :
Enumrer les diffrentes tches, puis tracer le tableau des tches pralables.
Question 4 : Calculer les dates au plus tt et au plus tard des vnements introduits dans ce
graphe PERT. En dduire les marges totales de chacune des tches.
Voici le tableau des tches avec leurs dures et les tches pralables.
Dure en semaines
tches pralables
Aucune
A, I
Aucune
D, H
E, I
G. terrassement
Aucune
H. fondations
I. construction de lossature
Aucune
K. briquetage
I, J
14
Aucune
M. construction de la charpente
N. pose de la couverture
M, L
O. revtements intrieurs
M, F, C
P. amnagements intrieurs
O, N
Q. inspection gnrale
R. nettoyage extrieur
N, K, O
S. amnagements extrieurs
123
ROO3
TD 12
Le rseau routier que doit entretenir la ville de Fulkerson City est schmatis ci-dessous (les
capacits des arcs reprsentent le dbit maximal en voitures par heure).
10
15
D
40
20
B
10
30
6
7
10
10
5
15
6
10
G
5
4
15
15
10
4
H
15
1) Soit N le nombre maximum de voitures pouvant circuler par heure travers ce rseau .
1.1) Calculer N .
1.2) Caractriser les voies que l'on peut crer de faon augmenter N. De combien peut-on
augmenter N ?
2) Les diles locaux souhaitent amliorer la circulation en augmentant le nombre N grce la
cration de nouvelles voies . Dans la zone urbaine, seuls sont matriellement possibles la cration
d'une voie HK et l'largissement de la rue EG jusqu'alors rserve aux pitons. Le choix devra
donc se faire entre :
a) crer HK;
b) largir EG;
c) crer HK et largir EG.
2.1) Si la politique a) est choisie, quelle capacit maximum doit-on prvoir pour la voie HK ?
Dans ce cas, de combien augmente N ?
2.2) Si la politique b) est choisie, quelle autre voie est-on amen crer si l'on veut
augmenter N ? Donner les capacits des deux nouvelles voies et la nouvelle valeur de N .
2.3) Evaluer N dans le cas c) .
2) PROBLEME : SECOND PLUS COURT:
Le but de ce problme est de dterminer un second plus court chemin entre les sommets 0 et n-1
d'un graphe G=(X,U,v) positivement valu et sans circuit . Soit (0,n-1) un plus court chemin de 0
n-1 . Un second plus court chemin de 0 n-1 est un chemin de valeur minimale parmi l'ensemble
des chemins de 0 n-1 qui diffrent de (0,n-1) par au moins un sommet. Un tel chemin existe s'il
y a , au moins , deux chemins de 0 n-1 dans G , ce que nous supposerons dans la suite .
On se propose de montrer que second , fourni par l'algorithme suivant , dfinit un second plus
court chemin de 0 n-1 .
124
QUESTIONS :
1) Appliquer l'algorithme au graphe G suivant :
1
1
4
1
2
1
3
1
5
Vrifier que second est bien un second plus court chemin dans G .
3) Preuve de l'algorithme :
On note premier = (0,n-1) = (y0=0,y1,,yp=n-1) le plus court chemin obtenu dans la phase 1)
de l'algorithme et deuxime = (z0=0,z1,,zq=n-1) un second plus court chemin de 0 n-1 .
3.1) Montrer qu'il existe un entier r tel que yp=zq , yp-1=zq-1 ,..., yp-r=zq-r et yp-r-1zq-r-1.
3.2) Quelle est la proprit remarquable du chemin (z0=0,z1,,zq-r-1) ?
3.3) En dduire la validit de l'algorithme.
126
127
ROO3
TD 13
0
s
5
3
2
b
capacit
p
cout
On dessinera les graphes d'cart intermdiaires et on prcisera les chanes amliorantes successives
utilises. Calculer le cot du flot obtenu.
PROBLEME DAFFECTATION :
On veut affecter six programmes a,b,c,d,e,f six programmeurs A,B,C,D,E,F en minimisant la
somme des temps de travail et de faon ce quun programmeur fasse exactement un programme.
Le tableau ci-dessous rapporte les diffrents temps de travail. Pour rsoudre ce problme
daffectation, on va appliquer lalgorithme hongrois qui permet plus gnralement daffecter n
individus n travaux en minimisant la somme des cots daffectation.
14
18
16
63
15
41
78
44
73
70
25
44
81
36
80
80
78
46
74
25
83
72
32
55
51
81
69
76
12
99
83
30
1) Montrer quon ne change pas la solution du problme en soustrayant ou ajoutant une valeur
numrique tous les lments dune range (ligne ou colonne). Seule la valeur de la solution est
modifie.
Le faire sur lexemple en soustrayant le plus petit lment de chaque range en commenant par les
lignes et en terminant par les colonnes, (l'intrt est de faire apparatre des zros).
2) On associe au nouveau tableau un graphe biparti reliant les programmeurs aux programmes
quand le cot rduit (obtenu aprs soustraction des minima en lignes et en colonnes) vaut 0. Les
arcs du graphe biparti sont dits admissibles.
On introduit aussi un rseau de transport en reliant la source s aux programmeurs par des arcs de
capacit 1, le puits p aux programmes par des arcs de capacit 1. Les arcs admissibles sont de
capacit infinie.
a) Construire le rseau de transport.
128
b) Calculer un flot maximal sur ce rseau et en dduire un couplage maximal de cot nul.
c) Le marquage de Ford-Fulkerson l'optimum permet de marquer les lignes X* de X et les
colonnes Y* de Y.
Vrifier sur l'exemple quil ny a pas darc admissible entre X* et Y-Y*.
Vrifier sur l'exemple que les arcs entre X-X* et Y* ont un flux nul.
Justifier les deux proprits.
d) Soit le plus petit cot rduit daffectation dun programmeur de X* un programme de Y-Y*.
Calculer . Ajouter aux colonnes de Y* et soustraire aux lignes de X*. Pourquoi ces oprations
sont-elles licites ?
e) On obtient une nouvelle matrice de cots. Vrifier que les arcs de flux non nuls restent
admissibles. Quelle est la proprit des arcs qui taient admissibles et qui ne le sont plus ?
Quelle est la proprit des arcs devenus admissibles? Quelle est la capacit de lancienne coupe
minimale ? Montrer que le nouveau marquage contient le prcdent ?
f) Calculer le nouveau flot maximal ?
g) Vrifier que la procdure pratique suivante permet de calculer la nouvelle matrice.
Procdure pratique.
-rayer toute ligne non marque ;
-rayer toute colonne marque ;
-soit le plus petit lment non ray ;
-retrancher aux lments non rays ;
-ajouter aux lments rays deux fois.
h) On itre autant de fois que ncssaire la procdure pratique et le calcul du flot :
-le faire;
- quelle condition sarrte-t-on ?
-en dduire loptimalit de la mthode.
129
ROO3
TD N14
3
1
5
8
9
2
5
10
4
11
6
Question 1: Faire tourner lalgorithme sur le graphe ci-dessus: on dessinera les graphes partiels
successifs et les onze valeurs successives du tableau CONNEXE obtenu avant chaque itration de
la boucle externe.
Question 2: Evaluer en fonction de N et M la complexit de lalgorithme. On pourra distinguer
deux types ditrations dans la grande boucle.
Question 3 (cette question est indpendante de lalgorithme)
On rappelle que lon est dans le cas o tous les cots sont distincts.
Montrer quun arbre couvrant est de cot minimal si et seulement lintersection de chaque cocycle
de G et de larbre contient larte de cot minimal du cocycle de G.
Question 4: Montrer que lalgorithme dtermine larbre couvrant de cot minimal.
130
PROGRAMMES DE TRANSPORT.
On dispose de a1, a2,... ,an units dans des dpts 1,2,...,n. On veut transporter ces units vers des
n
a = bj
i =1
j =1
131
ROO3
TD N15
PROBLEMES DE FLOTS
Exercice 1 : flot canalis
Construire un flot de valeur maximale sur l'arc ps, lorsqu'il existe, dans les rseaux suivants (les
capacits min et max sont indiques par [bij, cij] ).
[3,4]
[0,10]
[0,2]
[2,4]
s
[0,1]
[1,2]
[0,3]
[0,1]
[0,2]
[0,inf]
Rseau n1
[2,3]
[4,5]
[0,4]
s
[0,11]
[8,11]
[1,3]
[0,3]
[5,9]
[2,2]
[0,inf]
Rseau n2
5
2
4
7
3
s
132
p
6
7
5
2
3
S1
3
7
4
S2
9
S3
2
8
b
1
3
7
1
c
P2
6
d
P1
7
8
P3
Dans ce rseau, les sommets S1, S2, S3 sont des dpts qui disposent respectivement des quantits
5 , 10 , 5 d'un mme produit . Les sommets P1, P2, P3 sont des clients dont les demandes sont
respectivement : 5, 10, 5. Ces demandes peuvent-elles toutes tre satisfaites travers ce rseau ?
133