Automatiser la réponse au Sudoku
Bonjour,
J'ai essayé de programmer en Delphi un "solutionneur" de Sudoku. Hélas mon algorithme n'est pas assez performant, en effet il trouve la solution des niveaux facile et moyen, quelques difficiles mais aucun diabolique.
Cqfd : Le Sudoku est une grille carrée de 81 cases séparé en 9 carré de 9 cases. elle est pré-remplie avec quelques chiffres et le but est de tout remplir avec cette logique : il doit y avoir tous les chiffres de 1 à 9 sur chaque ligne, sur chaque colonne et dans chaque carré de 9 cases.
Personnellement j'ai bouclé sur chaque case en testant toutes les combinaisons et si il n'y avait qu'une possibilité alors je l'écrivais.
Merci à vous savants amis :)
Re: Automatiser la réponse au Sudoku
Citation:
Envoyé par -Sylvain Leray-
Bonjour,
Personnellement j'ai bouclé sur chaque case en testant toutes les combinaisons et si il n'y avait qu'une possibilité alors je l'écrivais.
Toute la qualité de l'algorithme va dépendre des règles qui permettent de savoir qu'il n'y a qu'une seule solution dans une case.
D'une manière générale, on ne peut pas tout déduire par de simple règle, il faut donc passer par une méthode énumérative.
On prend s'il n'y a pas de case avec une seule possibilité, on prend une case avec peu de possibilité (disons 2) et on crée deux sous-problèmes qu'on essaie de résoudre de manière indépendante et ainsi de suite. On crée une arborescence de sous-problèmes avec des grilles éventuellement infaisables.
Je crois que l'article SuDoku dans wikipédia (au moins en anglais) est bien fait et donne des pistes vers différentes approches algorithmiques.