Nom : Pr´ enom : Groupe :

publicité
Nom :
Prénom :
Groupe :
Interrogation de Graphes
–
Durée : 30 minutes
(répondre sur la feuille)
Exercice 1.
A. Ce graphe est-il connexe ?
B. Est-il eulérien (et pourquoi) ?
C. Quel est le plus grand degré ?
D. Ce graphe est-il régulier (et pourquoi) ?
E. Quelle est la longueur du plus petit cycle élémentaire ?
(élémentaire = pas deux fois le même arc)
F. Est-il planaire ? Si oui montrez-le par un dessin.
(planaire = il est possible de dessiner ce graphe avec des arêtes
droites ou courbées, sans qu’aucune ne se croise)
Exercice 2 (Parcours de graphes). Expliquez la différence entre un parcours en largeur (BFS) et un
parcours en profondeur (DFS).
Exercice 3 (Dijkstra). A l’aide du pseudo-code ci-dessous, exécutez à la main l’algorithme de Dijkstra
sur le graphe donné, en prenant pour sommet initial A. L’union des plus courts chemins ainsi calculés
forme un arbre, qui devra être bien visible sur le dessin. Vous laisserez également, et volontairement, des
traces de votre exécution sur le dessin, afin de me convaincre que vous avez bien exécuté l’algorithme.
vsrc .score ← 0
for all v ∈ V \ {vsrc } do
v.score ← +∞
f inished ← ∅ // Sommets qu’on a fini de traiter
while f inished 6= V do
vtmp ← min{V \ f inished} // Choisi le sommet non-fini de
plus petit score
for all v ∈ neighbors(vtmp ) do
if v ∈
/ f inished then
if vtmp .score + weight((v, vtmp )) < v.score then
v.score ← vtmp .score + weight((v, vtmp ))
v.parent ← vtmp
f inished ← f inished ∪ {vtmp }
1
E
9
6
F
2
11
C
14
9
10
A
7
B
15
D
Téléchargement