IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Automatiser la réponse au Sudoku


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Deux questions :

    Combien existe-t-il de grilles complètes valides au Sudoku ?
    Combien existe-t-il de grilles incomplètes donnant une et une seule solution ?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    en fait pour la bifurcation il faut partir à l'envers
    j'ai une grille avec n chiffres placés qui conduit à une solution valide
    j'ai la grille précédente avec n-1 chiffre placés qui diffère de n par la résolution d'un bigramme sur le solveur
    si je propose la grille n-1
    le solveur va s'arrêter en n-1 si j'inhibe la bifurcation
    en testant les deux chiffres du bigramme je vais arriver
    soit à une solution non valide (non respect des contraintes)
    soit à la solution valide
    partant de n-1 je peux remonter en n-2 éventuellement 4 solutions possibles

    c'est encore dire que solveur et générateur sont toujours de même niveau

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par Médiat
    Deux questions :

    Combien existe-t-il de grilles complètes valides au Sudoku ?
    Combien existe-t-il de grilles incomplètes donnant une et une seule solution ?
    Sur wikipedia, il y a le nombre de grilles uniques, c'est assez énorme. Ensuite le nombre de grilles avec solution unique... il y en a pas mal, au moins autant que de grilles uniques par un coefficient important.

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Merci du renseignement.
    Nombre de grilles complètes aux symétries près : 5 472 730 538, ce n'est pas tant que cela.

    Pas de réponse à la deuxième question

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Un début de réponse, il faut au moins 8 cases à placer sur la grille, puis il faut pouvoir la résoudre - point à éclaircir -. De plus, il faut au moins 1 case par sous ensemble qui soit placée, mais cela ne permet pas de déterminer de manière unique la grille à utiliser - il y a 387420489 solutions pour placer un nombre par carré par exemple, sachant que certaines grilles se résolvent sans élément dans certains carrés -, il faut encore au moins 2 cases à placer.
    Le nombre minimum de cases déjà placées est de 17 ou 18 sur le net, donc il reste encore les autres cases à placer, sachant que chacune de ces grilles résultantes est une grille de Sudoku valide.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    a remarquer que lorsque tu as rempli un carré
    tu véhicules pour les cellules des lignes dont il font partie 3
    information pour six cellules sur 3 lignes
    et autant en colonne
    =3*6*3*2=144
    j'ai coutume de noter le degré de résolution d'une grille
    d'après la somme des possibilités
    pour une grille vierge je note une cellule non renseignée
    "123456789" et son poids vaut nombre de caractères de
    "123456789"=9 j'ai donc un poids de départ de 729 (9*9*9)
    et un poids d'arrivée de 81 le poids d'un sudoku vierge est ainsi
    de 729-81= 648 et le poids après un carré rempli est de 468 c'est dire que
    un carré =1/9 (11%) des informations directe donne 27.77% de l'information totale
    pour deux carrés en diagonale 22% directe 53% totale
    pour deux carrés contigus 22%directe 47% totale

    si on rentre les chiffres comme des dames non en prise

    en cherchant à chaque fois le minimum d'interaction au début
    l'information véhiculée ne donne pas grand chose et semble
    se propager par mode mode additif décroissant
    puis survient un seuil où l'information se propage sur le mode multiplicatif croissant

    en fait on peut aussi considérer deux événements
    diminution de l'incertitude
    certitude
    la diminution de l'incertitude ne pèse guère plus que son poids
    si j'ai une case notée "123456789" et si je décide qu'elle ne peut
    contenir de trois je gagne 1/9 de son information et je ne transmets probablement rien sauf si la ligne (ou la colonne ou le carré) contenant la cellule présentait deux opprtunités pour le 3
    par contre la certitude que dans cette cellule se trouve un 2 me permet de gagner 8/9 de son poids et transmet dans les cellules en relation un poids de 1 (absence de 2)

    le seuil de résolution doit se produire quand la diminution de
    l'incertitude est égale à la certitude, à partir de ce moment on arrive
    à des conséquences de niveau 2, qui peuvent entrainer des conséquences de niveau supérieur

    quand on résoud un problème le solver pour la dernière certitude apportée
    résoud toute la grille avec des poids qui font couremment 200 ou 300 dans ma notation

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Intéressant comme notation
    Une grille dite de niveau facile a combien avec ta notation ?

  8. #8
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Pour revenir à un point du début ... j'ai moi aussi écrit mon petit solveur de sudoku ( en Perl ), avec une méthode sans hypothèse (et donc sans backtrack).

    Il me satisfait dans la plupart des cas, mais bloque sur une grille, de niveau "diabolique", que j'ai pu, par contre, résoudre à la main. Je n'arrive pas à remettre le doigt sur l'élément qui m'a permis de le résoudre ... probablement une hypothèse, justement, que je tente d'éviter dans mon programme.

    Ceux qui ont des solveurs sans backtrack peuvent ils me dirent s'ils trouvent la solution de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    . . 8 2 . . 9 . .
    . 9 7 3 . . 2 4 .
    3 . . . . . . . .
    . . 3 . 8 5 6 . 1
    . . . . . . . . .
    7 . . 1 3 . 8 . .
    . . . . . . . . 8
    . 4 6 . . 3 7 2 .
    . . 9 . . 2 4 . .
    Mon solveur reste obstinément bloqué à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    4 . 8 2 . . 9 . .
    . 9 7 3 . 8 2 4 .
    3 . 2 . . . . 8 .
    9 2 3 4 8 5 6 7 1
    . . . . 2 . . . 4
    7 . 4 1 3 . 8 . 2
    2 . . . . . . . 8
    . 4 6 . . 3 7 2 9
    . . 9 . . 2 4 . .
    Ou si vous préférez, je peux vous copier la sortie de mon script sur la dernière itération, avec les possibilités restantes de chaque case.

  9. #9
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    4 1 8 2 6 7 9 5 3
    5 9 7 3 1 8 2 4 6
    3 6 2 5 9 4 1 8 7
    9 2 3 4 8 5 6 7 1
    6 8 1 7 2 9 5 3 4
    7 5 4 1 3 6 8 9 2
    2 7 5 9 4 1 3 6 8
    1 4 6 8 5 3 7 2 9
    8 3 9 6 7 2 4 1 5

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    si j'inhibe le backtrack je reste bloqué
    je vais essayer de travailler à partir de ce blocage
    pour une évaluation sans essai

  11. #11
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Citation Envoyé par random
    si j'inhibe le backtrack je reste bloqué
    C'est ce que je craignais ... Tu en restes au même point de blocage que moi ?

    La solution donnée par Miles est celle que j'ai obtenu à la main, mais j'ai dû passer par une hypothèse pour y arriver.

    Citation Envoyé par random
    je vais essayer de travailler à partir de ce blocage
    pour une évaluation sans essai
    Moi aussi ... mais c'est peut être ce qui fait l'aspect "diabolique" de la grille.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 46
    Par défaut
    Bonjour a tous
    j'ai pas lu tout le sujet
    je sais pas si vous avez intergré ces regles http://naxos.fr.free.fr/sudoku/hints.html
    dans vos algos.
    J'y travaille en Vb (connais rien d'autre) chaud pour mon niveau.
    J'en suis juste a respecter les regles de base pour l'instant ca marche.
    J'intergre les autres regles si j'y arrive.

    Sinon ma methode de départ: on rempli toutes les cases par 123456789
    et on enlève ce qui va pas.

    Bonne continuation

  13. #13
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par 2Eurocents
    La solution donnée par Miles est celle que j'ai obtenu à la main, mais j'ai dû passer par une hypothèse pour y arriver.
    Je ne fais pas d'hypothèse dans mon programme, il n'y a que l'implémentation des 3 règles précédentes...

  14. #14
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    miles pour la règle des bi(tri, tétra,quinqua)grammes

    tu l'as bloquée à 2 ou tu la laisses se dérouler ?

  15. #15
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Je la fais tourner jusque la partie entière du nombre d'élément dans un regroupement divisé par 2, soit donc 4 pour le jeu 9*9

  16. #16
    Membre averti
    Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 21
    Par défaut Résolution du Sudoku
    Salut,

    Je rattrape cette conversation avec un peu de retard... Juste pour vous dire qu'il y a 3 mois, j'ai fait un programme en Delphi qui permet de résoudre le Sudoku.
    Lorsque je vois certains messages sur le temps de réponse, je suis quand même étonné car mon programme sait résoudre tous les problèmes difficiles / expert en 1 seconde (environ).

    Mon programme traite 2 méthodes au choix : (désolé je ne suis pas expert en maths, je n'aurais donc pas d'explication à vous donner sous forme de formules :-)

    - 1 : qui consiste à faire réfléchir le programme comme la méthode conseillé dans les bouquins sudoku, (a savoir par groupe de 3 carrés)

    -2 : qui consiste bêtement à résoudre le sudoku de manière récursive.
    je place le 1er chiffre possible dans la case 1, puis je teste toutes les combinaisons possibles dans les autres cases de manière récursive. Dés qu'un niveau est en échec, je remonte au niveau précédent pour tenter une nouvelle combinaison.
    Je ne sais pas si c'est super optimisé mais en tous les cas, ça fonctionne à tous les coups en 1 seconde.

  17. #17
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    C'est ce qu'on trouve dans la littérature sur le net, le jeu peut être résolu très rapidement, même par récursion.
    J'ai pas trop vu de messages où la résolution était longue ???

  18. #18
    Membre averti
    Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 21
    Par défaut
    Bah..., je faisais surtout allusion au 1er message :

    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.
    Mais bon c'est pas très grave...

    Vu qu'il y a des pros de l'agorithmie, j'ai posté un message dans la section algos sur ce forum, peut-être auras-tu de bonnes idées à me conseiller ? :-)

    a+
    Cédric

  19. #19
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    A part les 3 règles, il faudrait voir pour implémenter la formation en X ou l'espadon - swordfish -, mais c'est anecdotique.
    Il faudrait voir sur les exemples non solvables ce qu'on doit faire à la main pour y arriver.

  20. #20
    Membre averti
    Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 21
    Par défaut
    En fait je faisais allusion à mon sujet posté tout à l'heure :

    "Arbre de recherche : quel algo conseiller ?" ici : http://www.developpez.net/forums/viewtopic.php?t=424003

    J'ai besoin de conseils pour optimiser un arbre de recherche...


    Cédric

Discussions similaires

  1. [XL-2010] Automatiser réponse dans une cellule
    Par tintin69 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/04/2015, 10h56
  2. Comment recevoir rapidement une réponse à votre question ?
    Par Community Management dans le forum Windows
    Réponses: 3
    Dernier message: 17/08/2014, 02h28
  3. [XL-2007] automatisation d'une réponse à un message
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 16/10/2010, 10h28
  4. Macro VBA : automatiser la réponse à une question.
    Par monf29 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/06/2007, 11h18
  5. réponse ds la meme page
    Par autumn319 dans le forum ASP
    Réponses: 13
    Dernier message: 03/09/2003, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo