Vous êtes sur la page 1sur 20

M1.5.

1 Théorie des Graphes


Corrigés TD

v0.1

19 novembre 2016
ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 1. Une chèvre, un chou et un loup se trouve sur la rive d’un fleuve. Un passeur
veut les faire changer de rive, mais sa barque étant trop petite, il ne peut transporter
qu’un seul d’entre eux à la fois. Pour des raisons évidentes, on ne peut laisser sans
surveillance le loup en compagnie de la chèvre ou la chèvre en compagnie du chou.
Montrer que la résolution de ce problème revient à chercher, dans un graphe qu’on
dessinera, un chemin allant de l’état « a » (où la chèvre, le chou, le loup et le passeur
se trouvent ensemble sur la rive gauche) à l’état « b » (où rien ne se trouve plus sur
la rive gauche).
Exercice 2. (a) Montrer que tout chemin (resp. chaine) élementaire est simple.
(b) Monter que dans un graphe G, s’il existe un chemin (resp. chaine) d’un sommet
x à un sommet y, alors il existe un chemin (resp. chaine) élémentaire de x à y.
(c) Montrer que tout circuit (resp. cycle) est union disjointe au sens des arcs (resp.
arêtes) de circuits (resp. cycles) élémentaires.
Exercice 3. Montrer que dans un graphe simple G, il existe au moins deux sommets qui
ont le même degré.
Exercice 4. Montrer que si un graphe a exactement deux sommets de degré impair, alors
il existe une chaine reliant ces deux sommets.
Exercice 5. Montrer que si G = (X, E) est un graphe connexe, alors pour toute arête e
de G, G′ = (X, E − e) a au plus deux composantes connexes.
Exercice 6. Un cycle d’un graphe comportant toutes les arêtes du graphe est appelé cycle
d’Euler. Un graphe contenant un cycle d’Euler est appelé graphe d’Euler. Montrer
que pour un graphe connexe fini G, G est un graphe d’Euler si et seulement si tous
ses sommets sont de degré pair.
Exercice 7. Le problème des ponts de Königsberg est considéré comme le premier pro-
blème historique utilisant explicitement les graphes.
La ville de Königsberg possédait 7 ponts, disposés selon le plan de la figure ci-dessous.

Le dimanche, les habitants de la ville se promenaient, et souhaitaient utiliser un


parcours fermé passant une fois et une seule sur chaque pont. Mais est-il possible de
trouver un tel parcours ?
Exercice 8. Huit pays sont représentés ci-dessous avec leur frontière (deux pays dont les
frontières n’ont qu’un nombre fini de points ne sont pas considérés comme voisins).

v0.1 page 1 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

5 4

6 3 2
8
7 1

(a) Représentez cette situation par un graphe d’ordre 8 dont les sommets sont les
pays les arêtes les frontières.
(b) Est-il possible de partir d’un pays et d’y revenir après avoir franchi chaque
frontière une fois et une seule ?
(c) Est-il possible de partir d’un pays, de franchir chaque frontière une fois et une
seule et de terminer en une autre pays ?
Exercice 9. (a) En partant de la définition d’un arbre, c’est-à-dire connexe et sans cycles.
Montrer que tout arbre d’ordre ≥ 2 a au moins 2 sommets pendants.
(b) Montrer par récurrence sur l’ordre de graphe qu’un arbre d’ordre n a n−1 arêtes.
Exercice 10. On considère le réseau où les sommets représentent des villes et les arêtes
des lignes de communication possibles entre celles-ci. Le poids associé à chaque arête
représente le coût d’installation de cette liaison.
2
2 b 2 2 e g

a d 1 2 3

3 c 1 4 f h
1
(a) Supposons qu’on veut construire un réseau de communication desservant toutes
les villes pour le moindre coût, dites pourquoi ceci revient à chercher un arbre
de poids minimum dans le réseau ci-dessus.
Construire alors un arbre de poids minimum :
(b) par l’algorithme de Kruskal.
(c) par l’algorithme de Prim (on dessinera à chaque itération le graphe contracté
correspondant).
Exercice 11. Soit G un graphe. Montrer que ces trois assertions sont équivalentes.
1. γ(G) = 2.
2. G est biparti.
3. G n’a pas de cycles de longueur impaire.
Exercice 12. Huit étudiants : E1 , E2 , . . . E8 doivent passer certaines épreuves parmi les
suivantes : M1 , M2 , . . . , M 5. On désire que tous les étudiants qui doivent subir une
même épreuve le fassent simultanément. Chaque étudiant ne peut se présenter qu’à
une épreuve au plus chaque jour. Voici la liste des épreuves que doit passer chaque
étudiant :

