55 0 8MB
Exercices de Théorie des Graphes EFREI L3/L'3 Année 2008/2009
Travaux Dirigés de Théorie des Graphes Enoncés des exercices
Rappels - Notion principales sur les graphes Graphe - arête - sommet Graphe orienté - arc - point d'entrée - point de sortie Chemin - Boucle - Circuit Graphe valué Matrice d'incidence - Matrice d'adjacence
Exercice 1 - Conseil d'administration Le Conseil d'Administration de l'institut X est composé de 7 personnes : Mesdames D et P et Messieurs G, H, K, S et V. Chacune de ces personnes influence un certain nombre de ses collègues, conformément au tableau ci-dessous : M. ou Mme
Influence
D
G, H, P, S, V
G
Personne
H
G
K
G, H, P, V
P
G, H
S
G, H, K, P, V
V
G, H, P
Représentez, au moyen d'un graphe – en explicitaant les sommets et les arcs du graphe – les jeux d'influence (« sphère d'influence ») au sein du conseil.
Exercice 2 - Bouteilles Claude dispose d'une bouteille contenant huit litres de vin. Il a dans sa cave une bouteille vide de cinq litres, et une autre tout aussi vide de trois litres. Il désisre partager le vin en deux parts de quatre litres chacune sans utiliser aucun autre moyen de mesure. Indiquez-lui la façon de procéder au moyen d'un graphe dans lequel chaque sommet possède une étiquette représentant la quantité de vin contenue dans les bouteilles de cinq et trois litres. Vous devez pour cela :
Hervé BARBOT
page 1
Exercices de Théorie des Graphes – – –
définir le graphe que vous utilisez de façon formelle (sommets, arcs) ; énoncer le problème à résoudre en terme de graphe et de problème que l'on résoud de façon classique sur un graphe ; tracer le graphe.
Exercice 3 On définit une relation R sur l'ensemble des 9 premiers entiers naturels non nuls comme suit : x R y ⇔ x est un diviseur de y 1. Représenter cette relation par un graphe orientés. 2. Déterminer à partir du graphe l'ensemble des nombres pairs et l'ensemble des nombres impairs.
Exercice 4 Soit le graphe G = ( X , U ) représenté par le graphique suivant :
1. Représenter la matrice d'adjacence associée, et d'incidence aux arcs du graphe G. 2. Déduire à partir de la matrice associée le degré du sommet x2. 3. Retrouver le résultat de la deuxième question à partir de la matrice d'incidence aux arcs.
Exercice 5 Etude des différentes représentations machine possibles pour un graphe. Vous prendrez comme exemple le graphe ci-contre. Remarque : les valeurs indiquées à côté des arcs sont les numéros des arcs. Vous ferez d'abord l'exercice dans le cas de graphe non valué. Ensuite, vous apporterez les modifications nécessaires à vos réponses dans le cadre de graphe valué.
Hervé BARBOT
page 2
Exercices de Théorie des Graphes Vous utiliserez un pseudo-code, ou C. Dans un premier temps, pour chacune des représentations possibles : 1) 2) 3)
Définissez les structures de données Représentez graphiquement le graphe ci-dessus selon ces structures de données Ecrivez les formules ou algorithmes permettant de satisfaire aux opérations de bases telles que : - nombre (/ liste) des successeurs (/ des prédécesseurs) - recherche du successeur pour lequel l'arc a la plus faible valeur - …
Dans un deuxième temps, discutez de l'efficacité de telle ou telle représentation pour effectuer telle ou telle opération
Exercice 6 - Détection de circuit - Algorithme de Rosalind-Marimond Si un graphe est sans circuit, alors il existe un sommet qui n'a pas d'antécédent et il existe un sommet qui n'a pas de successeur 1) 2)
Ecrire un algorithme permettant de détecter si un graphe contient ou non un circuit Dérouler l'algorithme sur l'exemple suivant :
succ
1 5
2 3 4 7 8 7 10 12 11
4 8 11 12
5 12
6 13 10
7 8 10 12 11
9 57
10 5
11 12
12 ∅
Exercice 7 - Chemins élémentaires et hamiltoniens Soit les dominos suivants : BE 1
TE
SE 2
ME
VE 3
CU
LE 4
SE
TE 5
LE
RE 6
MI
Règles : 1. on commence par "BE-TE" et on joue de la gauche vers la droite uniquement 2. deux dominos peuvent être mis côte-à-côte si la 2ième partie du 1er domino forme un mot avec la 1ère partie du 2nd domino et bien évidemment un domino ne peut être utilisé qu'une seule fois… 1) 2) 3)
Construire un graphe avec la règle 2 Donner toutes les configurations possibles du jeu avec les règles 1 + 2 Chemin élémentaire : ne contient pas 2 fois le même sommet Donner toutes les configurations totales (incluant tous les dominos) Chemin hamiltonien : élémentaire et contient tous les sommets
Exercice 8 - Connexité d'un graphe Soit x et y deux sommets d'un graphe, x et y ont une relation de connexité si et seulement si il existe une chaîne entre x et y ou bien x = y
Hervé BARBOT
page 3
Exercices de Théorie des Graphes x et y ont une relation de forte connexité si et seulement si il existe un chemin de x à y et de y à x ou bien x = y Un graphe est dit [fortement] connexe si tous ses nœuds ont deux à deux la relation de [forte] connexité. Une composante [fortement] connexe est un ensemble de nœud qui ont deux à deux la relation de [forte] connexité ; et tel qu'aucun nœud de cet ensemble à la relation de [forte] connexité avec un élément en dehors de la composants. 1) 2)
Ecrire un algorithme qui permet de déterminer la composante fortement connexe contenant un sommet donné. Ecrire un algorithme qui permet de trouver toutes les composantes fortement connexes d'un graphe.
Exercice 9 -- Passeur, chèvre, chou et loup Une chèvre, un chou et un loup se trouvent sur la rive d'un fleuve ; un passeur souhaite les transporter sur l'autre rive mais, sa barque étant trop petite, il ne peut transporter qu'un seul d'entre eux à la fois. Comment doit-il procéder afin de ne jamais laisser ensemble et sans surveillance le loup et la chèvre, ni la chèvre et le chou ?
Exercice 10 -- Allumettes Deux joueurs disposent de 2 ou plusieurs tas d'allumettes. A tour de rôle, chaque joueur peut enlever un certain nombre d'allumettes de l'un des tas. Le joueur qui retire la dernière allumette perd la partie. 4) 5)
Modéliser ce jeu à l'aide d'un graphe dans le cas où on dispose au départ de 2 tas de 3 allumettes chacun, et où un joueur peut enlever une ou deux allumettes à chaque fois. Que doit jouer le premier joueur pour gagner la partie à coup sûr ?
Exercice 11 -- Echiquier Essayez d'exprimer en termes de graphes les problèmes suivants : 1) Peut-on placer huit dames sur un échiquier sans qu'aucune d'elles ne puisse en prendre une autre ? 2) Un cavalier peut-il se déplacer sur un échiquier en passant sur chacune des cases une fois et une seule ? 3) Combien doit-on placer de dames sur un échiquier 5x5 afin de contrôler toutes les cases ?
Exercice 13 -- Quadrillage
Est-il possible de tracer une courbe, sans lever le crayon, qui coupe chacun des 16 segments de la figure ci-dessus ?
Hervé BARBOT
page 4
Exercices de Théorie des Graphes Exercice 15 -- Algorithme de parcours dans un arbre On souhaite représenter un "dictionnaire" sous la forme d'un arbre. 1) Dessiner l'arbre permettant de contenir les mots ABAT, ABIME, ACTE, ACTUEL. 2) Ajouter le mot SOUTE. 3) Ajouter le mot SORT. 4) Ajouter le mot SOU. 5) Expliquez comment, à l'aide d'un tel arbre, il est possible de déterminer si un mot donné appartient ou non au dictionnaire. 6) Ecrire l'algorithme d'une fonction qui détermine si un "mot" appartient ou non à un "dictionnaire" ("mot" et "dictionnaire" sont les paramètres de cette fonction).
Exercice 16 - Mise en oeuvre d'un arbre 1) Décrivez des représentations possibles d'un arbre. 2) Dessinez la représentation mémoire de l'arbre obtenu à la question 4 de l'exercice précédent.
Exercice 17 -- Permutations autour d'une table ronde 1. Un groupe de 9 élèves se réunit chaque jour autour d'une table ronde. Combien de jours peuvent-ils se réunir si l'on souhaite que personne n'ait 2 fois le même voisin ? 2. Même question pour 10 élèves, 11 élèves, n élèves. 3. 9 élèves, mais avec 2 tables, l'une à 4 places et l'autre de 5 places.
Exercice 19 -- Plan de table et incompatibilités Un groupe de 8 personnes se retrouve pour dîner. Le graphe ci-contre représente les "incompatibilités d'humeur" (ex. A ne s'entend pas avec B). Comment déterminer un plan de table pour que la soirée se passe bien ?
Exercice 20 - Coloration de carte On veut colorier chaque région administrative française (métropole + Corse) de telle sorte que deux régions voisines ne soient pas de la même couleur. -
Représenter le problème sous la forme d'un graphe. Décrivez et déroulez l'algorithme permettant de résoudre ce problème.
Hervé BARBOT
page 5
_-'-_-
t-
\)
{ __
__ L,_i:-
_,_,
-
-t ------ -t! --
-
-
i-.. -r -
]--l-----
|
:-.--.
--
,--J-1-t ,.--__1--:L_f_.-
_ J:j_:_l: :-_:+:__.j**_1. _::.i -:, | _-- l,_ -- - -- it : l-- _t l :- -: ! - - - .
_*-+--ir:j:*
_3 -l_ l_ =-lT.11\s:-I9$)S,,tj =-i-t 'r r i I
>+$dÈi*): l{ I -=i ----
rl_r_
:... -/ I .-\
l-_+__ q-:-i--J'--r
;: - -. .
r
. : --
., -.
---stH:lc-Ls $:. . i----. ----ll -1=--
t
t _-,j-:l -r-:*.-l _ .__J*,_--
_-aI_lï_1_ ----1:_, -.,1
=
I I
I
I
t-,
i
il