informatique (MP2I/MPI) · Chapitre 23 · Application directe du cours
Kruskal, à la main
Unir & trouver, arbres couvrants · niveau 2
Énoncé
Sur le graphe à sept sommets dont les arêtes sont
dérouler Kruskal : donner l'ordre de tri, les arêtes prises, les arêtes écartées et le poids total.
Corrigé
Ordre de tri (poids croissant ; les ex æquo se départagent comme on veut) :
ad(5) ce(5) df(6) ab(7) be(7) bc(8) ef(8) bd(9) eg(9) fg(11) de(15)
Le déroulé, en suivant les classes :
| Arête | Classes avant | Décision | Classes après |
|---|---|---|---|
| prise | |||
| prise | |||
| prise | |||
| prise | |||
| prise | |||
| et ensemble | écartée | — | |
| et ensemble | écartée | — | |
| ensemble | écartée | — | |
| prise | tout | ||
| ensemble | écartée | — | |
| ensemble | écartée | — |
Six arêtes prises — soit , comme annoncé —, cinq écartées, et un poids total de
Une force brute sur les sous-ensembles confirme : ce graphe possède arbres couvrants, le plus léger pèse , et c'est le seul de ce poids.
Deux remarques de méthode. L'algorithme s'arrête quand il a arêtes : les quatre dernières lignes du tableau sont du travail inutile, et une mise en œuvre soignée sort de la boucle dès que le compteur atteint . Et si, en fin de parcours, on n'en a pas , c'est que le graphe n'est pas connexe — Kruskal le détecte sans effort supplémentaire.