v0.1 page 2 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

E1 M1 , M4 E5 M3 , M4
E2 M1 , M5 E6 M3 , M4 , M5
E3 M2 , M3 E7 M3 , M5
E4 M2 E8 M4 , M5
Formuler le problème qui consiste à chercher le nombre minimum de jours nécessaires
à l’organisation de toutes les épreuves comme un problème de coloration dans un
graphe qu’on déterminera. Donner alors une solution à ce problème.
Exercice 13. On considère un graphe non orienté de n sommets et m arêtes. Remplissez
en fonction de m ou n les manques suivants.
1. Une chaine simple est de longueur ≤ · · · .
2. Toute chaine élémentaire est de longueur ≤ · · · .
3. Une chaine élémentaire de longueur · · · est appelée chaine hamiltonienne.
4. Tout cycle est de longueur ≤ · · · .
5. Un cycle de longueur · · · est dit eulérien.
6. Tout cycle élémentaire est de longueur ≤ · · · .
7. Un cycle élémentaire de longueur · · · est appelé cycle hamiltonien.
Exercice 14. Soit G = (X, U ) un graphe fini, orienté, et sans circuit.
Montrer que G possède un sommet de demi-degré intérieur nul.
Exercice 15. Soit G = (X, U ) un graphe orienté. Soit A ⊂ X.
On pose (A, X − A) = {v = (x, y) ∈ U / x ∈ A, y ∈ A}. Montrer que
G est fortement connexe ⇐⇒ ∀A ⊂ X tel que A ̸= ∅ et A ̸= X, (A, X − A) ̸= ∅.
Exercice 16. Soit G un graphe connexe et sans cycle. Soit C une chaine élémentaire la
plus longue de G (dont le nombre d’arêtes est maximum). Montrer que les deux
extrémités de C sont pendants (c’est-à-dire de degré 1).

v0.1 page 3 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 1. Une chèvre, un chou et un loup se trouve sur la rive d’un fleuve. Un passeur
veut les faire changer de rive, mais sa barque étant trop petite, il ne peut transporter
qu’un seul d’entre eux à la fois. Pour des raisons évidentes, on ne peut laisser sans
surveillance le loup en compagnie de la chèvre ou la chèvre en compagnie du chou.
Montrer que la résolution de ce problème revient à chercher, dans un graphe qu’on
dessinera, un chemin allant de l’état « a » (où la chèvre, le chou, le loup et le passeur
se trouvent ensemble sur la rive gauche) à l’état « b » (où rien ne se trouve plus sur
la rive gauche).

Solution.

P passeur PLCX, -
L loup
C chèvre LX, PC
X choux
PLX, C

X, PLC L, PCX

PCX, L PLC, X

C, PLX

PC, LX

-, PCLX

Exercice 2. (a) Montrer que tout chemin (resp. chaine) élementaire est simple.

Solution.
Il suffit de prouver le résultat pour un chemin, car une chaine peut être considérée
comme un chemin.
Soit C un chemin dans un graphe G. Supposons que C est non simple. Donc C passe
au moins deux fois par un même arc, et donc au moins deux fois par une extrémité
d’un arc (c’est-à-dire un sommet), donc C n’est pas élementaire.
On a montré que pour tout chemin C : C non simple ⇒ C non élementaire.
Donc par contraposition, pour tout chemin C : C élementaire ⇒ C simple.

v0.1 page 4 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

(b) Monter que dans un graphe G, s’il existe un chemin (resp. chaine) d’un sommet
x à un sommet y, alors il existe un chemin (resp. chaine) élémentaire de x à y.

