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