Masar
Masar
Bac Tunisie
Entraîner la reconnaissance
GR-CThéorie des graphes

Matrice d'adjacence, chemins de longueur n et plus court chemin (Dijkstra)

Idée directrice

Deux lectures complémentaires du graphe Eco-Gestion : (1) la matrice associée (d'adjacence) dont les puissances comptent les chaînes de longueur nn ; (2) l'algorithme de Dijkstra pour le plus court chemin dans un graphe valué. Attesté 2018–2022 (Dijkstra en contrôle 2022).

Signature de reconnaissance — l'énoncé se trahit ainsi

« matrice M associée à ce graphe »

« chaînes de longueur n reliant … »

« algorithme de Dijkstra » / « plus court chemin »

Sujet principal

Exercice — matrice d'adjacence et plus court chemin

4 questionsFigure fournieCorrigé masqué

Partie A. Soit le graphe non orienté GG de sommets A,B,C,DA,B,C,D (dans cet ordre) et d'arêtes AB,BC,CD,DA,ACAB,BC,CD,DA,AC.

  1. Écrire la matrice associée MM (matrice d'adjacence) du graphe GG.
  2. Calculer (M2)A,C(M^2)_{A,C}. Combien de chaînes de longueur 22 relient AA à CC ? Citer les exemples.

Partie B. Un livreur part de l'entrepôt SS vers le client TT sur le graphe valué dont les arêtes et durées (minutes) sont : S4PS\xrightarrow{4}P, S6QS\xrightarrow{6}Q, P3QP\xrightarrow{3}Q, P5TP\xrightarrow{5}T, Q2TQ\xrightarrow{2}T.

  1. Appliquer l'algorithme de Dijkstra depuis SS et dresser le tableau des distances provisoires jusqu'à clôture de TT.
  2. En déduire le plus court chemin de SS à TT et sa durée.
Voir la correction commentéeAprès avoir posé votre démarche

A.1 Idée : mij=1m_{ij}=1 si ii et jj sont adjacents, 00 sinon ; matrice symétrique, diagonale nulle. M=(0111101011011010)M=\begin{pmatrix}0&1&1&1\\1&0&1&0\\1&1&0&1\\1&0&1&0\end{pmatrix}.

A.2 Idée : (M2)ij=kmikmkj(M^2)_{ij}=\sum_k m_{ik}m_{kj} compte les sommets kk voisins à la fois de ii et de jj. (M2)A,C=mABmBC+mADmDC=1+1=2(M^2)_{A,C}=m_{AB}m_{BC}+m_{AD}m_{DC}=1+1=2 : deux chaînes de longueur 22 de AA à CC, ABCA-B-C et ADCA-D-C (le calcul complet donne M2=(3121121221311212)M^2=\begin{pmatrix}3&1&2&1\\1&2&1&2\\2&1&3&1\\1&2&1&2\end{pmatrix} ; la diagonale redonne les degrés).

B.1 Idée : Dijkstra ouvre à chaque étape le sommet provisoire le plus proche et met à jour ses voisins. Départ d(S)=0d(S)=0, les autres à ++\infty. Ouvrir SS : d(P)=4d(P)=4, d(Q)=6d(Q)=6. Ouvrir PP (44) : d(T)=4+5=9d(T)=4+5=9 ; d(Q)d(Q) reste 66 car 4+3=7>64+3=7>6. Ouvrir QQ (66) : d(T)=min(9,6+2)=8d(T)=\min(9,\,6+2)=8. Ouvrir TT (88) : terminé.

B.2 Idée : remonter les prédécesseurs. TT a été atteint via QQ, QQ via SS : le plus court chemin est SQTS-Q-T, de durée 8 min\boxed{8\ \text{min}} ; passer par PP coûterait 99 min.

Exercices d'entraînement — une nuance à la fois

Entraînement 01 / 02

Drill GR-C.1 — Lire M^3 pour compter des chaînes

2 questionsCorrigé masqué

Soit un graphe orienté dont la matrice associée MM (ordre A,B,CA,B,C) est M=(011001100)M=\begin{pmatrix}0&1&1\\0&0&1\\1&0&0\end{pmatrix}.

  1. Calculer M2M^2.
  2. Combien de chaînes orientées de longueur 22 vont de AA vers CC ?
Voir la correction commentéeAprès avoir posé votre démarche

1. Idée : produit ligne par colonne. M2=(101100011)M^2=\begin{pmatrix}1&0&1\\1&0&0\\0&1&1\end{pmatrix} (par exemple (M2)A,A=mACmCA=1(M^2)_{A,A}=m_{AC}m_{CA}=1 : le circuit ACAA\to C\to A).

2. Idée : lire ligne AA, colonne CC. (M2)A,C=mABmBC+mACmCC=1+0=1(M^2)_{A,C}=m_{AB}m_{BC}+m_{AC}m_{CC}=1+0=1 : une seule chaîne orientée de longueur 22, ABCA\to B\to C.

Entraînement 02 / 02

Drill GR-C.2 — Plus court chemin sur un petit graphe valué

2 questionsCorrigé masqué

Sur le graphe valué de sommets A,B,CA,B,C : arêtes A2BA\xrightarrow{2}B, A5CA\xrightarrow{5}C, B2CB\xrightarrow{2}C.

  1. Appliquer Dijkstra depuis AA pour obtenir d(C)d(C).
  2. Quel est le plus court chemin de AA à CC ?
Voir la correction commentéeAprès avoir posé votre démarche

1. Idée : Dijkstra depuis AA. d(A)=0d(A)=0 ; ouvrir AA : d(B)=2d(B)=2, d(C)=5d(C)=5 ; ouvrir BB : d(C)=min(5,2+2)=4d(C)=\min(5,\,2+2)=4 ; ouvrir CC : fin. d(C)=4d(C)=4.

2. Idée : le détour est plus court que l'arête directe. Plus court chemin ABCA-B-C (durée 44) ; l'arête directe ACA\to C vaut 55.

Méthode / Automatismes
  • Ordonner les sommets avant d'écrire la matrice associée.
  • Le coefficient (Mn)ij(M^n)_{ij} compte les chaînes de longueur nn de ii vers jj.
  • Dijkstra : toujours ouvrir le sommet de distance provisoire minimale non encore fixé.
Pièges classiques

Compter les sommets au lieu des arêtes dans une chaîne de longueur nn. Réinitialiser Dijkstra à chaque étape. Oublier qu'un graphe non orienté a une matrice symétrique.