Solution.
Il suffit de prouver le résultat pour un chemin, car une chaine peut être considérée
comme un chemin.
Soit un graphe G. Supposons qu’il y existe un chemin C = (x, y). Considérons l’algo-
rithme suivant.
Tant que C n’est pas élémentaire :
• Il existe au moins un sommet qui se répète dans C. Soit z un tel sommet.
• On enlève la succession d’arcs entre le premier et le second passage du chemin
C par z.
• On obtient deux chemins C1 et C2 . C1 ∪ C2 est bien un chemin de x à y.
• C ← C1 ∪ C2 (affectation).
Terminaison de l’algorithme : cet algorithme est fini car le nombre de sommets et
d’arcs dans le graphe G est fini.
Correction de l’algorithme : cet algorithme est correct car il s’arrête sur un chemin
élémentaire de x à y.

(c) Montrer que tout circuit (resp. cycle) est union disjointe au sens des arcs (resp.
arêtes) de circuits (resp. cycles) élémentaires.

Solution.
Il suffit de prouver le résultat pour un circuit, car un cycle peut être considéré comme
un circuit.
Soit C un circuit dans un graphe G.
Considérons l’algorithme suivant.
Tant que C n’est pas élémentaire :
• Il existe au moins un sommet qui se répète dans C. Soit z un tel sommet.
• En parcourant C à partir d’un sommet quelconque lui appartenant, on identifie
le sommet x qui est le premier à réapparaitre dans le circuit.
• Le parcours Cx , depuis la première apparition de x jusqu’à sa deuxième, est un
circuit élémentaire.
• Soit C ′ le circuit C auquel on a enlevé Cx . On a C = C ′ ∪ Cx (union disjointe).
• C ← C ′ (affectation).
Terminaison de l’algorithme : cet algorithme est fini car le nombre de sommets et
d’arcs dans le graphe G est fini.
Correction de l’algorithme : cet algorithme est correct car le dernier circuit sur lequel
il s’arrête est forcément élémentaire.

v0.1 page 5 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 3. Montrer que dans un graphe simple G, il existe au moins deux sommets qui
ont le même degré.

Solution.
Soit G un graphe simple, et n le nombre de ses sommets. On raisonne par l’absurde.
Supposons que tous les sommets de G ont des degrés distincts.
Puisque G est simple, on a ∀i = 1..n, 0 ≤ d(i) ≤ n − 1 (avec d(i) le degré du sommet
i).
Alors il existe nécessairement dans G un sommet i0 tel que d(i) = 0 et un sommet i1
tel que d(i1 ) = n − 1 (principe des tiroirs).
En d’autres termes, il existe à la fois un sommet isolé et un somme relié à tous les
autres sommets, ce qui est absurde.

Exercice 4. Montrer que si un graphe a exactement deux sommets de degré impair, alors
il existe une chaine reliant ces deux sommets.

Solution.
Soit G un graphe ayant exactement deux sommets de degré impair x et y.
Construisons un parcours simple à partir de x avec l’algorithme suivant.
On a d(x) est impair, donc d(x) ≥ 1. Donc il existe une arête e incidente à x. Soit z
l’autre extrémité de e.
Tant que z ̸= y :
• Si z = x, il existe au moins une autre arête e′ incidente à x non encore visitée,
car dans ce cas, on a consommé deux degrés de x, et d(x) est impair.
z ← l’autre extrémité de e′ .
• Sinon, (c’est-à-dire z ̸= x et z ̸= y), il existe au moins une autre arête e′
incidente à z non encore visitée dans le parcours, car on a consommé 1 degré
de z, et d(z) est pair.
(d(z) est pair car seuls d(x) et d(y) sont impairs dans G, et z et différent de ces
deux sommets).
z ← l’autre extrémité de e′ .
Terminaison de l’algorithme : cet algorithme est fini car le nombre de sommets et
d’arêtes dans le graphe G est fini, et à chaque itération on considère une nouvelle
arête.
Correction de l’algorithme : cet algorithme est correct car il s’arrête sur z = y, et on
aura construit une chaine reliant x et y.

v0.1 page 6 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 5. Montrer que si G = (X, E) est un graphe connexe, alors pour toute arête e
de G, G′ = (X, E − e) a au plus deux composantes connexes.

Solution.
Soit k le nombre de composantes connexes de G′ . On veut montrer que k ≤ 2. Rai-
sonnons par l’absurde.
Supposons que k ≥ 3. Si on remet e dans le graphe G′ , on retrouve nécessairement
G. Deux cas peuvent se présenter :
• Si les deux extrémités de e appartiennent à des composantes connexes diffé-
rentes, on aura donc k − 1 composantes connexes.
• Sinon, les deux extrémités de e appartiennent à une même composante connexe,
et on aura donc k composantes connexes.
Dans les deux cas, le nouveau graphe après l’ajout de e aura au moins k − 1 com-
posantes connexes, c’est-à-dire au moins 2 composantes connexes (car on a supposé
k ≥ 3). Or G est connexe (a une seule composante connexe). Absurde.

