begin process at 2008 07 19 08:51:09
1 212 721 membres
60 nouveaux aujourd'hui
14 165 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RÉSOLUTION D'UN LABYRINTHE (MÉTHODE RÉCURSIVE) - SOLVEUR RÉCURSIF GÉNÉRAL


Information sur la source

Catégorie :Divers Classé sous : labyrinthe, récursivité, récursif, solveur, pile Niveau : Initié Date de création : 04/03/2006 Date de mise à jour : 04/03/2006 12:38:14 Vu / téléchargé: 4 353 / 654

Note :
9 / 10 - par 4 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

Description

Ce programme permet de trouver la sortie d'un labyrinthe quelconque, mais surtout, il montre comment mettre en oeuvre une méthode de résolution récursive, qui peut être utilisée pour la résolution d'un très grand nombre de problèmes.
Il peut être utilisé pour résoudre des problèmes comme le "compte est bon", des problèmes de programmation avec contrainte, faire de l'optimisation, etc.
La partie graphique illustre l'utilisation d'une pile simplifiée pour la sauvegarde dun ou plusieurs résultats intermédiaires.

Conclusion

Testé, commenté, modualaire, ce programme est simple à utiliser. Si vous comprenez comment fonctionne la fonction findLaby(), alors vous pouvez utiliser ce programme comme base pour la résolution de centaines d'autres problèmes similaires.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • frmlaby.frmTélécharger ce fichier [Réservé aux membres club]Voir ce fichier12 128 octets
  • laby.labTélécharger ce fichier [Réservé aux membres club]1 302 octets
  • laby.vbpTélécharger ce fichier [Réservé aux membres club]Voir ce fichier779 octets
  • laby.vbwTélécharger ce fichier [Réservé aux membres club]Voir ce fichier82 octets
  • laby10.labTélécharger ce fichier [Réservé aux membres club]1 682 octets
  • laby2.labTélécharger ce fichier [Réservé aux membres club]594 octets
  • laby3.labTélécharger ce fichier [Réservé aux membres club]999 octets
  • laby4.labTélécharger ce fichier [Réservé aux membres club]644 octets
  • laby5.labTélécharger ce fichier [Réservé aux membres club]1 215 octets
  • laby6.labTélécharger ce fichier [Réservé aux membres club]1 298 octets
  • laby8.labTélécharger ce fichier [Réservé aux membres club]156 octets
  • laby9.labTélécharger ce fichier [Réservé aux membres club]7 382 octets
  • modlaby.basTélécharger ce fichier [Réservé aux membres club]Voir ce fichier7 848 octets

Télécharger le zip

