Algorithme de Borůvka
# Algorithme de Borůvka

L'algorithme de Borůvka, est un algorithme de recherche de l'arbre couvrant de poids minimal dans un graphe pondéré. Il est aussi appelé algorithme de Sollin.

## Problème de l'arbre couvrant minimal

En théorie des graphes, étant donné un graphe non orienté connexe dont les arêtes sont pondérées, un arbre couvrant de poids minimal de ce graphe est un arbre couvrant (sous-ensemble qui est un arbre et qui connecte tous les sommets ensemble) dont la somme des poids des arêtes est minimale.

## Algorithme

### Principe

Le principe est de réduire G en contractant des arêtes : on choisit peu à peu les arêtes qui seront dans l'arbre, et à chaque fois que l'on en choisit une, on fusionne les nœuds que cette arête relie. Ainsi, il ne reste plus qu'un sommet à la fin.

On peut aussi décrire l'algorithme sans parler de contraction : on construit une forêt dont les arbres fusionnent peu à peu pour former un arbre couvrant de poids minimum.

### Pseudo-code

On prend G le graphe et F l'ensemble des arêtes choisies (on le remplit peu à peu).

(*) i.e. les arêtes qui partent et arrivent au même sommet ; ce genre d'arête peut apparaitre après une itération.

(**) i.e. fusionner les sommets aux extrémités de $e_{x}$

### Complexité

L'algorithme de Borůvka a une complexité en $O(A\ln(S))$, où $A$ est le nombre d'arêtes et $S$ le nombre de sommets du graphe considéré.

## Comparaison avec les autres algorithmes

Il existe d'autres algorithmes pour le problème de l'arbre couvrant minimal, par exemple l'algorithme de Prim et l'algorithme de Kruskal.

## Historique

L'algorithme de Borůvka est le premier algorithme de recherche d'arbre couvrant de poids minimal découvert publié par Otakar Borůvka en 1926 dans l'article O jistém problému minimálním ('Sur un certain problème minimal'). Au départ, il était destiné à rendre le réseau électrique de Moravie efficace. Il fut redécouvert à de nombreuses reprises par la suite.