v0.1 page 7 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 6. Un cycle d’un graphe comportant toutes les arêtes du graphe est appelé cycle
d’Euler. Un graphe contenant un cycle d’Euler est appelé graphe d’Euler. Montrer
que pour un graphe connexe fini G, G est un graphe d’Euler si et seulement si tous
ses sommets sont de degré pair.

Solution.
(⇒) Montrons que si G est un graphe d’Euler, alors tous ses sommets sont
de degrés pair.
Soit G un graphe d’Euler. Donc G contient un cycle d’Euler C.
G est connexe donc ne contient pas de sommets isolés. Donc tous les sommets de G
sont parcourus dans C.
Soit x un sommet de C. À chaque passage sur x dans C, on consomme deux nouvelles
arêtes (ceci car C est simple vu que c’est un cycle). Donc, si on passe sur x k fois
(en excluant la première et dernière fois), le nombre d’arêtes incidentes à x dans le
graphe G sera 2k + 2 (en comptant cette fois-ci les arêtes qu’on a consommé pour le
premier et dernier passage).
Donc x est de degré pair.

(⇐) Montrons que si tous les sommets de G sont de degré pair, alors G est
un graphe d’Euler.
Soit G un graphe dont tous les sommets sont de degré pair.
Soit x un sommet de G. d(x) ≥ 1 car G est connexe.
On construit un parcours simple à partir de x en visitant les sommets du graphe
comme suit : pour chaque sommet y ̸= x, on y entre par une arête et on en sort par
une autre différente (ceci est toujours possible car d(y) est pair).
Ce parcours ne peut s’arrêter que sur x, et ceci se produit lorsqu’on a consommé
toutes les arêtes incidentes à x.
On a donc construit un cycle C, mais qui ne contient pas nécessairement toutes les
arêtes de G. Considérons l’algorithme suivant.
Tant que C ne contient pas toutes les arêtes du graphe G :
• On considère le graphe G′ obtenu en enlevant de G toutes les arêtes appartenant
à C. Les degrés des sommets de G′ sont pairs.
• Il existe un sommet y parcouru dans C tel que dG′ (y) ≥ 1 (avec dG′ (y) le degré
de y dans G′ ) (car sinon G ne serait pas connexe).
• Construisons un cycle Cy de la même façon que C.
• Dans G, C∪Cy (union disjointe) est un cycle, car il existe un sommet en commun
entre les deux cycles, et les arêtes parcourues dans C sont différentes de celles
dans Cy .
• C ← C ∪ Cy .
Terminaison de l’algorithme : cet algorithme est fini car le nombre de sommets et
d’arêtes dans le graphe G est fini, et à chaque itération, le nombre d’arêtes dans le
cycle C augmente.
Correction de l’algorithme : cet algorithme est correct car il s’arrête sur un cycle C
contenant toutes les arêtes du graphe G, c’est-à-dire un cycle d’Euler.

v0.1 page 8 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 7. Le problème des ponts de Königsberg est considéré comme le premier pro-
blème historique utilisant explicitement les graphes.
La ville de Königsberg possédait 7 ponts, disposés selon le plan de la figure ci-dessous.

Le dimanche, les habitants de la ville se promenaient, et souhaitaient utiliser un


parcours fermé passant une fois et une seule sur chaque pont. Mais est-il possible de
trouver un tel parcours ?

Solution.
Un tel parcours serait un cycle d’Euler. Or, par exemple, le sommet A dans la modé-
lisation par graphe ci-dessous a un degré impair. Donc, avec un exercice précédent, il
n’existe pas de cycle d’Euler dans le graphe.
A

B D

v0.1 page 9 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 8. Huit pays sont représentés ci-dessous avec leur frontière (deux pays dont les
frontières n’ont qu’un nombre fini de points ne sont pas considérés comme voisins).

5 4

6 3 2
8
7 1

(a) Représentez cette situation par un graphe d’ordre 8 dont les sommets sont les
pays les arêtes les frontières.

