Graphes / 4IS
Livret de Travaux Dirigés
2015-2016
Durée :
6 séances
Encadrants :
MJ. Huguet
M. Nattaf
Lors des séances de TD, nous traiterons les exercices surlignés en gris.
Les exercices supplémentaires vous permettront de travailler seul ou en groupe
les notions vues en cours. Les enseignants pourront répondre à des questions
sur votre travail personnel lors des séances de TD.
Merci à tous ceux qui ont contribué à l’élaboration de ces sujets d’exercices
1
Partie 1. Définitions et Modélisation
Exercice 1.1
On considère le graphe orienté ci-dessous.
Question 1. Donner sa représentation par matrice d’adjacence
Question 2. Donner sa représentation par liste d’adjacence
Question 3. Pour ceux deux représentations,
- Comment identifier un sommet sans successeur ?
- Comment calculer le degsortant d’un sommet donné ? Donner le
principe de calcul (sans écrire l’algorithme dans le détail).
- Comment calculer le degré entrant d’un sommet donné ? Donner le
principe de calcul (sans écrire l’algorithme dans le détail).
Exercice 1.2.
Montrer que dans un graphe, le nombre de sommets de degré impair est soit
nul soit toujours pair.
Exercice 1.3.
Une chèvre, un chou et un loup se trouvent initialement 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. De plus il ne doit
veiller à ne jamais quitter une rive sur laquelle se trouvent ensemble le loup et
la chèvre (car le loup mangerait la chèvre), ou bien la chèvre et le chou (car la
chèvre mangerait le chou).
Le passeur veut établir une suite de traversées qui sout ce problème et qui
minimise le nombre de traversées en s’appuyant sur un graphe modélisant les
traversées possibles.
Question 1. Préciser les éléments suivants de modélisation :
- que représentent les sommets et les arcs du graphe ? les arcs sont-ils
orientés ?
- quelles sont les informations associées à chaque sommet et à chaque
arc ?
- à quoi correspond une solution du problème sur ce graphe (justifier).
Question 2. Dessiner le graphe.
Question 3. Le graphe révèle-t-il plusieurs solutions au problème ? Quel est le
problème de graphe que l’on cherche à résoudre ?
2
Partie 2. Parcours de graphes et Applications
Exercice 2.1.
Soit le graphe orienté ci-dessous
Question 1. Appliquer un parcours en largeur d’abord à partir du sommet A.
Donner l’arborescence obtenue et la numérotation des sommets (marqués
comme visités).
Question 2. Appliquer un parcours en profondeur d’abord à partir du sommet
A. Donner l’arborescence obtenue et la numérotation des sommets (marqués
comme visités).
Exercice 2.2.
Soit le graphe
G
ci-dessous.
Question 1. Déterminer les composantes connexes maximales de
G
(ie. sans
orientation).
Question 2. On construit à partir de
G
, le graphe
'G
en ajoutant les arcs (B,I)
et (C,A). Donner les composantes fortement connexes maximales de
'G
Exercice 2.3.
Soit G un graphe orienté ayant
n
sommets. Combien de composantes
fortement connexes comporte un tel graphe lorsque :
1. le graphe G est sans circuit.
2. le graphe G comporte un circuit élémentaire de longueur
n
.
Exercice 2.4.
Un site web organise un service d’échanges de biens entre ses membres.
Chacun d'eux fournit certains produits et souhaite en recevoir d'autres.
Les responsables du site souhaitent organiser le troc entre les membres et
souhaitent dire à un nouveau membre potentiel s'il pourra satisfaire a priori son
besoin par l'intermédiaire des membres actuels.
Pour illustrer ce problème, on considère l’ensemble des 7 membres du tableau
ci-dessous avec leurs offres et leurs demandes.
1. Modéliser ce système de troc par un graphe.
2. Comment évaluer l'intérêt de ce système de troc ? Quels sont les membres
pouvant effectuer des échanges ?
3. Un individu I8 souhaite devenir membre de ce réseau. Il peut offrir du cochon
et souhaite recevoir des poires.
Cet individu a-t-il un intérêt à adhérer au réseau ?
3
4. Après adhésion de l’individu I8, évaluer le nouveau système de troc.
Est-il plus ou moins performant que le précédent ?
5. Que se passerait-il en termes de modélisation si un individu pouvait offrir
plusieurs produits ?
Individu
peut offrir
souhaite recevoir
I1
blé
Cochon
I2
poulet
maïs ou blé
I3
maïs
poulet ou poires ou avoine
I4
lait
Dinde
I5
avoine
Dinde
I6
poires
blé ou avoine
I7
dinde
lait
Exercice 2.5.
Une coloration de graphe est une affectation de « couleurs » aux sommets d’un
graphe. Une coloration est valide si deux sommets adjacents ne sont pas de la
même couleur. Le problème d’optimisation de coloration de graphes consiste à
déterminer le plus petit nombre de couleurs k tel qu’il existe une coloration
valide de k couleurs.
Il a été montré (voir Complexité) qu’il n’existe pas d’algorithme efficace pour
trouver cette valeur de k. On peut alors utiliser une heuristique qui va permettre
d’obtenir (efficacement) une valeur de k (non nécessairement optimale).
Soit le graphe non orienté ci-dessous.
Question 1. Une heuristique triviale consiste à définir un ensemble de n
couleurs ; puis à parcourir les sommets les uns après les autres et à leur donner
une couleur possible compte tenu des voisins déjà coloriés.
a. Proposer une valeur pour n.
b. Quel ordre peut-on prendre pour parcourir tous les sommets ?
c. Pour un sommet donné, quelle couleur va-t-on considérer en premier ?
d. Appliquer la méthode ainsi définie à l’exemple.
e. Appliquer la même méthode en prenant un sommet initial au hasard.
Trouvez-vous le me sultat en termes de nombre minimal de
couleurs.
Question 2. SI le graphe était un arbre, combien de couleurs faudrait-il pour
réaliser une coloration ?
4
Partie 3. Plus Courts Chemins
Exercice 3.1.
Soit le graphe non orienté G ci-dessous.
1. Quelle méthode peut-on utiliser pour déterminer le plus court chemin
entre le sommet A et le sommet J ? Justifier la réponse
2. Déterminer ce plus court chemin en détaillant les étapes de l’algorithme.
Pour cela, à chaque itération donner la valeurs de la matrice d[] ci-
dessous pour tous les sommets et effectuer le bon nombre d’itérations.
Dans le cas où il y a deux choix possibles, utiliser l’ordre alphabétique. A
chaque étape, entourer le sommet marqué.
3. Quelle est la suite de sommets permettant d’obtenir le plus court
chemin entre A et J et quelle est la valeur de ce plus court chemin ?
4. Si on cherche le plus court chemin de F vers C, faut-il lancer un nouvel
algorithme de Dijkstra. Justifier la réponse.
5. Même question si on cherche le plus court chemin de B vers G ? Et dans
le cas général que faut-il faire ? Justifier la réponse.
D
G
H
I
J
1 / 16 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 !