Arbre couvrant
Dans le domaine mathématique de la théorie des graphes, un arbre couvrant d'un graphe non orienté et connexe est un arbre inclus dans ce graphe et qui connecte tous les sommets du graphe.
![](http://up.wiki.x.io/wikipedia/commons/thumb/d/d4/4x4_grid_spanning_tree.svg/220px-4x4_grid_spanning_tree.svg.png)
![](http://up.wiki.x.io/wikipedia/commons/thumb/9/93/%D0%9D%D0%B0%D1%82%D1%83%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B3%D0%B0%D0%BC%D0%B8%D0%BB%D1%8C%D1%82%D0%BE%D0%BD%D0%BE%D0%B2%D1%8B%D1%85_%D1%86%D0%B8%D0%BA%D0%BB%D0%BE%D0%B2.jpg/220px-%D0%9D%D0%B0%D1%82%D1%83%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B3%D0%B0%D0%BC%D0%B8%D0%BB%D1%8C%D1%82%D0%BE%D0%BD%D0%BE%D0%B2%D1%8B%D1%85_%D1%86%D0%B8%D0%BA%D0%BB%D0%BE%D0%B2.jpg)
De façon équivalente, c'est un sous-graphe acyclique maximal, ou encore, un sous-graphe couvrant connexe minimal.
Propriétés
modifierDans certains cas, le nombre d'arbres couvrants d'un graphe connexe est facilement calculable. Par exemple, si lui-même est un arbre, alors , tandis que si est un n-cycle, alors . Pour un graphe quelconque, peut être calculé grâce au théorème de Kirchhoff.
La formule de Cayley permet aussi de calculer directement pour un graphe complet . On obtient que .
Si G est un graphe biparti complet , alors est [1].
Les arbres couvrants d’un graphe forment un matroïde, et peuvent donc être énumérés par un algorithme avec délai polynomial.
Arbre couvrant de poids minimal
modifierUn problème algorithmique classique est de trouver, dans un graphe pondéré, un arbre couvrant de poids minimal. Le poids peut représenter la difficulté qu'il y a à emprunter une liaison, par exemple une durée de traversée de la liaison élevée. Dans le cas du graphe pondéré aussi, on dispose de plusieurs algorithmes (algorithme de Borůvka, l'algorithme de Prim, algorithme de Kruskal…).
Utilisations et Spanning Tree Protocol
modifierLes arbres couvrants sont étudiés en informatique théorique pour leurs applications aux réseaux informatiques.
Ils peuvent ainsi définir un chemin permettant de faire passer une information depuis un nœud d'un réseau vers n'importe quel autre nœud, tout en évitant la présence de boucles. Les boucles sont gênantes dans un réseau informatique parce que les informations peuvent emprunter la boucle et tourner plusieurs fois avant d'atteindre leur destination, ou même tourner indéfiniment au sein de la boucle, sans jamais atteindre leur destination. Dans le cas extrême de la tempête de diffusion, le réseau devient inutilisable.
L'algorithme Spanning Tree Protocol découvert par Radia Perlman en 1985 permet de trouver un arbre couvrant dans un graphe arbitraire. Il permet même de trouver un tel arbre dans un multigraphe, qui peut donc comporter plusieurs arêtes entre une paire de nœuds donnée. Une fois que l'arbre couvrant est défini, les équipements qui se trouvent aux nœuds du réseau bloquent administrativement toutes les liaisons redondantes. Si une liaison de l'arbre couvrant est défaillante, un nouvel arbre est calculé, ce qui permet au réseau de continuer à fonctionner s'il existait une liaison redondante de secours.
Références
modifier- Steven Klee et Matthew T. Stamps, « Linear Algebraic Techniques for Spanning Tree Enumeration », Amer. Math. Monthly, vol. 127, no 4, , p. 297-307 (DOI 10.1080/00029890.2020.1708171)
Voir aussi
modifierBibliographie
modifier- Eppstein, David « Spanning trees and spanners » () (lire en ligne)
— « (ibid.) », dans Handbook of Computational Geometry, Elsevier, p. 425–461 - (en) Garey, Michael R.; Johnson, David S., Computers and intractability : a guide to the theory of NP-completeness, New York, W.H. Freeman, , 338 p. (ISBN 978-0-7167-1045-5, BNF 37670394) A2.1: ND2, pg.206.
- (en) Wu, Bang Ye; Chao, Kun-Mao, Spanning Trees and Optimization Problems, CRC Press, , 200 p. (ISBN 978-1-58488-436-1)
- (en) Harold N. Gabow et Eugene W. Myers, « Finding All Spanning Trees of Directed and Undirected Graphs », SIAM J. Comput., vol. 7, no 280, (lire en ligne)