Plus court chemin. - Université d`Orléans

publicité
Université d’Orléans
Faculté des Science
Département Mathématiques
Licence STIC, Semestre 4
Graphes et Algorithmes
Année 2005-2006
Plus court chemin.
Exercice 1.
(1) Existe-t-il une arborescence A à 8 sommets numérotés 1 à 8 de façons à ce que,
dans un parcours en profondeur, l’ordre de visite soit 1, 2, 3, 4, 5, 6, 7, 8 et
l’ordre de post-visite soit
(a) 5, 3, 2, 4, 7, 6, 8, 1 ?
(b) 4, 3, 5, 2, 7, 6, 8, 1 ?
S’il y a une solution, est-elle unique ?
(2) De façon plus générale, si on se donne deux permutaions de 1 à n, à quelle
condition existe-t-il un arborescence de n sommets dont les permutations sont
les ordres de visites et de post-visite ? S’il y a une solution, est-elle unique ?
Exercice 2.
Trois couples au bod d’une rivière disposent d’un bateau pouvant transporter 2 personnes au plus. Sachant que chacun des maris est trop jaloux pour accepter que sa femme
se trouve sans lui en compagnie d’un autre homme, est-il possible de faire traverser les
six personnes ?
Exercice 3.
P aris − mM ontparnasse
1h
P aris −
55 Lyon
mm
m
55
m
m
55
mmm
2h
m
m
55
mm
m
m
m
55
mmm
55
N antes
55
WWWW
WWWW
554, 5h
WWWW
3,
5h
WWWW
55
WWWW
55
WWWW 7h
WWWW
55
WWWW
55
WWWW
WWWW
55
WWWW
WWWW
5
WWWW
1h
Lyon
Grenoble
4, 5h
3h
M arseille
(1) Indiquer l’ordre de visite lors d’un parcours en largeur du graphe (le début est
le sommet le plus haut et le plus à gauche parmi les sommets les plus haut).
(2) Indiquer l’ordre de visite lors d’un parcours en profondeur du graphe (même
début) et l’ordre de postvisite.
(3) Déterminer la longueur du plus court chemin de Nantes à Grenoble en utilisant
l’algorithme de Floyd (On indiquera les différentes étapes de l’algorithme).
(4) Déterminer la longueur du plus court chemin de Nantes à Grenoble en utilisant
l’algorithme de Dijkstra (On indiquera les différentes étapes de l’algorithme).
Exercice 4.
Soit G un graphe orienté valué, s0 un sommet de G. On cherche à déterminer le poids
minimal des chemin reliant s0 aux autres sommets en utilisant l’algorithme suivant :
on pose d(s0 ) = 0 et d(s) = +∞ pour s 6= s0 . On visite alors le sommet s0 au moyen
de la procédure suivante :
visiter un sommet s
si s n’a pas encore \’et\’e visit\’e
soit s’ le successeur de s le plus proche de s
d(s’)=d(s)+poids(s,s’)
visiter s’
fin si
Quelle est la complexité de l’algorithme ? Pourquoi est-il incorrect (il y a plusieurs
raison, trouver des contre-exemples pour chacune).
Téléchargement