Solution.
5 4

6 3 8 2

7 1

(b) Est-il possible de partir d’un pays et d’y revenir après avoir franchi chaque
frontière une fois et une seule ?

Solution.
Un tel parcours serait un cycle d’Euler. Or, le sommet 6 par exemple est de degré
impair, donc un tel parcours n’existe pas.

(c) Est-il possible de partir d’un pays, de franchir chaque frontière une fois et une
seule et de terminer en une autre pays ?

Solution.
Oui. Par exemple : (6, 5, 4, 3, 2, 4, 6, 7, 1, 3, 8, 2, 1, 8).

v0.1 page 10 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 9. (a) En partant de la définition d’un arbre, c’est-à-dire connexe et sans cycles.
Montrer que tout arbre d’ordre ≥ 2 a au moins 2 sommets pendants.

Solution.
1re méthode – en utilisant (b)
Soit A = (X, U ) un arbre.
On a |U | = n − 1 avec n le nombre de sommets de A.

On sait que d(x) = 2|U | = 2(n − 1) = 2n − 2.
x∈X
Supposons par l’absurde que A a au plus 1 sommet pendant.
A est un arbre, donc A est connexe, donc d(x) ≥ 1, ∀x ∈ X.
∑ ∑
n−1
Donc d(x) ≥ ( 2) + 1 = 2(n − 1) + 1 = 2n − 1.
x∈X i=1
Donc 2n − 2 ≥ 2n − 1, ce qui est absurde.

2e méthode – sans utiliser (b)


Soit A un arbre.
A est connexe, donc ∀x ∈ X, d(x) ≥ 1.
Construisons un parcours simple à partir d’un sommet x1 .
Il existe une arête (x1 , x2 ) tel que x1 ̸= x2 . On initialise i à 2.
Tant que xi n’est pas pendant :
• Il existe une arête (xi , xi+1 ) tel que xi+1 ̸= xj , ∀j ∈ {1, . . . , i} (car sinon, on
aura un cycle).
• i ← i + 1.
Terminaison de l’algorithme : cet algorithme est fini car le nombre de sommets et
d’arêtes dans l’arbre A est fini, et à chaque itération, on considère une nouvelle arête.
Correction de l’algorithme : cet algorithme est correct car il s’arrête sur un sommet
pendant. Soit xp ce sommet pendant.
On construit par le même algorithme un second parcours similaire au premier, mais
à partir du sommet xp . On obtient un autre sommet pendant xp′ ̸= xp (ceci car on
n’a pas de cycle).

v0.1 page 11 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

(b) Montrer par récurrence sur l’ordre de graphe qu’un arbre d’ordre n a n−1 arêtes.

Solution.
1re méthode – en utilisant (a)
Pour n = 1, |U | = 0. Pour n = 2, |U | = 1.
Soit n ≥ 2. Supposons que tout arbre d’ordre n a n − 1 arêtes.
Soit A un arbre d’ordre n + 1.
Soit x un sommet pendant de A. Soit e l’unique arête incidente sur x, et x′ son autre
extrémité. On enlève le sommet x et l’arête e. On obtient un graphe A′ .
A′ est sans cycle : car A est sans cycle et on a enlevé une arête.
A′ est connexe : soient y et z deux sommets distincts quelconques de A′ . Dans A, y
et z sont connexes et il existe une chaine élémentaire qui relie y à z. Cette chaine
ne contient pas x ni e car sinon on répétera le sommet x′ , et la chaine ne sera pas
élémentaire. Donc, cette chaine existe dans A′ , et y et z sont connexes dans A′ .
A′ est donc un arbre d’ordre n. Alors par l’hypothèse de récurrence, son nombre
d’arêtes est n − 1. Donc A contient n arêtes.

2e méthode – sans utiliser (a)


Pour n = 1, |U | = 0.
Soit n ≥ 1. Supposons que tout arbre d’ordre n a n − 1 arêtes.
Soit A un arbre d’ordre n + 1. Montrons qu’il a n arêtes.
Soit x un sommet quelconque. Soit p = d(x). On enlève x et les arêtes qui lui sont
incidentes. Prouvons qu’on obtient p composantes connexes :
On a au moins p composantes connexes, car sinon il existe deux sommets xi et xj
appartenant à des composantes connexes distinctes tel que xi est connexe avec xj , et
alors en remettant les arêtes (x, xi ) et (x, xj ) dans A, on obtient un cycle.
On a au plus p composantes connexes, car sinon A ne serait pas connexe.
x1 composante connexe 1 : (n1 sommets, n1 − 1 arêtes)

x2 composante connexe 2 : (n2 sommets, n2 − 1 arêtes)

xp composante connexe p : (np sommets, np − 1 arêtes)

Toutes ces composantes connexes sont des arbres à un nombre de sommets inférieur
strictement à n. Donc par hypothèse de récurrence, on sait que ∀i = 1..p, la compo-
sante connexe a ni − 1 arêtes.
Donc le nombre d’arêtes dans l’arbre de départ A est égal à la somme du nombre
d’arêtes de chaque composante connexe, plus les p arêtes qu’on a enlevé au départ.

p ∑
p
Soit (ni − 1) + p = ni = n arêtes.
i=1 i=1

v0.1 page 12 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 10. On considère le réseau où les sommets représentent des villes et les arêtes
des lignes de communication possibles entre celles-ci. Le poids associé à chaque arête
représente le coût d’installation de cette liaison.
2
2 b 2 2 e g

a d 1 2 3

3 c 1 4 f h
1
(a) Supposons qu’on veut construire un réseau de communication desservant toutes
les villes pour le moindre coût, dites pourquoi ceci revient à chercher un arbre
de poids minimum dans le réseau ci-dessus.

Solution.
Cela revient à chercher un graphe :
– connexe, car on veut desservir toutes les villes avec le réseau.
– sans cycle, ce ne sera pas nécessaire (une liaison suffit).
On cherche donc un arbre, de plus de poids minimum car on veut desservir pour le
moindre coût.

Construire alors un arbre de poids minimum :


(b) par l’algorithme de Kruskal.

Solution.
On initialise T à ∅. À chaque itération, ei est l’arête de poids minimal ne créant pas
de cycle avec les arêtes de T .

i=1 e1 = (c, d) T ← T ∪ {e1 } 2


2 b 2 2 e g
i=2 e2 = (f, h) T ← T ∪ {e2 }
i=3 e3 = (e, f ) T ← T ∪ {e3 } a d 1
i=4 e4 = (b, d) T ← T ∪ {e4 } c 1 f h
i=5 e5 = (a, b) T ← T ∪ {e5 } 1
i=6 e6 = (d, e) T ← T ∪ {e6 }
i=7 e7 = (e, g) T ← T ∪ {e7 }
(Il y a en fait exactement deux arbres de poids minimal.)

(c) par l’algorithme de Prim (on dessinera à chaque itération le graphe contracté
correspondant).

v0.1 page 13 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Solution.
On initialise T à ∅. À chaque itération, v(x) est l’arête adjacente à x de poids minimal :
l(v(x)) = min l(u) (avec x adjacente à u et u pas boucle).
u∈A
i = 1; x = a; 2
2 e g
v(x) = (a, b) ; 2
T ← T ∪ {v(x)} ; ab d 1 2 3
G ← Cv(x) (G) 3 c 1 4 f h
1
2
i = 2; x = d; 2 2 e g
v(x) = (d, c) ;
ab cd 1 2 3
T ← T ∪ {v(x)} ;
G ← Cv(x) (G) 3 4 f h
1

i = 3; x = e; 2
2 2 g
v(x) = (e, f ) ;
T ← T ∪ {v(x)} ; ab cd ef 2 3
G ← Cv(x) (G) 3 4 1 h

i = 4; x = g; 2 2 2 3
v(x) = (e, g) ; ab cd efg h
T ← T ∪ {v(x)} ;
G ← Cv(x) (G) 3 4 1

i = 5; x = h; 2 2 2
v(x) = (f, h) ;
ab cd efgh
T ← T ∪ {v(x)} ;
G ← Cv(x) (G) 3 4 3

i = 6 ; x = ab ; 3 2 2
v(x) = (b, d) ;
abcd efgh
T ← T ∪ {v(x)} ;
G ← Cv(x) (G) 4 3

i = 7 ; x = abcd ; 3
v(x) = (d, e) ; 2
T ← T ∪ {v(x)} ; abcdefgh
G ← Cv(x) (G)
4
3

Au final, T = {(a, b), (c, d), (e, f ), (e, g), (f, h), (b, d), (d, e)}.

v0.1 page 14 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 11. Soit G un graphe. Montrer que ces trois assertions sont équivalentes.
1. γ(G) = 2.
2. G est biparti.
3. G n’a pas de cycles de longueur impaire.

Solution.
1⇒2
Supposons que γ(G) = 2. Le graphe G est biparti comme suit.
La 1re partition est l’ensemble des sommets ayant pour couleur C1 .
La 2de partition est l’ensemble des sommets ayant pour couleur C2 .

2⇒3
Supposons que G est biparti. Soient X et Y ses deux partitions.
Raisonnons par l’absurde et supposons qu’il existe un cycle C de longueur impaire
dans G.
C est de la forme (x1 , x2 , . . . , x2k+1 , x1 ). Si x1 appartient à la partition X, alors x2
appartient à Y , …, x2k+1 appartient à X. Donc l’arête reliant x2k+1 à x1 a ses deux
extrémités dans la même partition X, ce qui est absurde. (Même raisonnement si x1
appartient à la partition Y .)

3⇒1
Supposons que G n’a pas de cycles de longueur impaire. Montrons que γ(G) = 2.
On applique l’algorithme suivant.
• Prendre un sommet quelconque et le colorier en B.
• Colorier en N (resp. B) tout sommet non encore colorié et adjacent à un sommet
colorié en B (resp. N ).
• Appliquer les deux étapes précédentes aux autres composantes connexes de G.
Supposons que γ(G) ̸= 2, c’est-à-dire que γ(G) > 2. Donc on aura nécessairement,
après avoir appliqué l’algorithme précédent, au moins deux sommets adjacents coloriés
en une même couleur, qui appartiennent avec l’arête les reliant à un cycle de longueur
impair (car sinon, on pourrait parfaitement colorier les deux sommets en couleurs
différentes).
Donc il existe un cycle de longueur impaire dans G. On conclut par contraposée.

v0.1 page 15 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 12. Huit étudiants : E1 , E2 , . . . E8 doivent passer certaines épreuves parmi les
suivantes : M1 , M2 , . . . , M 5. On désire que tous les étudiants qui doivent subir une
même épreuve le fassent simultanément. Chaque étudiant ne peut se présenter qu’à
une épreuve au plus chaque jour. Voici la liste des épreuves que doit passer chaque
étudiant :
E1 M1 , M4 E5 M3 , M4
E2 M1 , M5 E6 M3 , M4 , M5
E3 M2 , M3 E7 M3 , M5
E4 M2 E8 M4 , M5
Formuler le problème qui consiste à chercher le nombre minimum de jours nécessaires
à l’organisation de toutes les épreuves comme un problème de coloration dans un
graphe qu’on déterminera. Donner alors une solution à ce problème.

Solution.
Les sommets du graphe sont les matières. Une arête relie deux sommets s’il existe un
étudiant qui doit passer les deux matières.

M5

M2 M3 M4 M1

On applique l’algorithme de Welsh-Powell.


M3 M4 M5 M1 M2
C1 C2 C3 C1 C2
Donc γ(G) ≤ 3. Mais γ ≥ 3 car (M3 , M4 , M5 ) forment une clique à trois.
Donc γ(G) = 3.

Exercice 13. On considère un graphe non orienté de n sommets et m arêtes. Remplissez


en fonction de m ou n les manques suivants.

Solution.

1. Une chaine simple est de longueur ≤ m .


2. Toute chaine élémentaire est de longueur ≤ n − 1 .
3. Une chaine élémentaire de longueur n − 1 est appelée chaine hamiltonienne.
4. Tout cycle est de longueur ≤ m .
5. Un cycle de longueur m est dit eulérien.
6. Tout cycle élémentaire est de longueur ≤ n − 1 .
7. Un cycle élémentaire de longueur n − 1 est appelé cycle hamiltonien.

v0.1 page 16 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 14. Soit G = (X, U ) un graphe fini, orienté, et sans circuit.


Montrer que G possède un sommet de demi-degré intérieur nul.

