Ensimag - Grenoble INP

publicité
Ensimag
2014/2015
2A – Optimisation Combinatoire
Feuille 1
DEGRÉS
Exercice 1.1. —
(a) Montrer que la somme des degrés des sommets d’un graphe G = (V, E) non-orienté est égale à
P
deux fois le nombre d’arêtes, c’est-à-dire v∈V dG (v) = 2|E|.
(b) En déduire que le nombre de sommets de degré impair est pair.
Exercice 1.2. — Montrer que pour un sous-ensemble X de sommets d’un graphe orienté D = (V, A)
on a
P
(a) v∈X d−
d−
D (v) = P
D (X) + |A(D[X])|,
P
+
(b) v∈V dD (v) = v∈V d−
D (v).
P
+
−
−
(c) v∈X dD (v) − dD (v) = d+
D (X) − dD (X).
CHAÎNES - CHEMINS
Exercice 1.3. — Soit G un graphe non-orienté. Montrer que les conditions suivantes sont équivalentes :
(a) Il existe une chaîne entre u et v dans G.
(b) Il existe une chaîne simple entre u et v dans G.
(c) Il existe une chaîne élémentaire entre u et v dans G.
Exercice 1.4. — (Caractérisation de l’existence d’un (s, p)-chemin) Soient s et p deux sommets
d’un graphe orienté D. Montrer que les conditions suivantes sont équivalentes :
(a) Il existe un chemin de s à p.
(b) Pour tout sous-ensemble X de sommets tel que s ∈ X, p ∈
/ X, on a d+
D (X) ≥ 1.
(c) Il existe un chemin élémentaire de s à p.
CONNEXITÉ - FORTE CONNEXITÉ
Exercice 1.5. — Soient C un cycle d’un graphe connexe G et e une arête de C. Montrer que G − e
est connexe.
Exercice 1.6. — (Caractérisation des graphes connexes) Montrer qu’un graphe G non-orienté
est connexe si et seulement si dG (X) ≥ 1 pour chaque ∅ =
6 X ⊂ V (G).
Exercice 1.7. — Soit G un graphe non-orienté simple à 2n sommets. Montrer que si le degré de
chaque sommet est au moins n alors G est connexe.
Exercice 1.8. — Etant donné un graphe orienté D = (V, A), on pose la relation suivante sur les
sommets : x ∼D y s’il existe un chemin de x à y et un chemin de y à x dans D.
(a) Montrer que ∼D est une relation d’équivalence.
Comme ∼ est une relation d’équivalence elle défini les classes d’équivalence V1 , ..., Vk . Les sousgraphes D[V1 ], . . . , D[Vk ] sont les composantes fortement connexes de D.
(b) On définit D0 := (((D/V1 )/V2 )/ . . .)/Vk . Montrer que le graphe réduit D0 est sans circuit.
Exercice 1.9. — (Caractérisation des graphes fortement connexes) Montrer qu’un graphe D
orienté est fortement connexe si et seulement si d+
6 X ⊂ V (D).
D (X) ≥ 1 pour chaque ∅ =
2
2A –
CYCLES - CIRCUITS
Exercice 1.10. — Soit P := {v1 , ..., vl } une plus longue chaîne élémentaire dans un graphe G nonorienté. Alors chaque voisin u de v1 se trouve dans {v2 , ..., vl }.
• Montrer que si tous les degrés des sommets d’un graphe G non-orienté simple sont supérieurs ou
égaux à deux, alors G admet un cycle élémentaire.
Exercice 1.11. — Montrer qu’un graphe orienté D = (V, A) admet un circuit élémentaire si d+
D (v) ≥
1 ∀v ∈ V.
Exercice 1.12. — (Caractérisation des graphes bipartis) Montrer qu’un graph G est biparti si
et seulement si G ne contient pas de cycle impair.
GRAPHES EULÉRIENS
Exercice 1.13. — (Caractérisation des graphes eulériens)
(a) Montrer qu’un graphe G non-orienté sans sommets isolés contient un cycle eulérien si et seulement si G est connexe et chaque sommet de G est de degré pair.
(b) Montrer qu’un graphe G sans sommets isolés contient une chaîne eulérienne si et seulement si
G est connexe et le nombre de sommets de degré impair de G est inférieur ou égal à 2.
Exercice 1.14. — (Justification de l’algorithme de Fleury (Fig. 1))
Algorithme de Fleury :
Entrée : Un graphe non-orienté connexe G dont tous les sommets sont de degré pair.
Sortie : Un cycle eulérien C de G.
Etape 1 : Initialisation.
Choisir un sommet u0 de G, C0 := u0 , G0 := G, i := 0.
Etape 2 : Construction du cycle.
Tant que ui n’est pas un sommet isolé faire :
Choisir une arête ei+1 = ui ui+1 de Gi incidente à ui , si possible contenue dans
un cycle de Gi .
Ci+1 := Ci ei+1 ui+1 ,
Gi+1 := Gi − ei+1 ,
i := i + 1.
Etape 3 : Fin de l’algorithme.
C := Ci ,
STOP.
Figure 1 – Algorithme de Fleury.
Soient Ci , Gi et ui la suite, le graphe et le sommet de la i-ième itération de l’Etape 2 de l’algorithme
de Fleury appliqué au graphe G pour 1 ≤ i ≤ k, où k est le nombre d’itérations de l’Etape 2.
(a) Montrer que les ensembles d’arêtes de Ci et de Gi forment une bipartition de l’ensemble des
arêtes de G.
(b) Montrer que Ci est une chaîne simple d’extrémités u0 et ui .
(c) Montrer que Gi contient une chaîne eulérienne d’extrémités u0 et ui .
(d) Montrer qu’une suite C construite par l’algorithme de Fleury est un cycle eulérien de G.
Exercice 1.15. — Montrer que pour un graphe D orienté les conditions suivantes sont équivalentes :
(a) Il existe une partition des arcs de D en circuits élémentaires.
(b) Il existe une partition des arcs de D en circuits.
−
(c) d+
D (v) = dD (v) ∀v ∈ V (D).
Feuille 1
3
Exercice 1.16. — (Caractérisation de l’existence d’un circuit eulérien) Montrer qu’un graphe
orienté D sans sommet isolé possède un circuit eulérien si et seulement si D est connexe et d+
D (v) =
d−
(v)
∀v
∈
V
(D).
D
GRAPHES ORIENTÉS SANS CIRCUIT
Exercice 1.17. — (Caractérisation des graphes orientés sans circuit) Soit D un graphe orienté.
Montrer qu’il existe un ordre topologique de D si et seulement si D est sans circuit.
Exercice 1.18. — Soit D un graphe orienté. Montrer qu’il existe une partition {A1 , A2 } des arcs de
D telle que les graphes partiels de D induits par A1 et A2 soient sans circuits.
Exercice 1.19. — (Justification de l’algorithme Ordre Topologique (Fig. 2))
Algorithme Ordre Topologique :
Un graphe orienté D.
Sortie : Un ordre topologique de D ou un circuit de D.
Entrée :
Etape 0 : Initialisation.
D0 := D, i := 1.
Etape 1 : Choix du sommet.
Tant qu’il existe v ∈ V (Di ) tel que d−
Di (v) = 0 faire :
Di+1 := Di − v, vi := v, i := i + 1.
Etape 2 : Arrêt avec un ordre topologique.
Si V (Di ) = ∅, alors STOP avec v1 , . . . , vn où n est le nombre de sommets de D.
Etape 3 : Construction d’un circuit.
Choisir un sommet u1 de Di , P0 := ∅, j := 1.
tant que uj ∈
/ V (Pj−1 ) faire :
Pj := uj Pj−1 ,
Choisir un arc uj+1 uj de Di , j := j + 1,
Etape 4 : Arrêt avec un circuit.
STOP avec le circuit C := Pj−1 [uj−1 , uj ] + uj uj−1 .
Figure 2 – Algorithme Ordre Topologique.
ARBRES
Exercice 1.20. — Montrer que le nombre d’arêtes d’un arbre à n sommets est n − 1.
Exercice 1.21. — Montrer qu’un graphe non-orienté est un arbre si et seulement si pour toute paire
x, y de sommets il existe une et une seule chaîne simple entre x et y.
Exercice 1.22. — (Caractérisation de l’existence d’un arbre couvrant) Montrer qu’un graphe
G non-orienté admet un arbre couvrant si et seulement si G est connexe.
Exercice 1.23. — ∗ Soient G1 et G2 deux arbres sur le même ensemble V de sommets. Montrer que
pour toute arête e1 de G1 il existe une arête e2 de G2 telle que G1 − e1 + e2 et G2 + e1 − e2 soient des
arbres.
4
2A –
ALGORITHME DE MARQUAGE
Exercice 1.24. — (Justification de l’algorithme de Marquage Orienté (Fig. 3))
Algorithme de Marquage Orienté :
Entrée : Un graphe orienté D et un sommet s de D.
Sortie : L’ensemble S des sommets qui peuvent être atteints depuis s par un chemin dans D,
et un ensemble F d’arcs de D tel que (S, F ) soit une s-arborescence.
Etape 0 : Initialisation.
S1 := {s}, i := 1 et A1 := ∅.
Etape 1 : Marquage.
Tant qu’il existe un arc uv de D tel que u ∈ Si , v ∈
/ Si faire :
Si+1 := Si ∪ {v},
Ai+1 := Ai ∪ uv,
i := i + 1.
Etape 2 : Fin de l’algorithme.
S := Si , F := Ai , STOP.
Figure 3 – Algorithme de Marquage Orienté.
Exercice 1.25. — Un guide emmène trois randonneurs pour une ascension du Mont Blanc, une femme,
son mari et un célibataire. Ils doivent traverser une cheminée étroite (au plus deux personnes peuvent
l’emprunter en même temps) et difficile (l’aide du guide est indispensable pour les randonneurs). Depuis
le départ de la randonnée, le célibataire courtise la femme et le mari est très jaloux. Pour éviter tout
incident, le guide ne veut pas laisser le célibataire en tête à tête avec la femme ou avec le mari. Comment
peut-il faire traverser la cheminée à ses trois clients en respectant ces contraintes ?
Exercice 1.26. — (Caractérisation de l’existence d’une s-arborescence couvrante)
Soit s un sommet d’un graphe orienté D. Montrer que les conditions suivantes sont équivalentes :
(a) Pour tout sommet p de D, il existe un chemin de s à p dans D.
(b) Pour tout sous-ensemble X de sommets de D contenant s mais pas tous les sommets de D, il
existe au moins un arc de D qui sort de X.
(c) Il existe une s-arborescence couvrante de D.
Téléchargement