Page perso de Loïc Dayot

Résolution d’un Sudoku

lundi 31 janvier 2011, par Loïc Dayot

Le jeu du Sudoku a envahi les magazines. J’y ai joué quelque fois pour passer le temps, tout en songeant que voilà un jeu prise de tête sans intérêt culturel (en comparaison avec des mots croisées par exemple). Ce qui m’intéressait plus, c’est comment un automate pourrait résoudre ces jeux de sudoku. Après plusieurs mois à me dire que ça pourrait être intéressant, j’ai plongé...

Je me suis donc amusé à programmer en PHP avec un rendu en HTML (donc visible dans un navigateur) la résolution de jeux de sudoku.

La première tâche a été de représenter le jeu, ce qui se fait très bien dans un tableau. L’enregistrement du jeu se fait sur la base de la valeur et des possibilités de chaque case.

Le raisonnement logique a consisté :
 si une case n’a qu’une possibilité, on peut donner la valeur à cette case
 si dans une ligne, une valeur ne peut se mettre qu’à un endroit, c’est celui là
 même chose pour une colonne
 même chose pour un carré (un bloc)

La suite a été plus compliqué et pour arrêter de me prendre la tête, je me suis permis l’émission d’hypothèse qui est soumise ensuite au raisonnement logique plus haut.

Bref, on boucle entre logique et hypothèse. Cela résout tous les jeu que j’ai pu essayer, mais il reste une faille et une insatisfaction.

La faille d’abord : les hypothèses ne sont pas entrée dans un boucle récurrente, ce qui veut dire que si on fait une première hypothèse qui nous amène à une situation où il faudrait en faire une seconde qui s’avère mauvaise, on peut revenir sur la dernière hypothèse, mais pas sur la première qui est peut-être erronée.

L’insatisfaction, c’est de ne pas avoir eu le courage de résoudre par pure logique seulement. Il aurait fallu pour cela jouer avec les combinaisons de listes de possibilités dans les lignes, colonnes et blocs, ce que je n’ai pas fait. L’informaticien normalement constitué est partisan du moindre effort pour lui même avant de l’être pour la machine, en tout cas c’est mon cas.

Mais je ne désespère pas, un jour peut-être...


 Tout sur le Sudoku sur Wikipédia y compris les méthodes de résolution informatiques.

Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.