04 mars 2006 12:38:14 :
Une petite erreur dans l'utilisation de la variable de temporisation.
  • signaler à un administrateur
    Commentaire de Willi le 04/03/2006 12:49:28 administrateur CS

    Source instructive :)
    Bonne continuation 8/10

  • signaler à un administrateur
    Commentaire de Marsu le 05/03/2006 13:31:34

    Moyen, je ne comprends pas pourquoi ne pas chercher le chemin le plus court, ce qui est a mon avis pas vraiment plus long, et permet aussi de traiter d'autres problèmes.

  • signaler à un administrateur
    Commentaire de Willi le 05/03/2006 13:53:02 administrateur CS

    Bonne remarque Marsu, mais le but n'est pas de trouver le chemin le plus court ici.

  • signaler à un administrateur
    Commentaire de jean_marc_n2 le 05/03/2006 14:04:01

    Hello,

    tu n'as visiblement pas lu ou pas compris l'algorithme. Je penche pour la seconde solution. Ce programme permet bien évidemment de trouver le chemin le plus court (il suffit de regarder l'indice de pile à chauqe fois qu'on atteint un "B" et de stocker ce nouveau chemin si il est plus court que celui déjà sauvé).

    Relis le au calme, essaie de bien comprendre comment cela fonctionne. Ca demande une petite gymnastique cérébrale ;-)

    Qui plus est, il existe d'autres méthodes de résolution de labyrinthes: c'est un problème général de parcours de graphes. Tout a été dit et écrit par Dijkstra sur le sujet. On trouve aussi de très bonnes implémentations dans Knuth (TAOCP, Volume 3, 'Sorting and Searching').

  • signaler à un administrateur
    Commentaire de Willi le 05/03/2006 14:12:53 administrateur CS

    Et moi qui croyais avoir tout compris je me suis trompé également :)

  • signaler à un administrateur
    Commentaire de jean_marc_n2 le 05/03/2006 14:23:48

    Merci willi pour tes commentaires :-) C'est vrai que ce programme n'est pas en soi destiné à trouver le chemin le plus court. Il est destiné à trouver une solution par recherche récursive. Mais c'est vrai aussi qu'on peut le modifier (assez) aisément pour trouver des minima (donc en queque sorte trouver les chemins les plus courts). Bien sur, un tel algorithme modifé sera TRES inefficace dans le cas présent puisque comme je le disais, il y a d'autres algorithmes qui sont fait pour ça (par exemple l'algorithme A* de Dijkstra). Salut et encore merci pour tes sympathiques commentaires :-)

  • signaler à un administrateur
    Commentaire de guyvdv le 25/03/2006 17:50:00

    Bonjour Tout lemonde
    Je debut dans la recursion, j'avai trouvé sur e a http://personal.vsnl.com/erwin/connect4.htm
    un tut de recursion, mais le connect (4 sur une ligne? ) de fonctionne pas chez moi.(Commenté en hollandais alors illisible pour vous).
    Il y a qq qui peu me donner un tuyo pour comprendre un peut la recursion.

    le script de jean-marc est claire mais comment l'emploier pour 4/1 ligne et plus tard sudoku hihihi

    Le nom Dijkstr ( hollandais) , ou je trouve ce qu'il a ecris??
    Merci de m'aider un peut
    A+
    Guy van der Velden

  • signaler à un administrateur
    Commentaire de jean_marc_n2 le 26/03/2006 12:03:18

    Hello Guy, tu trouveras de très nombreuses références à Dijkstra sur le net, tu peux tout simplement entrer "Dijkstra" dans Google, tu auras déjà beaucoup de liens.
    Pour la récursivité, il existe des centaines de références sur le net, tu peux commencer par la par exemple: http://www.chambily.com/recursivite/

    Sur ce coup la, Google est ton ami, tu trouveras tout ce qu'il te faut. Ensuite, ayant compris les principes sous-jacents, utiliser et adapter mon programme devrait être assez simple pour résoudre tes cas particuliers (sudoku, etc).

  • signaler à un administrateur
    Commentaire de guyvdv le 26/03/2006 12:07:53

    merci jean-marc,
    J'ai deja beaucoup cherche sur google, et beaucoup trouve
    Mais le mot recursivite et dijkstra pas encore essayer
    Merci et je te tiens au courant

    A+
    Guy van der Velden

  • signaler à un administrateur
    Commentaire de poldere le 31/03/2006 10:32:10

    Bonjour, je voudrais savoir si on peut utiliser ta source en l'adaptant pour le déplacemet d'un robot ? Création automatique ou manuel d'un labyrinthe correspondant à des pièces d'une maison puis déplacement à partir de cette base. Merci

  • signaler à un administrateur
    Commentaire de jean_marc_n2 le 31/03/2006 19:37:33

    Hello, ça dépend de ce que tu veux faire. Si le robot doit pouvoir trouver un ou plusieurs objets dans la maison, alors on peut l'utiliser. Si le robot doit passer par tous les endroits de la maison, on peut aussi l'utiliser. Si le robot doit pouvoir trouver le chemin le plus court pour se rendre à un endroit donné, alors cet algorithme peut être utilisé, au prix de quelques modifications, mais il n'est pas fait pour ça. Il existe des algorithmes plus efficaces pour la détermination des chemins les plus courts, avec des contraintes.

    Pour la majorité des cas, oui cet algorithme est tout à fait adéquat pour déplacer un robot dans une maison.

  • signaler à un administrateur
    Commentaire de poldere le 31/03/2006 22:22:03

    Merci pour la réponse et du peu que je connaisse en VB et le peu que j'ai pu voir du programme ; il est vrai que lorsqu'on enlève les obstacles on se rend compte que la recherche de chemin fait un genre " serpent ". Il serait stupide que le robot fasse le même chemin avant d'arrivé au but lol. Je vais fair une recherche avec " djisktra " pour trouver quelque chose en visuak basic à mon niveau basique.
    Merci

  • signaler à un administrateur
    Commentaire de pekch le 25/06/2006 15:46:18

    mais ce n'est pas un algo de trajectoire, poldere!? c'est de la résolution de lab. c pas pareil... enfin je tuche pas des masses sur le sujet mais je crois que ca n'a rien a voir, dans la mesur ou dans un algo de trajectoire on connait déjà les chemins possibles, et on teste le plus court...

  • signaler à un administrateur
    Commentaire de poldere le 25/06/2006 17:17:17

    Ok merci. Je voulais partir de 3 cas différents :
    1 : On connait le périmètre et les obstacles d'avance > on cherche juste le chemin le plus court
    2 : Obstacles aléatoires dans un périmètre connu > calcul de contournement d'obstacle et re chemin le plus court.
    3 : territoire inconnu > découverte et mémorisation du périmètre et des obstacles fixes.
    4,5 : territoire inconnu et obstacles mouvants ( comme du sable par exemple lol ).
    voilà en gros ce que je cherche à réaliser doucement avec le peu de connaissance que j'ai. Alors je cherche et merci à ceux qui ont mis des codes qui m'ont et m'auront aidé à progresser.
    Merci à tous

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS