Universit´e de Versailles – Saint-Quentin-en-Yvelines. Master 1 Informatique 2019-2020
Algorithmique de Graphes – Connexit´e et les parcours. Le TD du 13 Novembre 2019 Tatiana Babicheva. Link : https ://www.babichev.org/TD/
Graphe orient´e
D´efinition 1. Graphe Orient´e
G= (V, A) o`u V est un ensemble fini de sommets et o`uA ⊆V ×V est un ensemble de pairesordonn´ees de sommets appel´eesarcs.
— On note (u, v) l’arc entre les sommetsuetvdeG.
— Pour un arc (u, v)∈A,vest unsuccesseur deuetuest unpr´edecesseur dev.
— L’arc (u, v) est unarc sortant du sommetuet unarc entrant du sommetv.
D´efinition 2. Adjacence
Deux arcs sont adjacents s’ils ont une extr´emit´e commune. Deux sommets sont adjacents s’il existe un arc dont les extr´emit´es sont ces deux sommets.
D´efinition 3. Degr´e entrant
Soit G = (V, A) un graphe orient´e. Le degr´e entrant d’un sommetu ∈ V, not´e d+(u) est le nombre d’arcs entrants dans le sommetu.
D´efinition 4. Degr´e sortant
SoitG= (V, A)un graphe orient´e. Le degr´e sortant d’un sommetu∈V, not´ed−(u)est le nombre d’arcs sortants du sommetu.
D´efinition 5. Chemin dans un graphe orient´e
SoitG= (V, A) un graphe orient´e. Un chemin dans G est une suite de sommetsv0v1. . . vn telle que chaque couple de sommets successifs (vi−1, vi),i∈1..nest un arc de A. La longueur du chemin est le nombre d’arcs du chemin.
D´efinition 6. Circuit dans un graphe orient´e
Un circuit dans un graphe orient´e est un chemin tel quev0=vn.
D´efinition 7. Forte Connexit´e
SoitG= (V, A)un graphe orient´e.Gestfortement connexe, si pour toute paire ordonn´ee de sommets distincts u∈V etv∈V, il existe un chemin deu`avdansG.
D´efinition 8. Connexit´e au sens des arcs
SoitG= (V, A)un graphe orient´e tel que|V|>1.F ⊆Aest un ensemble d’arcs d´econnectantGsi(V, A\F) n’est pas fortement connexe.
λ(G)est le cardinal du plus petit ensemble d’arcs d´econnectantG.
D´efinition 9.k-fortement connexe
SoitG= (V, A)un graphe orient´e tel que|V|>1.Gestk-fortement connexesiλ(G)≥k.
1
Exercice 1 Forte connexit´e.
1. Montrer que si un graphe orient´eGest fortement connexe, alors chaque arc deGappartient `a un circuit.
2. Montrer qu’un graphe Gest fortement connexe si et seulement si chaque sommet deGest la racine d’une arbo- rescence et d’une anti-arborescence deG.
3. Un graphe orient´eGest ditfortement cycliquesi pour chaque paire de sommetsx, ydeG, il y a une s´equence de circuitsC1, . . . , Cktels quexest dansC1,yest dansCk, etCietCi+1ont au moins un sommet commun. Montrer queGest fortement connexe si et seulement siGest fortement cyclique.
4. Proposer un algorithme pour d´ecider si un graphe est fortement connexe et un autre pour trouver un cycle.
Exercice 2
SoitGun graphe orient´ek-fortement connexe aveck≥2. SoitG0 un graphe obtenu en ajoutant un nouveau sommet x`aGainsi que les arcs suivants :
— karcs sortants dexversksommets distincts deG;
— karcs entrants enx`a partir dek sommets distincts deG.
Montrer queG0estk-fortement connexe.
Exercice 3
Soitn≥2. Quel est le nombre maximum d’arˆetes d’un graphe non orient´eG`ansommets v´erifiantλ(G) = 1 ?
Exercice 4
Montrer que si un graphe non orient´eGcontient deux arbres couvrants arˆete-disjoints, alorsλ(G)≥2. La r´eciproque est-elle vraie ?
Exercice 5
Etant donn´´ e deux entiers 1< k < n, on notem(k, n) le nombre minimum d’arˆetes d’un graphe non orient´ek-connexe
`
ansommets.
1. Montrer quem(k, n)≥kn/2.
2. On suppose dans cette question quek etnsont pairs. On d´efinit le grapheGk,n sur les sommets{0, . . . , n−1}
par : [i, j]∈E si et seulement sii−j∈ {−k/2, . . . , k/2} \ {0}(l’addition est prise modulon). Montrer queGk,n
estk-connexe. En d´eduire la valeur dem(k, n) pourketnpairs (v´erifiant 1< k < n).
3. Adapter la construction de la question pr´ec´edente aux couples d’entiers quelconques v´erifiant 1 < k < n. En d´eduire la valeur dem(k, n) pour tous ces couples d’entiers.
4. Montrer queλ(Gk,n) =k.
5. Dessiner deux graphes 5-connexe `a 9 sommets non isomorphes.
Exercice 6
Une entreprise d’informatique souhaite lancer la construction d’un nouvel ordinateur. La conception d’un tel ordinateur implique son passage successif sur diff´erentes machines{m1, m2, . . . , mk}, avec un passage unique sur chaque machine.
Afin de planifier cette construction, on consid`ere un graphe orient´eGdans lequel :
— les sommets sont les machines,
— un arc (m, m0) dansGsignifie que l’ordinateur doit imp´erativement ˆetre trait´e par la machinemavant d’ˆetre trait´e par la machinem0.
1. Quelle propri´et´e deGindiquerait que la construction est logiquement impossible ? Concevez un algorithme, utilisant un parcours en largeur, qui dit si cette propri´et´e est ou non v´erifi´ee pourG.
2. On consid`ere `a pr´esent que la construction est possible. On d´esire indiquer un ordre de passge de l’ordinateur sur les machines. Pour ce faire, une machinemest num´erot´eeisi elle est laieme machine utilis´ee.
Quelle propri´et´e doit v´erifier une telle num´erotation des sommets de G? Concevez un algorithme, utilisant un parcours en profondeur, qui donne une num´erotation possible des sommets deG. Pourquoi peut-on parler ici de
“Tri topologique” ?
2