Graphes et Algorithmes de Graphes
Livret de Travaux Dirigés
Durée :
6 séances
Encadrants :
MJ. Huguet
N. Chaabane
L. Malta
Ce livret contient plus d’exercices que ceux qui seront traités lors des séances
de TD.
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 degré sortant 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 ré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. 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é mont (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. On veut développer une heuristique utilisant un parcours en
largeur. Pour la comprendre, mettre en œuvre les étapes ci-dessous :
a. Appliquer un parcours en largeur à partir de A et donner
l’arborescence de parcours obtenue. On considère que les voisins d’un sommet
sont rangés par ordre alphabétique.
b. Donner une coloration minimale pour l’arborescence obtenue. On
supposera que les couleurs sont numérotées à partir de 1 et que l’on affecte au
sommet A la couleur 1.
c. Proposer une heuristique pour le problème d’optimisation de
coloration de graphes.
Question 2. Adapter l’algorithme de parcours en profondeur pour coder cette
heuristique.
Question 3. De quel sommet initial peut-on démarrer le parcours ?
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 !