TD5 - LISIC

publicité
L2 mathématiques : fiche de T.D.5 - Les graphes
28 novembre 2016
1
Les graphes non orientés
1
9
5
4
6
2
10
7
3
8
Exercice 1 : Questions de cours
1. A partir de l’arbre ci-dessus, donnez la matrice d’adjacence.
2. Appliquer sur le graphe ci-dessus un parcours en largeur à partir du sommet 6, à partir de votre matrice
d’adjacence et en appliquant l’algorithme vu en cours.
3. Appliquer sur le graphe ci-dessus un parcours en profondeur à partir du sommet 6, à partir de votre
matrice d’adjacence et en appliquant l’algorithme vu en cours.
Exercice 2 : Recherche d’un parcours eulérien
Un parcours (chaîne, chemin, cycle, circuit) eulérien est un parcours qui passe une et une seule fois par
chaque arc (arête) du graphe. Il est connu qu’il existe un parcours eulérien si au plus 2 sommets d’un graphe
non orienté sont de degré impair.
1. Existe-t-il un tel parcours dans le graphe ci-dessus ? Si oui indiquez-le, sinon donnez un sous-graphe de
ce graphe qui permette un parcours eulérien.
2. Ecrire une fonction qui permet à partir de la représentation d’un graphe, de renvoyer si un parcours
eulérien peut exister (vrai) ou pas (faux).
1
2
Les graphes orientés
2
A
3
C
5
5
1
3
2
S
E
1
15
1
B
2
D
6
1. Donnez la matrices d’adjacence de ce graphe orienté.
2. Appliquer l’algorithme de Dijkstra-Moore sur le graphe orienté pour rechercher le plus court chemin
entre S et E.
3. Reprendre les 2 premières questions sans tenir compte de l’orientation du graphe.
3
Exemple de graphe d’application
Exercice 3 : Recherche d’un chemin : le plus court "à vol d’oiseau"
A partir de ce graphe vous allez rechercher un chemin qui sera le plus court "à vol d’oiseau" entre une
ville de Roumanie et sa capitale (Bucarest). L’algorithme consistera, à partir de la ville de départ, de choisir
la ville suivante en prenant parmi ses villes voisines celle qui est à la plus petite distance "à vol d’oiseau" de
Bucarest.
2
1. En prenant comme ville d’origine la ville de Timisoara, donnez le chemin par lequel, suivant cet algorithme, vous irez jusqu’à Bucarest.
2. Ecrire un algorithme qui permet à partir d’une matrice d’adjacence représentant les distances du graphe
(et les voisinages) et un tableau représentant les distances "à vol d’oiseau" de Bucarest, de trouver le
chemin le + court "à vol d’oiseau" entre une ville et Bucarest. Le chemin sera affiché.
Exercice 4 : Recherche d’un chemin le plus court : algorithme A*
A partir des mêmes informations vous allez rajouter à la distance "à vol d’oiseau" la distance entre les
villes.
L’algorithme consiste à établir un arbre de telle sorte que :
1. la racine est la ville de départ ;
2. pour chaque feuille on calcule une valeur d’estimation qui se calcule en ajoutant la distance parcourue
depuis la racine jusqu’à la feuille en fonction de la valeur des arcs à laquelle on ajoute la distance "à
vol d’oiseau" de cette ville à Bucarest ;
3. à partir de la feuille de valeur d’estimation la plus petite on cherche ses voisins et on recommence à
partir de l’étape 2.
On termine quand la feuille choisie est celle contenant la ville d’arrivée (ici Bucarest).
Ecrire l’algorithme du A* qui prendra en paramètre une ville de départ et qui donnera le chemin le plus
court pour arriver à Bucarest.
3
Téléchargement