Forçage
Forçage
Techniques associées
Est-ce de la devinette ? La controverse des Chaînes de contraintes
Les Chaînes de contraintes ne sont pas de la devinette lorsqu'elles servent de technique de preuve. Vous examinez temporairement chaque branche depuis un point de départ choisi, propagez chaque branche logiquement, et ne conservez que les conclusions que toutes les branches soutiennent ou les conclusions forcées par une contradiction.
La différence clé avec la devinette est l'engagement. Une devinette choisit une branche et continue comme si elle était vraie. Une chaîne de forçage compare toutes les branches pertinentes depuis le point de départ et n'agit que lorsque la comparaison prouve quelque chose.
Les Chaînes de contraintes sont moins élégantes que les techniques à motifs, mais leurs conclusions sont prouvablement correctes lorsque chaque branche a été vérifiée avec précision.
Chaîne de forçage par Case
Partez d'une case à deux candidats {A, B}. Propagez les implications pour chaque branche. Comparez les résultats.
Contradiction : une branche est invalide, donc la case doit être l'autre candidat.
Convergence sur un placement : les deux branches forcent le même chiffre dans la même case éloignée.
Convergence sur une élimination : les deux branches éliminent le même candidat de la même case.
Chaîne de forçage par région (chaîne de forçage par chiffre)
Partez des 2-3 positions d'un chiffre dans une maison. Explorez chaque position comme une branche. Mêmes trois types de déductions.
Le forçage par Case est efficace lorsque les cellules à deux candidats ont des implications à longue portée. Le forçage par région est efficace lorsque la position d'un chiffre a de forts effets en cascade.
Réseau de forçage : étendre le nombre de branches
Réseau de forçage par Case : cellules avec 3-6 candidats. Réseau de forçage par région : maisons avec 4-6 positions pour un chiffre. Plus de branches, plus coûteux, mais peut trouver des déductions que Chaînes de contraintes ne peut pas.
La logique est identique. Seul le nombre de branches diffère.
Le moteur de propagation
Chaque branche se propage via les singletons nus, les singletons cachés, les candidats verrouillés, et les paires nues, de façon itérative jusqu'à stabilisation. Une seule supposition peut se propager à travers des dizaines d'étapes intermédiaires sur tout le plateau.
Lorsque deux branches aboutissent à la même conclusion par des chemins complètement différents, la convergence prouve la conclusion avec certitude.
Les trois types de déductions
Contradiction : une branche produit un état invalide. Cette hypothèse est fausse. Le cas le plus courant.
Convergence sur le placement : toutes les branches forcent le même chiffre dans la même case. Moins courant mais décisif.
Convergence sur l'élimination : toutes les branches éliminent le même candidat de la même case. Le type le plus subtil.
Quand utiliser les techniques de forçage
Dernier recours logique. S'applique après l'échec des techniques à motifs et des chaînes plus simples.
Les Chaînes de contraintes à 2-3 branches sont essayés en premier. Les réseaux de forçage à 3-6 branches sont plus coûteux et généralement réservés à plus tard. Les deux sont de niveau 12 (Extrême).
Pour les solveurs informatiques, le forçage borné est un puissant moteur de preuve, mais pas automatiquement complet. La complétude n'est atteinte que si la recherche peut s'étendre assez loin pour couvrir les hypothèses nécessaires, ce qui s'approche du backtracking exhaustif. En pratique, le forçage se décrit mieux comme une recherche logique contrôlée que comme la garantie qu'un solveur à profondeur fixe résoudra toute grille valide.
Une note philosophique sur l'élégance et la complétude
Les techniques à motifs révèlent des relations structurelles et sont plus élégantes. Mais il existe des grilles valides qui exigent une logique de niveau forçage. Les techniques de forçage sont le filet de sécurité qui rattrape toutes les grilles que les techniques à motifs ne peuvent traiter.
L'approche la plus satisfaisante : essayer d'abord toutes les techniques à motifs, puis recourir au forçage seulement quand la grille l'exige vraiment.
Résumé
Les Chaînes de contraintes et les réseaux de forçage comptent parmi les techniques logiques les plus puissantes, au niveau 12 (Extrême). Ils explorent chaque branche à partir d'un point de départ choisi, propagent les conséquences et comparent les résultats. Les déductions viennent par contradiction, convergence sur le placement ou convergence sur l'élimination. Ils sont le dernier recours avant le backtracking par force brute ; s'ils sont étendus sans limites pratiques, ils deviennent une preuve par recherche complète, mais le forçage borné à la manière humaine reste une technique avancée ciblée.
Techniques associées