Forte connexité. - Master informatique

publicité
Forte connexité.
Master d’Informatique — UPMC
STL – M1.
UE Algorithmique avancée
Semaine 8
1
Année 2007 — 2008
Composantes fortement connexes
On considère le graphe orienté G suivant :
7
8
1
2
6
5
4
3
1. Donnez ses composantes fortement connexes.
2. Donnez deux parcours en profondeur de G, en partant du nœud 1 puis du nœud 8 (dans
le dernier cas on supposera que les racines sont données dans l’ordre [8,1,2,3,4,5,6,7]).
3. Rappelez l’algorithme de Tarjan et appliquez-le pour le calcul des composantes fortement
connexes de G.
2
2-connexité
Soit G un graphe connexe non orienté. On dit que G est 2-connexe s’il contient au moins trois
sommets et si pour tout sommet s, le graphe obtenu en retirant s est encore connexe.
Soit s un sommet de G. On dit que s est un point d’articulation de G si le graphe obtenu en
retirant s n’est plus connexe.
Un bloc est soit une arête, soit un sous-graphe 2-connexe.
Une composante 2-connexe de G est un bloc maximal de G.
2.1
Exemple
Considérons le graphe suivant :
s2
s3
s5
s6
s1
s7
s4
s9
s8
s10
s11
s12
Donnez ses points d’articulation et ses composantes 2-connexes.
1
2.2
2.2.1
Recherche des composantes 2-connexes
Préliminaires
Soit G un graphe connexe non orienté. Montrez les propriétés suivantes :
1. Deux composantes 2-connexes de G sont disjointes ou ont en commun un point d’articulation.
2. G est 2-connexe si et seulement si pour tous sommets x et y de G, il existe un cycle
élémentaire passant par x et y.
3. La forêt couvrante associée au parcours en profondeur de G est une arborescence.
2.2.2
Justification
Pour tout sommet x de G notons
– pref (x) la numérotation du sommet x associée a un parcours en profondeur de G,
– retour (x) le plus haut sommet de l’arborescence qui peut être atteint à partir de x en suivant
un chemin formé d’arcs couvrants suivi (éventuellement) d’un arc en arrière.
On peut définir la fonction retour de manière récursive :
retour (x) = min{ pref (x), pref (z), retour (y)}
le minimum étant pris sur tous les sommets z tels que x → z est un arc en arrière et les sommets
y tels que x → y est un arc couvrant.
1. Montrez que la racine x de l’arborescence de G est un point d’articulation si et seulement
si x a au moins deux fils,
2. Montrez qu’un sommet x autre que la racine est un point d’articulation si et seulement si
il existe un sommet y tel que x → y est un arc couvrant et retour (y) ≥ pref (x),
3. Soit x–y une arête avec x → y un arc couvrant. Montrez que x est racine de la composante
2-connexe contenant y si et seulement si retour (y) ≥ pref (x).
2.2.3
Algorithme
En vous inspirant de l’algorithme de Tarjan, décrivez un algorithme de calcul des composantes
2-connexes :
– on évalue récursivement retour (x) en effectuant un parcours en profondeur du graphe à partir
du sommet x,
– on empile les arêtes au fur et à mesure (dans l’ordre préfixe),
– si pour une arête x–y correspondant à un arc couvrant x → y on a retour (y) ≥ pref (x)
alors on obtient une composante 2-connexe en dépilant toutes les arêtes jusqu’à x–y incluse.
2
Téléchargement