
MP option informatique Exercice 12 (Algorithme de Kruskal) Graphes
1) a) Le graphe G´etant connexe, on peut consid´erer l’ensemble de ses sous-graphes connexes qui ne
sera pas vide (mais est fini). On consid`ere dans cet ensemble un sous-graphe qui a le moins
d’arˆetes. Il est n´ecessairement acyclique car s’il avait un cycle, on pourrait enlever une arˆete sans
” casser ” la connexit´e.
b) A tout moment le sous-graphe (V, Ek) est acyclique par d´efinition.
Montrons que le graphe final (not´e Gf= (V, Ef)) est connexe. Par l’absurde, supposons qu’il ne
le soit pas. On consid`ere alors deux composantes connexes de Gf. Elles sont reli´es par un chemin
(dans G). Soit eune arˆete de Gqui ” sort ” d’une composante connexe (il suffit de prendre la
premi`ere arˆete du chemin consid´er´e ci-dessus). De ce fait, ajouter e`a Gfne va pas cr´eer un cycle
- cela signifie qu’au moment o`u on a consid´er´e e(pour ne pas l’ajouter) elle ne cr´eait pas de cycle.
C’est donc absurde.
Finalement Gfest bien un arbre.
2) L’ensemble des arbres couvrant est un sous-ensemble de l’ensemble des sous-graphes. Il est donc fini.
Il y a donc des arbres couvrants de poids minimal.
3) a) -
b) Consid´erons C1, . . . , Cples composantes connexes de (V, E1).
•S’il existe une arˆete de E2qui connecte deux composantes connexes distinctes alors on peut
ajouter cette arˆete sans cr´eer un cycle.
•Supposons `a l’inverse que toute arˆete de E2connecte deux sommets d’une mˆeme composante
connexe. Comme |E2|>|E1|il existe une des composantes connexe o`u il y a (strictement)
plus d’arˆetes de E2que de E1. En se restreignant `a cette composante connexe, on voit que
E1engendre un arbre (connexe et sans cycle). Il ne se peut donc pas que E2ait plus d’arˆetes.
On ne peut finalement pas ˆetre dans ce cas.
c) Montrons par r´ecurrence sur kque pour tout arbre couvrant Tde poids minimal, la somme des
poids des karˆetes les plus l´eg`eres de Test sup´erieure ou ´egale `a la somme des karˆetes de l’arbre
renvoy´e par l’algorithme.
Fixons les notations. On pose (e1, . . . , em) les arˆetes du graphes (class´ees par poids croissant).
On note i1≤i2≤ · · · ≤ in−1les indices des arˆetes dans Tet j1≤ · · · ≤ jn−1les arˆetes du graphe
renvoy´e par l’algorithme.
•Initialisation : Pour k= 0 c’est vrai
•H´er´edit´e : on suppose que la propri´et´e est vraie pour un kdonn´e. C’est-`a-dire que
p(ej1) + · · · +p(ejk)≤p(ei1) + · · · +p(eik)
D’apr`es la question pr´ec´edente, on sait qu’il existe une arˆete eαdans {ei1, . . . , eik+1 } \
{ej1, . . . , ejk}telle que si on l’ajoute `a {ej1, . . . , ejk}on obtient un graphe sans cycle. Comme
elle n’a de fait pas ´et´e ajout´ee alors
p(ejk)≤p(eα)
De ce fait, p(ejk+1 )≤p(eα). On a donc
p(ej1) + · · · +p(ejk+1 )≤p(ei1) + · · · +p(eik) + p(eα)≤p(ei1) + · · · +p(eik+1 )
car p(eα)≤p(eik+1 ).
Lyc´ee Chateaubriand 1/3