Point d'articulation (théorie des graphes)
En mathématiques, et en particulier en théorie des graphes, un point d'articulation est un sommet d'un graphe non orienté qui, si on le retire du graphe, augmente le nombre de composantes connexes. Si le graphe était connexe avant de retirer ce sommet, il devient donc non connexe.
Biconnexité
Un graphe est dit biconnexe s'il ne contient pas de points d'articulation. Un graphe qui contient des points d'articulation peut être décomposé en composantes biconnexes en démultipliant les points d'articulation. Cela revient à dire que deux arêtes quelconques d'une composante biconnexe appartiennent à un cycle[1].
Dans un arbre, tous les sommets de degré strictement supérieur à 1 sont des points d'articulation.
La notion équivalente aux points d'articulation pour les arêtes est celle d'isthme.
Recherche de points d'articulation
Soit G un graphe à n sommets et m arêtes. Un algorithme trivial de complexité d'ordre O(nm) est le suivant :
- a = nombre de composantes connexes de G (déterminé à l'aide de l'algorithme de parcours en profondeur ou de l'algorithme de parcours en largeur)
- pour chaque sommet v de V ayant des arêtes incidentes
- retirer v de V
- b = nombre de composantes connexes de G une fois v éliminé
- si b > a
- v est un point d'articulation de G
- remettre en place v
Cet algorithme est naïf, il en existe de bien meilleurs. John Hopcroft et Robert Tarjan en ont décrit un en 1973 de complexité d'ordre O(n+m) et qui utilise l'algorithme de parcours en profondeur[2]. Le problème a aussi été étudié du point de vue des algorithmes online[3].
Notes et références
- Luc Maranget, « Parcours en profondeur, biconnexité »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?)
- DOI 10.1145/362248.362272
- Jeffery Westbrook et Robert Endre Tarjan, « Maintaining Bridge-Connected and Biconnected Components On-Line », Algorithmica, vol. 7, nos 5-6,‎ , p. 433-464