Académique Documents
Professionnel Documents
Culture Documents
À un graphe G représenté par liste d’adjacence à partir d’un dictionnaire en Python, on associe un
dictionnaire des distances, c’est à dire un dictionnaire ayant les mêmes clés mais où les valeurs sont les listes
des distances aux sommets adjacents (dans le même ordre). Si on considère le graphe G
1
10 100
30
5 2
10
50 60
4 3
20
0
1 1
2
2 1
3
4 5
3
Donner les dictionnaires des listes d’ajacence et distances les represésentant en Python.
Exercice 2. On suppose que le graphe G est donné par la liste de ses sommets, et une liste d’arrêtes L
dont les éléments sont des triplets de la forme [s, t, d ]. Un tel triplet représente une arrête s −→ t de
longueur d.
1
2.1 Écrire une fonction creerListeAdjacenceValuee(S,L) qui construit la représentation de G par le dic-
tionnaire des listes d’adjacences et le dictionnaire des listes de distances correpondantes à partir de la
liste des sommets S et la listes d’arrêtes L. Cette fonction renvoi une liste composée des 2 dictionnaires
représentant le graphe et les distances.
2.2 Vérifier que le résultat de cette fonction appliquée aux graphes ci-dessus correspond bien à votre réponse.
• un tableau pere pour les prédecesseurs sur le plus court chemin venant du sommet x0 .
Étape k:
• À l’issue de l’étape k − 1, on a déjà traité k − 1 sommets (hors x0 ): T = {x0 , . . . , xk−1 }. Les deux
tableaux d et pere ont été mis à jour.
• Parmi les sommets non traités, on en choisit un xk tel que d[xk ] soit minimal.
Exercice 4.
4.1. Ecrire une fonction Dijkstra(G,Gdist,s0) qui recoit les données d’un graphe orienté valué G, presenté
par listes d’adjacences, et renvoie le dictionnaire des plus courtes distances de s0 vers les autres sommets
de G.
2
4.2. Calculer la table des distances minimales à partir du sommet s0 = 1 du graphe G ci-dessus. Comparer
avec les résultats du cours.
4.3. Faire de même avec les deux autres graphes du à partir du sommet s0 = 0.
Exercice 5.
5.1. Modifier la fonction de l’exercice 2 afin qu’elle calcule aussi le tableau père représentant l’arbre des plus
courts chemins à partir de s0 . Ici on contruira un dictionnaire pere ayant pour clés les sommets et
pour valeurs les numéros des sommets pères. La fonction renvera une liste composée des 2 dictionnaires
représentant les plus courtes distances et les pères.
5.2. Tester votre fonction pour les graphes et les sommets précédent.
Exercice 6.
6.1. Écrire une fonction reconstituerChemin(pere,x) qui reçoit un arbre représenté par le dictionnaire
pere et un noeud x, et renvoie le cheminement (sous forme de liste) de la racine à ce noeud.
6.2. Tester votre fonction pour les graphes et les sommets précédent.