Algorithmique - Semestre d’Automne 2011/2012
´
ECOLE POLYTECHNIQUE F´
ED´
ERALE DE LAUSANNE
Sections d’Informatique et de Syst`emes de Communication
Serie d’exercices 10 28 November 2011
1. Recherche dans un labyrinthe
On aimerait utiliser l’algorithme DFS du cours pour trouver la sortie d’un labyrinthe. Notre
moele de labyrinthe est un graphe dont les sommets sont des chambres et les arˆetes sont des portes
entre les chambres. L’un des nœuds est le d´epart, et un autre nœud est la sortie.
a) Donner une variante de l’algorithme DFS qui donne explicitement le chemin des nœuds visit´es.
On pr´ecise que simplement voir si un nœud est marqu´e n’est pas consid´er´e une visite de ce nœud.
Indice: En d´escendant, il faut emoriser le retour ´a prendre afin d’obtenir une suite de sommets
adjacents.
b) Montrer qu’une arˆete quelconque apparaˆıt au plus deux fois sur le chemin.
c) Montrer que le chemin pour trouver la sortie est de longueur au plus 2n3.
d) Donner une famille de graphes (pour des narbitrairement grands) avec un sommet de d´epart
tel que tout chemin de longueur 2n4 omet au moins un sommet.
e) Montrer que dans un graphe quelconque, tout chemin de longueur < n 1 omet au moins un
sommet.
2. Tri topologique Voici un graphe orient´e:
a) Trier les sommets de ce graphe topologiquement.
b) Prouver le th´eor`eme 7.3. du cours.
3. L’algorithme de Dijkstra
Consid´erer le graphe suivant:
1
Algorithmique - Semestre d’Automne 2011/2012
3
1
32
4
5
6
7
8
9
10
11
12
1
3
1
1
2
6
6
4
10
1
2
6
4
1
2
1
2
3
a) Appliquer l’algorithme de Dijkstra sur ce graphe. Commencer au sommet 1.
b) Modifier l’algorithme de Dijkstra pour qu’il fournisse pour chaque sommet vle plus court chemin
du sommet de d´epart s`a vet l’ensemble des sommets qui font partie de ce chemin.
4. Dijkstra et Moore-Bellman-Ford
On consid´ere un graphe G= (V, E) avec des poids pisur les arˆetes (iE), et deux sommets s
et t.
a) Si l’on multiplie les poids par une constante, le plus court chemin de s´a treste-t-il le mˆeme?
b) Si l’on ajoute aux poids une constante c, le plus court chemin de s´a t, reste-t-il le mˆeme ?
c) Si les poids des arˆetes sont non-negatifs, on peut appliquer ou bien Dijkstra ou bien Moore-
Bellman-Ford. Lequel des algorithmes est alors pr´ef´erable? Donner une famille de graphes tel
que si le nombre de sommets ncroˆıt, l’un des algorithmes est O(1) tandis que l’autre O(n3).
5. Dijkstra et Programmation Dynamique
a) Comment peut-on se servir de l’algorithme de Dijkstra pour r´esoudre le probl´eme du Knapsack
0/1?
b) Utiliser l’algorithme de Dijkstra pour r´esoudre le probl´eme LCS. (Donner la construction du
graphe.)
c) Comparer dans chacun des cas ci-dessus le nombre d’arˆetes du graphe obtenu avec le temps de
parcours de l’algorithme classique DP pour r´esoudre le probl´eme.
d) Peut-on utiliser l’algorithme de Dijkstra pour r´esoudre le probl´eme de disposition optimale de
parenth´eses?
2
1 / 2 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 !