Cours Conception et analyse d`algorithmes 1. Graphe d`évacuation

Transcription

Cours Conception et analyse d`algorithmes 1. Graphe d`évacuation
École polytechnique
Promotion 2002
Majeure informatique
Cours Conception et analyse d'algorithmes TD no 3 ots et couplages
1. Graphe d'évacuation.
On considère un graphe symétrique G = (X, E) ayant n sommets, et deux sous-ensembles
Y et Z de X (non nécessairement disjoints) ; les éléments de Y sont les places et les éléments
de Z les issues.
Un plan d'évacuation est un ensemble de chemins dans le graphe tel que deux d'entre eux
n'ont pas de sommet commun et ou chacun d'eux mène d'une place à une issue. Déterminer
un plan d'évacuation optimal consiste à trouver un plan d'évacuation contenant le maximum
de chemins.
Un problème de ot avec contraintes sur les sommets est un problème de ot classique
auquel on ajoute des contraintes supplémentaires dénies par un ensemble de nombres si ,
i = 1, 2, . . . , n, où chaque si est associé à un sommet xi de X , les contraintes exprimant que
pour i = 1, . . . , n, la somme des ots entrants en xi doit être inférieure à si .
a. Montrer que la détermination d'un plan d'évacuation optimal peut se ramener à un
problème de ot avec contraintes sur les sommets.
b. Montrer que cette nouvelle contrainte peut se traduire par des contraintes portant
uniquement sur des capacités d'arcs pour un autre graphe dont on précisera la construction.
c. En déduire un algorithme de recherche d'un plan d'évacuation optimal.
2. Couplages et ensembles couvrants.
Dans un graphe symétrique (non orienté) (X, E), on rappelle qu'un couplage est un sousensemble F de E tel que deux arêtes de F n'ont pas d'extremité commune.
Un ensemble couvrant est un sous ensemble C de X tel que toute arête {x, y} a au moins
une de ses extremités dans C .
On se propose de démontrer ici le théorème de König. Celui-ci arme que pour un graphe
biparti le nombre d'arêtes d'un couplage maximal est égal au nombre minimal de sommets
d'un ensemble couvrant. On considère un graphe biparti ; c'est un graphe G = (Y ∪ Z, E)
dans lequel chaque arête a un sommet dans Y et l'autre dans Z .
a. Transformer G en un réseau de transport G0 tel que le ot maximal de G0 détermine un
couplage maximal dans G. Une coupe de G0 est alors déterminée par un sous-ensemble Y 0
de Y et un sous-ensemble Z 0 de Z .
1
b. Montrer que toute coupe de G0 détermine un ensemble couvrant de G dont le nombre de
sommets est inférieur ou égal à la capacité de la coupe
c. Réciproquement montrer que tout ensemble couvrant Y1 ∪ Z1 de G détermine une coupe
dont la capcité est égale à |Y1 | + |Z1 |.
d. Déduire le théorème de König des questions qui précèdent.
e. Au cours du bal annuel il y a n femmes et n hommes, chaque femme choisit k < n cavaliers
possibles pour la soirée.
Leurs choix sont tels que chaque homme a été choisi exactement k fois. Montrer en
utilisant le théorème de König que l'on peut répartir les cavaliers de façon telle que toutes
les personnes puissent danser.
3. Recouvrement par des chemins
Un recouvrement d'un graphe orienté G = (S, A) est un ensemble P de chemins sans
sommet commun tel que tout sommet de S soit inclus dans exactement un chemin de P .
Les chemins peuvent commencer et se terminer n'importe où, et éventuellement ne contenir
qu'un sommet. Un recouvrement minimal est un recouvrement par chemins contenant le
moins de chemins possibles.
a.
Donner un algorithme ecace permettant de trouver un recouvrement minimal par
chemins d'un graphe orienté sans circuit G = (S, A). On pourra considérer le graphe G0 =
(S 0 , A0 ) avec
S 0 = {x0 , . . . , xn } ∪ {y0 , . . . , yn }
A0 = {(x0 , xi ), i ∈ S} ∪ {(yi , y0 ), i ∈ S} ∪ {(xi , yj ), (i, j) ∈ A}
b.
quoi ?
L'algorithme fonctionne-t-il pour les graphes orientés contenant des circuits ? Pour-
c. Déduire de ce qui précède et du théorème de König (voir exercice 2) le résultat suivant
(théorème de Dilworth) :
Dans un ensemble partiellement ordonné le nombre minimum de chaînes (une chaîne est
un ensemble constitué d'éléments deux à deux comparables) qui recouvrent l'ensemble est
égal au nombre maximum d'éléments deux à deux incomparables.
4. Mariages. Des hommes et des femmes font appel à des agences de rencontre pour se
trouver un conjoint (de sexe opposé), une même personne pouvant s'inscrire dans plusieurs
agences.
On suppose que chacune des agences dispose du dossier de certains des hommes et de
certaines des femmes, et peut arranger à priori un mariage entre n'importe quel homme
et n'importe quelle femme dont elle a les dossiers. (Les considérations de préférences entre
les candidats au mariage ne rentrent pas en ligne de compte ici). La seule limitation est le
nombre de mariages que peut arranger l'agence i qui est limité à bi .
Exprimer le problème de rendre le nombre de mariages maximum sous forme d'un ot
sur un graphe dont on précisera les sommets, les arcs et les capacités ?
2
5. Matroïde des couplables.
On considère un graphe symètrique (non orienté) (X, E).
Un sous-ensemble Y de X sera dit couplable s'il existe un couplage C ⊂ E tel que tout
sommet de y ∈ Y est extrémité d'une des arêtes de C .
a. Soit Y et Z couplables, et soit C et D les couplages correspondants. Si |Y | > |Z|,
montrer qu'il existe un couplage C 0 dont l'ensemble des extrémités contient Z et un y ∈ Y \Z
(on pourra considérer les composantes connexes du graphe ayant pour ensemble d'arêtes
C ∪ D).
b. En déduire que l'ensemble des sous-ensembles de X couplables forme une famille de
parties libres d'un matroïde.
c. Soit X un ensemble ni et A = A1 , A2 , . . . , Ap une famille de partie de X . Un sous
ensemble T de X tel que |T | ≤ p est un transversal pour A si on peut réordonner les éléments
de T = {t1 , t2 , . . . , tq } et les Ai de façon telle que ti ∈ Ai pour 1 ≤ i ≤ q .
Montrer que l'ensemble des transversaux forme un matroïde.
d. On suppose donné X et pour chaque élément xi de X un bénéce bi . Soit A =
A1 , A2 , . . . , Ap une famille de partie de X . Donner un algorithme qui calcule le transversal
de A de bénéce optimal.
3

Documents pareils