Examen MEDIAN RO03 2010 Jacques Carlier
Problème : Etude de l’algorithme GLOUTON
Soit S un ensemble fini d’éléments e et I une famille donnée de sous-ensembles de S
satisfaisant les conditions (M0) et (M1) :
(M0) : l’ensemble vide appartient à I,
(M1) : tout sous-ensemble d'un ensemble de I appartient à I.
Ces sous-ensembles sont appelés sous-ensembles indépendants.
On note c une valuation de S à valeurs entières positives ou nulles (c : S).
La valeur d’un sous-ensemble de S sera la somme des valeurs de ses éléments.
On se propose de calculer un ensemble indépendant de valeur maximale et on étudie pour cela
l’algorithme GLOUTON. Cet algorithme permettra dans certains cas de calculer une solution
optimale (cas des matroïdes, Partie III), dans les autres cas une solution heuristique.
Algorithme GLOUTON :
J ; ( est l’ensemble vide)
Tant qu’il existe e S - J avec J {e} I faire {
Choisir l’élément e de c(e) maximum avec J {e} I ;
Remplacer J par J {e};
}
PARTIE I : Quelques cas particuliers (8 pts)
A. Le problème du stable de valeur maximale.
Soit G = (V, E, c) un graphe non orienté dont les sommets sont valués positivement par c (c :
V). On pose S = V (l’ensemble des sommets), et on dit que J est un ensemble indépendant
si c’est un stable du graphe G.
a) Justifiez brièvement les conditions (M0) et (M1).
b) Appliquez l’algorithme GLOUTON au graphe G1 ci-dessous, en rapportant la liste des
sommets choisis successivement par l’algorithme.
c) Calculez un stable de valeur maximale et comparez avec la solution calculée en b).
1
3
2
4
5
Graphe G
1
8
6
7
1
5
B. Le problème du couplage de valeur maximale
Soit G = (V, E, c) un graphe non orienté dont les arêtes sont valuées positivement, (c : E).
On pose S = E (ensemble des arêtes), et on dit que JE est un ensemble indépendant s’il
forme un couplage de G.
a) Justifiez brièvement les conditions (M0) et (M1).
b) Appliquez l’algorithme GLOUTON au graphe G2 ci-dessous, en rapportant la liste des
arêtes choisies successivement par l’algorithme.
c) Calculez un couplage de valeur maximale pour G2. Comparez à la solution calculée en b.
C. Intérêt de l’algorithme GLOUTON
Nous montrerons ultérieurement que cet algorithme est optimal pour la recherche de la forêt
de valeur maximale.
a) Est-il optimal pour le problème du stable de valeur maximale ? Est-ce surprenant ?
b) Est-il optimal pour le problème du couplage de valeur maximale ?
c) On se place dans le cas général de l’algorithme GLOUTON : (S, I) est tel que les
conditions (M0) et (M1) sont satisfaites. Montrez que l’algorithme GLOUTON choisit les
éléments de S dans un ordre décroissant de valuations : J = {e1, e2, e3, …, ep}, avec
c(e1) c(e2) c(e3) … c(ep). J désignera aussi dans la suite la solution fournie par
l’algorithme GLOUTON et p son cardinal.
1
2
3
4
5
Graphe G
2
6
4
5
1
2
PARTIE II : Le problème de la forêt maximale (6 pts)
A. Application de l'algorithme GLOUTON
Soit G = (V, E, c), |V|=N et |E|= M, un graphe non orienté dont les arêtes sont valuées
positivement. On pose S = E (ensemble des arêtes), et on dit que J est un ensemble
indépendant si (V, J) est un graphe sans cycle, appelé aussi forêt.
a) Justifiez brièvement les conditions (M0) et (M1).
b) Appliquez l’algorithme GLOUTON au graphe G3 ci-dessous, en rapportant la liste
des arêtes choisies successivement par l’algorithme. Comptez le nombre d’arêtes
choisies.
B. Complexité
a) On suppose qu’une méthode pour tester si un graphe a un cycle coûte O(N). Quelle est
la complexité de l’algorithme GLOUTON, en fonction de N et de M pour le problème
de la forêt maximale ?
b) On modifie l’algorithme de la façon suivante :
Algorithme GLOUTON BIS
J ; ( est l’ensemble vide)
Classez les éléments de S en ordre de valeurs décroissantes :
S {e1, e2, e3, …, eM}, avec c(e1) c(e2) c(e3) c(eM);
Pour j = 1 à M faire
Remplacer J par J {ej} si J {ej} est indépendant;
Comparez les ensembles J calculés par GLOUTON et GLOUTON BIS.
c) Quelle est la complexité de l’algorithme GLOUTON BIS en fonction de N et de M ?
Quel est l’intérêt de l’algorithme GLOUTON BIS ?
C. Propriété
On considère le problème de la forêt de valeur maximale. S=E est l’ensemble des arêtes d’un
graphe G = (V,E), et A E un sous-ensemble d’arêtes.
Quel est le nombre d’arêtes d’une forêt du graphe G(A) = (V,A) en fonction du nombre r de
ses composantes connexes et du nombre N de ses sommets ? On pourra décomposer G(A) en
ses composantes connexes et raisonner composante connexe par composante connexe.
1
2
3
4
5
Graphe G
3
7
9
5
8
6
6
7
4
3
PARTIE III : Les Matroïdes (6 pts)
Le but de cette partie est de montrer que l’algorithme GLOUTON est optimal dans le cas des
« matroïdes », notion que nous définissons ci-dessous :
On se place dans la suite dans le cas où (S, I) est un matroïde c.a.d. satisfait outre les
conditions (M0) et (M1), la condition (M2) :
(M2) : Pour tout sous–ensemble A de S, indépendant ou non, les sous-ensembles de A,
qui sont indépendant et maximal au sens de l’inclusion, ont la même cardinalité(1). Cette
cardinalité sera notée rang(A).
a) On veut comparer la valeur de J = {e1, e2, e3, …, ep} fournie par l’algorithme
GLOUTON, à la valeur d’une solution optimale J’, maximale au sens de l’inclusion.
On note J’ = {f1, f2, f3, …, fq}, avec c(f1) c(f2) c(f3) … c(fq).
Montrez d’abord que p=q.
b) On raisonne par l’absurde en supposant que J n’est pas optimale. Il existe alors un plus
petit indice k tel que c(fk) > c(ek). Montrez que pour tout indice i, 1 i k, ou bien fi
{e1, e2, e3,… ,ek-1}, ou bien l’ensemble {fi, e1, e2, e3,…, ek-1} n’est pas indépendant.
Notons que c(fi) = c(ei) ne signifie pas nécessairement que fi = ei. De manière
générale, il peut y avoir des éléments différents mais de même valuation.
c) En déduire de b) que {e1, e2, e3,… ,ek-1} est un sous-ensemble de A = {f1, f2, f3, …, fk,
e1, e2, e3,… ,ek-1} indépendant et maximal au sens de l'inclusion.
d) Après avoir remarqué que {f1, f2, f3, …, fk} est un sous-ensemble indépendant de A de
cardinal strictement supérieur à k-1, en déduire l’optimalité de l’algorithme
GLOUTON dans le cas des matroïdes.
e) Qu’en concluez-vous pour le problème de la forêt de valeur maximale ? Justifier.
(1) : Un ensemble indépendant est dit maximal au sens de l’inclusion si aucun autre ensemble
indépendant ne le contient.
Examen FINAL RO03 2010 Jacques Carlier
Exercice 1 (3 pts) : Flot
Note : Sur la Figure 1, les capacités des arcs sont encadrées.
1. Le flot rapporté ci-dessus est-il complet ? Justifier.
2. Appliquer l’algorithme de Ford-Fulkerson en partant du flot rapporté sur le graphe ci-
dessus : on appliquera la règle « premier marqué, premier examiné ». On rapportera
les chaînes améliorantes et les flots successifs (redessiner les graphes successifs avec
leur marquage).
3. Donner une coupe minimale.
4. On a la possibilité de créer dans le graphe biparti, une seule nouvelle liaison, de
capacité 5. Quelles sont les nouvelles liaisons permettant d’améliorer le flot ?
Exercice 2 (3 pts) : Cheminement
On veut chercher un chemin de valeur minimale allant de x1 à x5.
1. L’algorithme de Bellman est-il applicable à ce graphe ? Justifier votre réponse.
2. L’algorithme de Dijkstra est-il applicable à ce graphe ? Justifier votre réponse.
3. Appliquer l’algorithme qui est applicable et rapporter le tableau correspondant, et une
arborescence de chemins minimaux.
A
2
s
1
3
Figure 1 :
Flot sur un réseau
10
B
C
D
p
15
5
0
10
10
10
10
0
10
5
5
5
5
0
5
0
15
20
20
10
15
x1
Figure 2 : graphe G
1
0
6
6
7
1
0
x3
x2
x5
x4
1
2
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !