Enonc´ ´ e des travaux dirig´ es
L3 Informatique
Algorithmique avanc´ ee
[email protected]
Automne 2016
Universit´ e Paris Descartes
Travaux dirig´ es 1
TD1 - Graphes
Exercice 1.1. On consid` ere le graphe de la figure suivante
1
2 3
4
5 6
a
b
c
d e
f
g h
Ecrire la matrice d’adjacence de ce graphe ainsi que son codage en liste d’arˆ etes et en listes d’adjacences.
Exercice 1.2. On consid` ere un graphe G simple et non dirig´ e.
1. Soit A la matrice d’adjacence de G. Que valent les sommes des coefficients par lignes et par colonnes ?
2. Soit M la matrice d’incidence de G, c’est-` a-dire une matrice de taille | V ( G )| ×
| E ( G )| telle que m ue = 1 si l’arˆ ete e est incidente au sommet u et m ue = 0 sinon.
Ecrire la matrice d’incidence du graphe de l’exercice pr´ ec´ edent.
3. Que valent les sommes des coefficients par lignes et par colonnes de M ? 4. Soit D la matrice diagonale de taille n ( G ) × n ( G ) dont le coefficient de la ligne
correspondant au sommet u vaut le degr´ e de u.
D´ emontrer que M t M = A + D.
Exercice 1.3. Montrer que tout groupe d’au moins deux personnes contient toujours au moins deux individus ayant le mˆ eme nombre d’amis.
Exercice 1.4. Soit ( d 1 , . . . , d n ) la suite des degr´ es d’un graphe non-dirig´ e G. On note δ ( G ) et ∆ ( G ) respectivement le plus petit et le plus grand de ces degr´ es.
1. Montrer que ∑ n i = 1 d i = 2m ( G ) . 2. En d´ eduire que δ ( G ) ≤ 2m ( G )
n ( G ) ≤ ∆ ( G ) .
Exercice 1.5. Le but cet exercice est de montrer que deux plus long chemins dans un graphe non-orient´ e connexe G ont forc´ ement un sommet commun.
1. Supposons par l’absurde que G contient deux plus long chemins P et Q qui sont disjoints. Soit H l’ensemble des chemins de G reliant un sommet de P et un sommet de Q.
Justifier que H est non-vide puis qu’il contient un chemin H dont les sommets
diff´ erents des extr´ emit´ es n’appartiennent ni ` a P ni ` a Q.
2. En d´ eduire que P et Q ont forc´ ement un sommet commun.
3. Cette propri´ et´ e est-elle encore vraie pour les graphes non connexes ? pour les graphes orient´ es faiblement connexes ?
Exercice 1.6. Un graphe non-orient´ e est dit biparti si V ( G ) peut ˆ etre partitionn´ e en deux ensembles A et B tels que toute arˆ ete de G relie un sommet de A et un sommet de B. On note n ( A ) et n ( B ) le nombre de sommets de A et B.
1. Quel est le nombre maximal d’arˆ etes d’un graphe biparti simple ? Comment d´ efiniriez-vous la densit´ e dans un probl` eme ne concernant les graphes bipartis ? 2. Montrer que si G est biparti, tout cycle de G est forc´ ement de longueur paire.
3. On suppose maintenant qu’un graphe G a tous ses cycles de longueur paire.
Montrer que pour, toute paire de sommets u et v, tous les chemins entre u et v ont la mˆ eme parit´ e.
Indication : On raisonnera par l’absurde et on consid´ erera la paire des sommets ( u, v ) et la paire de chemins ( P, Q ) entre u et v tels que la somme des longueurs de P et Q est minimale.
4. Montrer que le graphe G de la question pr´ ec´ edente est biparti. En d´ eduire qu’un graphe admet une structure bipartie si et seulement si tous ses cycles sont de longueur paire.
5. Proposer un algorithme bas´ e sur un BFS ou un DFS qui d´ etecte si un graphe est biparti ou non.
Exercice 1.7. On consid` ere un graphe non orient´ e G.
Une marche entre deux sommets u et v est une suite d’arˆ etes adjacentes entre elles, dont la premi` ere est adjacente ` a u et la derni` ere ` a v. La diff´ erence avec un chemin est qu’elle peut repasser plusieurs fois par le mˆ eme sommet.
1. Soit M la matrice d’adjacence de G. Montrer par r´ ecurrence sur k que le coeffi- cient ( u, v ) de M k corrrespond au nombre de marches de longueur k entre u et v.
2. Montrer que le coefficient ( u, v ) de ( I + M ) k est non nul si et seulement si il existe k 0 ≤ k tel que le coefficient ( u, v ) de M k
0est non nul.
3. Montrer que l’existence d’une marche entre u et v implique l’existence d’un chemin entre u et v.
4. En d´ eduire que G est connexe si et seulement si tous les coefficients de ( I + M ) n ( G ) est non nul.
5. Quel est complexit´ e de l’algorithme consistant ` a calculer cette matrice pour v´ erifier la connexit´ e de G ? Impl´ ementeriez-vous cet algorithme ?
page 2
Travaux dirig´ es 2
TD2 : Arbres couvrants
Exercice 2.1. Une forˆ et est une r´ eunion disjointe d’arbres. Proposer ` a partir du par- cours en profondeur un proc´ ed´ e permettant de d´ eterminer une forˆ et couvrante pour tout graphe G.
Dans le cas non-orient´ e, que peut-on dire du nombre d’arbres composant la forˆ et couvrante ? En d´ eduire que la taille de la forˆ et ne d´ epend pas du sommet de d´ epart choisi.
Les constatations pr´ ec´ edentes sont-elles encore vraies dans le cas orient´ e ?
Exercice 2.2. Soit G un graphe orient´ e et v un sommet de G. On appelle descendant de v tout sommet w tel qu’il existe un chemin orient´ e de v ` a w. On appelle ascendant de v tout sommet u tel qu’il existe un chemin orient´ e de u ` a v.
1
2
3
4
5 6
7