Comment un GPS trouve-t-il le plus court chemin sans essayer tous les itinéraires ?
L'algorithme de Dijkstra fixe à chaque étape le sommet le plus proche non encore traité. Sur un graphe de six villes, il trouve le trajet A → C → B → D → E → F de longueur 12 en six étapes. Sa correction repose sur la positivité des distances.
Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.
Pourquoi cette question : un modèle d'introduction
Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.
Quand j'utilise une application de navigation, elle trouve un itinéraire en une seconde, alors qu'il existe des milliards de chemins possibles entre deux villes. En NSI, j'ai découvert l'algorithme de Dijkstra, publié en 1959. J'ai voulu comprendre son principe, l'appliquer à la main sur un petit réseau, et surtout comprendre pourquoi on peut être sûr qu'il donne le chemin le plus court.
L'enjeu et les notions du programme
Modéliser un réseau routier par un graphe pondéré et justifier la correction d'un algorithme glouton par un raisonnement sur les inégalités.
Mathématiques
- Raisonnement par l'absurde, inégalités (seconde)
- Minimum d'un ensemble fini (seconde)
- Pour aller plus loin : graphes (maths expertes)
Numérique et sciences informatiques
- Graphes pondérés, listes d'adjacence (terminale)
- Algorithme de Dijkstra, routage OSPF (terminale)
Le plan de l'exposé en 9,5 min
1. Introduction
1 minOn représente un réseau routier par un graphe : les sommets sont des villes, les arêtes des routes, chacune pondérée par sa longueur. Problématique : comment trouver le plus court chemin entre deux villes sans énumérer tous les chemins ?
2. NSI : l'algorithme pas à pas
3,5 minGraphe : A–B 4, A–C 2, C–B 1, B–D 5, C–D 8, C–E 10, D–E 2, D–F 6, E–F 2. On cherche le chemin de A à F.
On attribue à chaque sommet une distance provisoire (0 pour A, l'infini ailleurs). À chaque étape, on choisit le sommet non traité de plus petite distance, on le fixe, et on met à jour ses voisins si passer par lui est plus court.
Étape 1 : A (0) ; B = 4, C = 2. Étape 2 : C (2) ; B devient 3 (via C), D = 10, E = 12. Étape 3 : B (3) ; D devient 8. Étape 4 : D (8) ; E devient 10, F = 14. Étape 5 : E (10) ; F devient 12. Étape 6 : F (12). En remontant les prédécesseurs : A → C → B → D → E → F, longueur 12.
3. Mathématiques : pourquoi le résultat est juste
3,5 minPropriété : quand un sommet est fixé, sa distance est la vraie plus courte distance depuis A. Raisonnons par l'absurde : supposons qu'au moment où l'on fixe u avec la distance d(u), il existe un chemin plus court, de longueur L<d(u). Ce chemin part de A (fixé) et doit, à un moment, quitter l'ensemble des sommets fixés par un premier sommet non fixé v.
La distance provisoire de v est au plus la longueur du début de ce chemin, elle-même au plus L car les poids sont positifs. Donc d(v)≤ L<d(u) : l'algorithme aurait dû choisir v avant u. Contradiction.
La positivité des poids est essentielle : avec un poids négatif, la fin du chemin pourrait raccourcir le trajet, et l'algorithme se tromperait. Coût : environ (n+m)log n opérations pour n sommets et m arêtes avec une file de priorité, contre un nombre exponentiel de chemins.
4. Conclusion
1,5 minUn GPS n'essaie pas tous les itinéraires : Dijkstra fixe les sommets dans l'ordre croissant de distance, et la positivité des poids garantit que chaque distance fixée est définitive. J'ouvre sur l'algorithme A*, qui accélère encore la recherche en estimant la distance restante à vol d'oiseau.
Ce que j'écris au tableau
Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.
si L<d(u), premier sommet non fixé v: d(v)≤ L<d(u) ⇒ contradiction
Conclusion : la réponse à la question
L'algorithme de Dijkstra trouve le plus court chemin en traitant chaque sommet une fois. Un raisonnement par l'absurde, fondé sur des inégalités, prouve qu'il ne se trompe jamais quand les distances sont positives.
Les questions probables du jury
Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.
Pourquoi B passe-t-il de 4 à 3 ?
Le chemin A → C → B mesure 2 + 1 = 3, plus court que l'arête directe A–B de 4.
Que se passe-t-il avec un poids négatif ?
Un sommet fixé pourrait être atteint plus court plus tard ; on utilise alors l'algorithme de Bellman-Ford.
Combien de chemins simples de A à F dans ce graphe ?
13 chemins qui ne repassent jamais par une même ville. Sur un vrai réseau routier, leur nombre croît exponentiellement avec la taille : d'où l'intérêt de l'algorithme.
Où retrouve-t-on Dijkstra en NSI ?
Dans le protocole de routage OSPF, où chaque routeur calcule les plus courts chemins vers les autres.
Comment retrouve-t-on le chemin et pas seulement sa longueur ?
On mémorise pour chaque sommet son prédécesseur lors de la dernière mise à jour, puis on remonte depuis l'arrivée.
Les pièges qui coûtent des points
- Fixer un sommet avant qu'il soit le plus proche.
- Oublier l'hypothèse de poids positifs.
- Confondre plus court chemin et circuit passant par toutes les villes.
Revoir les notions
Autres questions : graphes et réseaux
- Comment classer les pages du web par importance en ne regardant que les liens entre elles ?
- Peut-on parcourir tous les ponts d'une ville une seule fois chacun ? Le problème des ponts de Königsberg
- Est-il vrai que tout le monde sur Terre est relié à n'importe qui par une chaîne de six connaissances ?
- Combien de créneaux faut-il au minimum pour organiser des examens sans qu'aucun élève n'en ait deux en même temps ?
Préparer l'oral, pas seulement le contenu
Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.
Méthode : traiter une question de Grand oral →