Passer au contenu principal
Tangente
AnalyseNotion · Glossaire

retour sur trace

Le retour sur trace, ou backtracking, est une méthode algorithmique qui construit progressivement une solution à un problème de contraintes. À chaque étape, elle prolonge une solution partielle tant que cela reste possible ; devant une impasse, elle revient au dernier choix et essaie une autre branche de l’arbre de recherche.
Bifurcation du retour sur trace dans le mini-sudoku Le choix 2 pour la première case mène à une impasse, puis le retour permet d'essayer 1 et de fixer la case suivante à 2. Choix pour r1c1 2 → impasse 1 r1c2 = 2
Le premier essai mène à une impasse immédiate ; le retour au nœud de choix ouvre la branche 1, où la case suivante vaut 2.
Sommaire

Ce que vous allez apprendre

  • Suivre la construction progressive d’une solution dans un arbre de recherche.
  • Voir sur un mini-sudoku comment un essai autorisé conduit à une impasse puis à un recul.
  • Distinguer retour sur trace, recherche exhaustive et choix glouton.
  • Repérer les limites liées à un test tardif, à un élagage incorrect et à une profondeur non bornée.

En clair

Dans un sudoku, on peut inscrire un nombre autorisé dans une case vide, puis passer à la suivante. Si une case finit sans aucun nombre possible, le choix précédent était mauvais : on l’efface et on en essaie un autre.
Ce mouvement d’essai, de détection d’un blocage et de recul est le retour sur trace. L’ordinateur ne recommence pas nécessairement depuis le début : il reprend au dernier choix encore modifiable.

Définition

Le retour sur trace, aussi nommé algorithme de retour arrière ou backtracking, est une méthode générale de recherche pour les problèmes combinatoires, notamment les problèmes de satisfaction de contraintes. Elle construit une solution candidate par décisions successives. Chaque nœud de l’arbre de recherche représente une solution partielle, et chaque branche ajoute un choix.
Après chaque ajout, l’algorithme vérifie si la solution partielle peut encore être prolongée sans violer les contraintes. Si aucun prolongement valide n’existe, la branche est une impasse : l’algorithme remonte au dernier nœud où un autre choix reste disponible. Une solution complète est obtenue lorsque toutes les décisions demandées satisfont les contraintes ; selon l’objectif, la recherche peut alors s’arrêter ou continuer pour énumérer d’autres solutions.
L’abandon précoce d’une solution partielle invalide élague tout le sous-arbre qui en dépend. Ce gain n’est toutefois pas garanti sur chaque problème : si les contraintes détectent peu d’impasses avant les derniers niveaux, une grande partie des combinaisons peut encore être visitée. L’ordre des choix et la rapidité des tests influencent donc fortement le temps de recherche.

Un exemple, pas à pas

Considérons un mini-sudoku 4 × 4, découpé en blocs 2 × 2. Chaque ligne, colonne et bloc doit contenir une fois les nombres 1, 2, 3 et 4. Les lignes initiales sont :
· · 3 4
3 4 1 2
· 1 4 ·
· · · ·
1. Dans la case de la première ligne et de la première colonne, les contraintes autorisent 1 ou 2. Essayons d’abord 2.
2. La case suivante de la première ligne n’accepte alors aucun nombre : 1 figure déjà dans sa colonne, 2 est déjà dans la ligne, et 3 comme 4 sont aussi présents dans cette ligne. La branche est donc impossible. Cette bifurcation montre l’essai, l’impasse et le retour.
3. Revenons à la première case et choisissons 1. La case suivante est alors forcée à 2. En poursuivant les mêmes contrôles, on obtient les lignes 1 2 3 4 ; 3 4 1 2 ; 2 1 4 3 ; 4 3 2 1.
4. Le contrôle est refaisable : chacune des quatre lignes, des quatre colonnes et des quatre blocs 2 × 2 contient exactement 1, 2, 3 et 4. La grille complète satisfait donc toutes les contraintes annoncées.

En pratique

Pour résoudre un sudoku, le retour sur trace choisit une case vide, teste une valeur compatible et annule ce choix si une case devient impossible. Une déduction directe reste préférable lorsqu’une seule valeur est autorisée ; l’essai intervient quand plusieurs choix subsistent.
Dans un problème d’emploi du temps, chaque décision peut affecter un horaire à une activité, sous réserve de disponibilités et d’absence de conflit. Si une affectation partielle empêche de placer une activité restante, l’algorithme revient sur une affectation antérieure.
Pour énumérer des configurations combinatoires, la méthode convient lorsque la validité d’une solution partielle se teste tôt. Une exploration exhaustive sans retour anticipé reste possible, mais elle examine aussi les prolongements de choix déjà incompatibles.

À ne pas confondre

Retour sur trace et recherche exhaustive. Une recherche exhaustive énumère toutes les solutions complètes envisagées ; le retour sur trace peut abandonner une solution partielle dès qu’elle ne possède plus de prolongement valide. Dans le mini-sudoku, il rejette la branche commençant par 2 sans compléter le reste de la grille.
Retour sur trace et algorithme glouton. Un algorithme glouton conserve à chaque étape un choix jugé localement préférable, sans revenir normalement sur les décisions passées. Le retour sur trace, lui, mémorise des choix alternatifs : l’apparition d’une impasse déclenche précisément leur réexamen.

Limites et pièges

Un test trop faible élague peu. Si une contradiction n’est visible qu’au dernier choix, presque tout le sous-arbre est parcouru. Il faut tester les contraintes dès qu’elles deviennent décidables, sans rejeter une branche encore prolongeable.
Un rejet injustifié supprime des solutions. L’élagage est correct seulement si l’impasse prouve qu’aucune extension valide n’existe. Un simple choix peu prometteur ne suffit pas ; il faut alors ordonner les essais, pas déclarer la branche impossible.
Trouver une solution ne prouve pas son unicité. L’arrêt à la première grille complète établit seulement l’existence d’une solution. Pour tester l’unicité, la recherche doit continuer jusqu’à trouver une deuxième solution ou épuiser toutes les autres branches.
La terminaison dépend de l’espace exploré. Sur un arbre fini, l’examen systématique des choix finit par réussir ou épuiser les branches. Avec une profondeur non bornée, une branche infinie peut monopoliser la recherche ; une limite de profondeur ou une autre stratégie devient alors nécessaire.

Pour aller plus loin

algorithme — Situer le retour sur trace parmi les procédures finies, ordonnées et exécutables qui transforment des données en résultat.
analyse combinatoire — Replacer l’arbre de choix dans l’étude du dénombrement et des configurations discrètes.
Continuez avec Tangente

Explorez les mathématiques autrement

Retrouvez nos magazines, podcasts et jeux pour explorer les mathématiques autrement.

Découvrir les offres