Solution.
Supposons par l’absurde que ∀x ∈ X, d− G (x) > 0.
Prenons un sommet x quelconque. L’algorithme suivant construit un circuit dans G.
On pose x0 = x et on initialise i à 0, et l’ensemble C à ∅.
Tant que xi n’appartient pas à C :
• C ← C ∪ {xi }.
• xi possède nécessairement un prédécesseur xi+1 car d− G (x) ≥ 1.
• i ← i + 1.
Terminaison de l’algorithme : cet algorithme est fini car le nombre de sommets et
d’arcs dans le graphe G est fini, et on ajoute un nouveau sommet à C à chaque
itération.
Correction de l’algorithme : cet algorithme est correct car il s’arrête sur un sommet
xf qui a déjà été parcouru. En d’autres termes, on trouve un circuit de la première
apparition de xf jusqu’à sa seconde apparition sur laquelle s’arrête l’algorithme.
G contient donc un circuit, ce qui est absurde.

v0.1 page 17 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 15. Soit G = (X, U ) un graphe orienté. Soit A ⊂ X.


On pose (A, X − A) = {v = (x, y) ∈ U / x ∈ A, y ∈ A}. Montrer que
G est fortement connexe ⇐⇒ ∀A ⊂ X tel que A ̸= ∅ et A ̸= X, (A, X − A) ̸= ∅.

Solution.
(⇒) Supposons que G est fortement connexe.
Supposons par l’absurde que ∃ A ⊂ X tel que A ̸= ∅ et A ̸= X, et (A, X − A) = ∅.
C’est-à-dire, qu’il n’existe pas d’arc dans G sortant d’un sommet de A et entrant dans
un sommet de X − A.
Considérons un sommet y de X − A (A ̸= X donc X − A ̸= ∅) et un sommet x de A.
G est fortement connexe donc il existe un chemin de x vers y. Soit (x, u0 , u1 , . . . , uk , y)
un tel chemin.
Soit i l’indice du premier élément dans le chemin appartenant à X − A. Donc ui ∈
X − A et ui−1 ∈ A par construction. Donc il existe un arc sortant de ui−1 (dans A)
et entrant dans ui (dans X − A), donc (A, X − A) ̸= ∅ car (ui−1 , ui ) ∈ (A, X − A).
Ce qui est absurde.

(⇐) Supposons que ∀A ⊂ X tel que A ̸= ∅ et A ̸= X, (A, X − A) ̸= ∅.


Soit x et y deux sommets distincts de G. L’algorithme suivant trouve un chemin
reliant ces deux sommets.
Posons u = x et initialisons i à 0 et A à ∅.
Tant que ui ̸= y :
• A ← A ∪ ui .
• (A, X − A) ̸= ∅ par hypothèse, donc ∃ ui+1 ∈ X − A tel que (ui , ui + 1) ∈ U .
• i ← i + 1.
Terminaison de l’algorithme : cet algorithme est fini car le nombre de sommets et
d’arcs dans le graphe G est fini, et X − A est réduit à chaque itération par un
sommet.
Correction de l’algorithme : cet algorithme est correct car lorsqu’il s’arrête, A ∪ {y}
est un chemin de x à y.
Donc chaque deux sommets distincts de G sont reliés par un chemin, d’où la forte
connexité de G.

v0.1 page 18 / 19 19-11-2016


ENSIAS M1.5.1 – Théorie des Graphes Corrigés TD

Exercice 16. Soit G un graphe connexe et sans cycle. Soit C une chaine élémentaire la
plus longue de G (dont le nombre d’arêtes est maximum). Montrer que les deux
extrémités de C sont pendants (c’est-à-dire de degré 1).

Solution.
Soit C = (x0 , x1 , . . . , xk ).
Supposons par l’absurde que x0 n’est pas pendant, c’est-à-dire d(x0 ) ≥ 2.
Alors il existe un sommet u relié à x0 (et différent de x1 ).
Si u ∈ C, alors ∃ i ∈ {2, 3, ...k} tel que u = xi . Alors C = (x0 , x1 , . . . , xi , x0 ) est un
cycle, ce qui est absurde.
Sinon, c’est-à-dire u ∈ / C, alors (u, x0 , x1 , . . . , xk ) est une chaine élémentaire plus
longue que C, ce qui est absurde.
Donc d(x0 ) = 1. Par le même raisonnement sur xk , d(xk ) = 1.

v0.1 page 19 / 19 19-11-2016

Vous aimerez peut-être aussi