Analyse d’Algorithmes 2001
Ch. 6 - APPROCHE VORACE 7
Algorithme de Kruskal
PRINCIPE
À chaque itération, on ajoute la plus petite arête parmi
celles qui ne créent pas de cycle, quelle que soit sa localisation
EXEMPLE
123
45 6
7
12
6
3
54
8
6
74 3
4
a) Tri des arêtes en ordre de longueurs croissantes
(1,2), (2,3), (4,5), (6,7), (1,4), (2,5), (4,7), (3,5), (2,4), (3,6), (5,7), (5,6).
b) Arête ajoutée Composantes connexes associées
(Initialisation) {1}, {2}, {3}, {4}, {5}, {6}, {7}
→(1,2) {1,2}, {3}, {4}, {5}, {6}, {7}
→(2,3) {1,2,3}, {4}, {5}, {6}, {7}
→(4,5) {1,2,3}, {4,5}, {6}, {7}
→(6,7) {1,2,3}, {4,5}, {6,7}
→(1,4) {1,2,3,4,5}, {6,7}
(2,5) (refusée)
→(4,7) {1,2,3,4,5,6,7}.
8 Ch. 6 - APPROCHE VORACE ©2001
R. Lelouche
Algorithme de Kruskal (
suite)
FONCTIONNEMENT
Théorème 6.3.2, p. 193 sq. (ancien problème 3.2.2)
L’algorithme de Kruskal fonctionne correctement
Preuve
Il est clair que les arêtes retenues à la fin forment un graphe connexe et sans
cycle, donc un arbre sous-tendant. Il suffit de montrer qu’il est à coût minimal,
c’est-à-dire qu’à chaque étape, incluant la dernière, les arêtes retenues
forment un ensemble prometteur.
Base
C’est vrai pour l’état initial (il n’y a aucune arête, et l’ensemble vide est
trivialement prometteur).
Induction
Hypothèse d’induction:
Supposons que c’est vrai pour
k
–1 arêtes, c’est-à-dire
que les
k
–1 premières arêtes forment un ensemble prometteur.
Soit
e
= (
u
,
v
) la
k
e arête choisie. Soit B l’ensemble des sommets reliés à
u
avant l’ajout de
e
. Avant l’ajout de
e
, B est inclus strictement dans N car
v
n'appartient à B. De plus, aucune arête ne quitte B (ne relie B à N–B). Enfin,
e
est de longueur minimale parmi les arêtes qui quittent B. Donc, le lemme
de l’augmentation d’un ensemble prometteur peut s’appliquer, et par suite
l’ensemble des arêtes retenues après l’ajout de
e
est prometteur.
Lorsque la dernière arête est ajoutée, l’ensemble des arêtes accumulées est
prometteur, c’est-à-dire que l’arbre sous-tendant obtenu est minimal.