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

Lazarus Pascal Discussion :

[Défi n° 2] Un résolveur de grilles de Sudoku : les résultats !


Sujet :

Lazarus Pascal

  1. #61
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Nous avons reçu le projet de Ludelphi7, merci à lui.

    C'est le second projet reçu, je rappelle que l'inscription au défi n'est effective qu'à la réception des sources.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  2. #62
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Salut,
    Je viens de confirmer mon inscription
    En fait, vu le nombre assez important de mes unités, je me damandais si vous accepteriez qu'on joint aux codes une note detaillant la structure du code (des petits diagrammes par exemple).

  3. #63
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    Salut,
    Je viens de confirmer mon inscription
    En effet.

    Citation Envoyé par darrylsite Voir le message
    En fait, vu le nombre assez important de mes unités, je me damandais si vous accepteriez qu'on joint aux codes une note detaillant la structure du code (des petits diagrammes par exemple).
    Bien sûr, une doc bien faite est un plus !
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  4. #64
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Bonjour,
    J'ai trouve une grille satanique qui fait raler mon solveur
    120000000
    000120000
    000000100
    012000000
    000012000
    000000012
    201000000
    000001020
    000000001
    Meme avec Dancing links, je n'arrive pas à le resoudre, le solveur tourne sans jamais s'arreter, et je ne parle pas du processeur
    Alors si quelqu'un arrive à le resoudre, j'aimerais bien qu'il nous montre son chrono.

    Sinon, j'ai trouvé tout récemment la methode dancing links, qui utilise les listes doublement chainées pour resoudre les grilles. J'ai trouvé un code que en C que j'ai traduit en pascal. Je ne sais pas si j'ai le droit de le poster ici. Il est à noté que le code est sur le net, et la source ne viens pas de moi.

  5. #65
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Je poste donc le code du dancing links que j'ai traduit:
    Site d'origine :http://cgi.cse.unsw.edu.au/~xche635/dlx_sodoku/
    la traduction est compilable sous lazarus/freepascal. le code fonction en console.

    Je ne sais pas si c'est la methode est plus lente ou c'est parce que le code n'est pas optimisé, mais il est dix fois plus lent que le mien. Mais le temps de resolution est persque constant queqle soit la grille.

    Alors si quelqu'un d'autres idées sur la question, j'aimerais bien le savoir
    Fichiers attachés Fichiers attachés

  6. #66
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    Bonjour,
    J'ai trouve une grille satanique qui fait raler mon solveur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    120000000
    000120000
    000000100
    012000000
    000012000
    000000012
    201000000
    000001020
    000000001
    Meme avec Dancing links, je n'arrive pas à le resoudre, le solveur tourne sans jamais s'arreter, et je ne parle pas du processeur
    Alors si quelqu'un arrive à le resoudre, j'aimerais bien qu'il nous montre son chrono.

    Sinon, j'ai trouvé tout récemment la methode dancing links, qui utilise les listes doublement chainées pour resoudre les grilles. J'ai trouvé un code que en C que j'ai traduit en pascal. Je ne sais pas si j'ai le droit de le poster ici. Il est à noté que le code est sur le net, et la source ne viens pas de moi.
    Tu m'étonnes ! Cette grille n'a pas de solution ! Je peux en etre sur parce que j'ai testé 4 solveurs différents, et aucun n'a trouvé ... Par contre, pour mon solveur, au bout de 10 sec, il a déja testé toutes les configurations possibles ...

  7. #67
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par mick605 Voir le message
    Tu m'étonnes ! Cette grille n'a pas de solution ! Je peux en etre sur parce que j'ai testé 4 solveurs différents, et aucun n'a trouvé ... Par contre, pour mon solveur, au bout de 10 sec, il a déja testé toutes les configurations possibles ...
    C'est donc ça
    Jai trouvé cette grille et je ne me suis pas trop posé de question . Le truc c'est que je n'attends jamais plus de 2 secondes, dès que je vois mon uc à 100% plus de 2 sec, j'arrete la resolution

    Que pense tu du dlx?

  8. #68
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    C'est donc ça
    Jai trouvé cette grille et je ne me suis pas trop posé de question . Le truc c'est que je n'attends jamais plus de 2 secondes, dès que je vois mon uc à 100% plus de 2 sec, j'arrete la resolution

    Que pense tu du dlx?
    Tenez a tous, cadeau :
    Pour savoir le nombre de solutions d'une grille :
    http://www.top-sudoku.com/

    Un forum entièerement dédié au sudoku, je me demande pourquoi je l'ai pas trouvé plus tot :
    http://www.setbb.com/phpbb/index.php?mforum=sudoku

    A propos du DLX :
    A vrai dire, je ne me suis jamais bien penché sur la question ... J'ai souvent cherché a comprendre la technique, mais j'ai laissé tomber plusieurs fois ... Mais ca a l'air d'être une très bonne solution, parce que tout le monde en parle !

  9. #69
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Points : 53
    Points
    53
    Par défaut bonjour
    Moi c'est ludodelphi7,
    comme le nom l'indique, je programme d'habitude en delphi.
    Le projet que j'ai transmis est l'adaptation de mon projet delphi, le chronometre en moins.
    A propos, même si c'est un peu tard, quelqu'un peut me donner un chronometre pour lazarus que je puisse voir l'éventuel différence entre delphi et lazarus ?

    merci d'avance

  10. #70
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    salut,
    Pour des questions concernant la programmation pascal ou lazarus/freepascal, tu obtiendras davantage de reponde en postant directement dans la section dédiée.
    Sinon, Lazarus à un composant TTimer que tu pourras utiliser. Tu peux aussi chercher d'autres composants tiers comme epiktimer ou autres. Mais il faut veiller à ce que ces composant soit minimun compatible windows/linux pour respecter le cahier de charge.

  11. #71
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Bon, je me suis penché sur les Dancing Links ...

    Si j'ai bien compris, c'est simplement un systeme permettant de classer facilement les données, et permettant de supprimer facilement un élément, puis le remettre ...

    Pour le sudoku, c'est vrai que ca doit être efficace, du moins pour la partie bruteforce ... Pour la partie logique, par contre, ca devrait pas être d'une grande utilité ... (en tout cas, je parle pour mes méthodes logiques, car je me suis créé un système de stockage assez sympa, donc ca va)

    darryl > tu voudrais pas nous poster quelques temps obtenus avec le DLX ? Pour les 7 grilles si possible, pour qu'on puisse comparer avec les anciens temps sur le fofo ...

    Si j'ai le temps, je testerai peut être une résolution grâce au DLX ... Ca pourrait m'être utile de savoir me servir de ca ...

  12. #72
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Je vais ajouter la classe à mon projet et vous donnerais les chronos. Mais ce code n'est pas optimisé, le temps est beaucoup plus lents. Pour pouvoir réellement comparer les chonos il faut retoucher un peu le code.

  13. #73
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Ok, fais nous parvenir ces temps, meme non optimisés, pour voir vite fait ...

    Bon, sinon, je crois avoir trouvé des super moyens de méthodes logiques grâce a ce DLX ... Une nouvelle méthode de résoudre un sudoku ... Ca pourrait être assez rapide, et aussi super court niveau code ...

    Enfin bref, on verra ca après le défi ...

  14. #74
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Voici les chronos :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    grille 1: 40.354 ms
    grille 2: 48.144 ms
    grille 3: 33.488 ms
    grille 4: 38.313
    grille 5: 306.953 ms
    grille 6: 1.5 s
    grille 7: 74.312 ms

  15. #75
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par mick605 Voir le message
    Ok, fais nous parvenir ces temps, meme non optimisés, pour voir vite fait ...

    Bon, sinon, je crois avoir trouvé des super moyens de méthodes logiques grâce a ce DLX ... Une nouvelle méthode de résoudre un sudoku ... Ca pourrait être assez rapide, et aussi super court niveau code ...

    Enfin bref, on verra ca après le défi ...
    Une nouvelle methode pour resoudre sudoku J'aimerai bien voir ça.
    Moi, j'aimerais plutot coder et ajouter un generateur de grille dans mon rojet; mais j'ai peur qu'on me sanctionne pour non respect du cahier de charge

  16. #76
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Oui, c'est vrai que c'est moins rapide qu'avant, mais je suis sur que tu va réussir a très bien l'optimiser ... Donc, tiens nous au courant sur tes chronos de DLX, en tout cas moi, ca m'interesse !

    A+

  17. #77
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    C'est vrai que c'est beaucoup plus lent. Avec mon solveur sans dlx pour la grille 1, je fais du 129 microS contre 40 ms en dlx.

  18. #78
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    Une nouvelle methode pour resoudre sudoku J'aimerai bien voir ça.
    Moi, j'aimerais plutot coder et ajouter un generateur de grille dans mon rojet; mais j'ai peur qu'on me sanctionne pour non respect du cahier de charge
    Tiens, j'avais même pas vu ce message ... Nos posts se sont croisés ...

    Ouais, pour le sudoku, j'aurais bien une idée qui pourrait résoudre toutes ces solutions en une seule méthode de calcul pas spécialement longue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Emplacement unique
    Candidats doubles, triples, quadruples ...
    Paires, triplets, quadruplets, etc. cachés
    X-Wing
    Swordfish, Jellyfish, etc
    Donc je me dis que, comme toutes ces méthodes seront codées en une seule procedure, le code serait assez court donc facilement compréhensible et optimisable ... Enfin, peut être je me trompe, mais bon ...

    Pour le générateur, je pense que ca ne peut qu'être un plus, ensuite, il faut trouver un moyen efficace de coder tout ca ^^

  19. #79
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Attention pour les retardataires : la date limite du 31 décembre 2009 approche à grands pas !
    Passé cette date, plus aucun projet ne sera pris en considération.

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  20. #80
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Quelques heures avant la clôture et ces mêmes quelques heures avant 2010.
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

Discussions similaires

  1. Résoudre grille de Sudoku
    Par Dimitri_87 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 29/08/2006, 11h43
  2. [VB6]Afficher une grille de Sudoku
    Par epaminondas dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 07/03/2006, 17h36
  3. Dessiner un grille de sudoku
    Par etranger dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 17/02/2006, 09h24
  4. générer grille de sudoku sans disjoncteur
    Par javatwister dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/12/2005, 16h15

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