Algorithmique - ROB3 TD6 - Introduction aux graphes

Transcription

Algorithmique - ROB3 TD6 - Introduction aux graphes
Algorithmique - ROB3
TD6 - Introduction aux graphes
Exercice 1 (Le duc de Densmore)
Le duc et la duchesse de Densmore ont organisé une soirée avec quatre
couples d'amis. Certaines personnes, issues de couples diérents, se sont serrées la main. A
la n du repas, le duc de Densmore demande à chacun combien de mains il a serrées. Il reçoit
neuf réponses diérentes. Combien de mains la duchesse de Densmore a-t-elle serrées?
Au cours d'une soirée, les convives se serrent la main les uns les autres et
chacun se souvient du nombre de fois qu'il ou elle a serré des mains. Á la n de la soirée, le
maître de cérémonie additionne le nombre de fois que chaque invité a serré une main. Montrer
que le résultat est pair en démontrant le lemme de la poignée de main : si G = (S, A) est un
graphe non orienté alors
X
degré(s) = 2|A|
Déduire de la question précédente qu'il y a un nombre pair de convives ayant
serré un nombre impair de mains.
Le duc de Densmore connut une n tragique puisqu'il périt dans l'explosion
qui détruisit son château. Son testament fut détruit; or celui-ci avait tout pour déplaire à
l'une de ses sept ex-femmes.
Peu avant le crime, elles étaient toutes venues au château et elles jurèrent que ce fut
la seule fois où elles s'y étaient rendues. Elles peuvent donc toutes être coupables, mais le
dispositif ayant provoqué l'explosion avait été dissimulé dans une armure dans la chambre
du duc, et sa pose avait nécessité plus d'une visite. Donc la coupable a menti : elle est venue
plusieurs fois. On dispose des déclarations suivantes :
1. Ann dit avoir rencontré Betty, Charlotte, Félicia et Georgia;
2. Betty dit avoir rencontré Ann, Charlotte, Edith, Félicia et Helen;
3. Charlotte dit avoir rencontré Ann, Betty et Edith;
4. Edith dit avoir rencontré Betty, Charlotte et Félicia;
5. Félicia dit avoir rencontré Ann, Betty, Edith et Helen;
6. Georgia dit avoir rencontré Ann et Helen;
7. Helen dit avoir rencontré Betty, Félicia et Georgia.
Tracer le graphe des rencontres, dont les sommets représentent les sept femmes et où l'on
trace une arête entre deux sommets lorsque deux femmes se sont rencontrées. Montrer que
le graphe devrait être triangulé, c'est-à-dire que tout cycle de longueur supérieure à 3 admet
au moins une corde (une arête reliant deux sommets non consécutifs du cycle). En déduire
qui a tué le duc de Densmore (en considérant que les six innocentes n'ont pas menti!).
Question 1.1
Question 1.2
s∈S
Question 1.3
Question 1.4
On considère un groupe de n ≥ 2 personnes. Pour tout couple (a, b) de personnes dans
le groupe, soit a et b sont amies, soit a et b ne sont pas amies. Chaque personne a donc un
certain nombre d'amis dans le groupe. On vise à montrer la propriété P suivante : il existe
toujours au moins deux personnes ayant exactement le même nombre d'amis dans un groupe.
Reformuler la propriété P en terme de graphe.
Dans un graphe à n sommets, quel est l'ensemble des degrés possibles pour
un sommet donné?
Dans un graphe à n sommets, si on fait l'hypothèse que tous les sommets
sont de degrés diérents, quel est l'ensemble des degrés des sommets du graphe?
Montrer qu'il n'est pas possible de construire un graphe dont l'ensemble des
degrés est celui identié dans la question précédente. En déduire que P est vériée.
Exercice 2 (Nombre d'amis dans groupe)
Question 2.1
Question 2.2
Question 2.3
Question 2.4
Les deux représentations principalement utilisées pour un graphe sont les suivantes :
la représentation par matrice d'adjacence consiste en une matrice carrée M d'ordre n
telle que M = 1 si (i, j) est un arc (ou une arête) de G, et M = 0 sinon.
la représentation par liste d'adjacence consiste en un tableau Adj de n listes. Pour
tout sommet i de S, la liste Adj[i] contient la liste des sommets j de S tels que (i, j)
est un arc (ou une arête) de G.
Quelle est la taille en mémoire requise pour représenter un graphe de n sommets et m arcs (respectivement arêtes) selon les deux représentations?
Si G est non orienté, déterminer pour chacune de ces représentations, la
complexité des primitives suivantes :
1. fonction Adjacent(i, j : sommet) : booléeen, qui rend "vrai" si i et j sont adjacents;
2. fonction Degré (G : graphe, i : sommet) : entier, qui calcule le degré du sommet i
dans le graphe G.
Si G est orienté, déterminer pour chacune des représentations, la complexité
des primitives suivantes :
1. fonction Succ(i, j : sommet) : booléen, qui rend "vrai" si j est un successeur de i ;
2. fonction Pred(i, j : sommet) : booléen, qui rend "vrai" si j est un prédécesseur de i ;
3. fonction Degré Extérieur(G : graphe, i : sommet) : entier, qui calcule le degré extérieur
du sommet i de G ;
4. fonction Degré Intérieur(G : graphe, i : sommet) : entier, qui calcule le degré intérieur
du sommet i de G.
Exercice 3 (Représentation de graphes et primitives élémentaires)
ij
Question 3.1
Question 3.2
Question 3.3
ij
La ville de Densmore comporte de nombreux sens uniques. Le plan de la ville est représenté
sur la gure 1. Les points stratégiques sont numérotés. Les sens uniques sont représentés
par des èches (une rue sans èche est donc à double sens). On cherche à savoir s'il est
possible à partir de tout point de rejoindre tout autre point, en respectant bien sûr les sens
de circulation.
Exercice 4 (Composantes fortement connexes et graphe réduit)
Figure 1 Plan de ville
Faire le lien entre ce problème et la notion de forte connexité d'un graphe.
Le graphe réduit R d'un graphe orienté G a pour sommet ses composantes fortement
connexes C , . . . , C et ses arcs sont dénis comme suit : (C , C ), x 6= y est un arc de R s'il
existe (i, j) arc de G avec i ∈ C , j ∈ C .
Déterminer les composantes fortement connexes du graphe que vous aurez
exhibé dans la question précédente, ainsi que le graphe réduit associé.
Montrer que le graphe réduit G associé à un graphe G quelconque ne possède
pas de circuit.
Question 4.1
1
k
x
x
y
y
Question 4.2
Question 4.3
0
Le duc de Densmore réalise les tâches suivantes pour s'habiller chaque matin : enler sa
chemise, son caleçon, ses chaussettes, son pantalon, sa cravate, ses chaussures, sa veste, et
serrer sa ceinture. Il s'agit dans cet exercice de proposer un algorithme permettant au duc
de Densmore d'enler sans mal ses vêtements.
Identier les contraintes de précédence entre ces diérentes tâches puis représenter ce problème par un graphe dont les sommets sont les tâches et les arcs les contraintes
de précédence entre celles-ci.
Un tri topologique d'un graphe orienté orienté sans circuit G = (S, A) est
une liste L des sommets de G tel que si G contient l'arc (x, y), x apparaît avant y dans
L. Proposer un algorithme de tri topologique d'un graphe basé sur le fait qu'un sommet de
degré entrant nul peut être placé en tête d'un tri topologique. Quelle est la complexité de cet
algorithme?
Appliquer l'algorithme au graphe construit dans la première question, et interpréter le résultat.
Exercice 5 (Tri topologique)
Question 5.1
Question 5.2
Question 5.3

Documents pareils