begin process at 2012 02 16 22:52:36
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

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

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


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :6 508 / 794

Auteur : jean_marc_n2

Ecrire un message privé
Site perso
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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.

 Fichier Zip

Les Membres Club peuvent 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


 Historique

04 mars 2006 12:38:14 :
Une petite erreur dans l'utilisation de la variable de temporisation.

 Sources du même auteur

Source avec Zip Source avec une capture ACTUALITÉS EN TEMPS RÉEL GRÂCE AUX FLUX RSS
Source avec Zip DIFFÉRENCE ENTRE + (ARITHMÉTIQUE) ET OR (BITWISE)
COMPACTAGE D'UNE SÉRIE NUMÉRIQUE
Source avec Zip Source avec une capture GÉNÉRATION EN HTML DE SOURCES VB, AVEC COLORATION SYNTAXIQUE...
Source avec Zip Source avec une capture ESPIONNER / SURVEILLER L'ACTIVITÉ RÉSEAU SUR VOTRE MACHINE O...

 Sources de la même categorie

Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty
Source avec Zip Source avec une capture PETIT LOGICIEL DE DEVIS SANS BD par lololilizozo

 Sources en rapport avec celle ci

ROUTINE DIR RÉCURSIVE POUR OBTENIR LA LISTE DE TOUS LES FICH... par kerisolde
Source avec Zip Source avec une capture L4BY2 : NUÉE DE PINGOUINS par Softmama
Source avec Zip Source avec une capture SUDOKU SOLVEUR CRIBLE par ccgousset
Source avec Zip Source avec une capture BRIKZ - UN JEU DE STRATÉGIE SUR EXCEL par Sylvaninof
FONCTION RECURSIVE (PLUS SIMPLE) par muad-dib

Commentaires et avis

Commentaire de Willi le 04/03/2006 12:49:28 administrateur CS

Source instructive :)
Bonne continuation 8/10

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.

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.

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').

Commentaire de Willi le 05/03/2006 14:12:53 administrateur CS

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

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 :-)

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

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).

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

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

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.

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

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...

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


Discussions en rapport avec ce code source dans le forum

Utilisation du solveur d'excel dans visual basic 6 [ par Manu ] Bonjour à tous, J'ai un petit problème que, je suis sûr, vous pourrez m'aider à résoudre.JE cherche à utiliser le olveur d'excel dans visual basic 6.E Solveur d'excel et VB6 [ par Manu ] Bonjour à tous, J'ai un petit problème que, je suis sûr, vous pourrez m'aider à résoudre.JE cherche à utiliser le olveur d'excel dans visual basic 6.E solveur [ par Alpha ] Quelqu'un saurait il m'expliquer le principe du solveur d'excel???j'aurais besoin d'une fonction qui fasse la meme chose dans un prog VB. Au secours ! Pb de pile qui saute :) [ par Alexxx ] J'ai fait un script qui boucle sur lui même et qui teste la présence d'un fichier en VBS. Le test se fait toutes les 10 secondes. Tout marche correcte La pile VB [ par shervy ] Existe-t-il un moyen de gérer la pile mémoire de VB ou un moyen de l'augmenter (paramètre de compilation ou autre) ???Merci de votre aide. [REQ] Générer automatiquement une pile d'adresse IP dans un listbox. [ par Alextophi ] bonjourJe ne sais pas comment faire pour générer automatiquement une pile d'adresse IP dans un listbox.Avez-vous une idée ?ex: de "10.104.36.1" à "10 [REQ] Générer automatiquement une pile d'adresse IP dans un listbox. [ par Alextophi ] bonjourJe ne sais pas comment faire pour générer automatiquement une pile d'adresse IP dans un listbox.Avez-vous une idée ?ex: de "10.104.36.1" à "10 récursivité en vb [ par fouesoft ] salut,je cherche à programme la fonction factorielle en récursif ... comment faire pour la condition d'arrêt en vbfouesoft Pb de pile insuffisante [ par toto1980 ] J'ai menu qui s'affiche avec un click droit si je click droit puis click gauche ailleurs, j'ai l'erreur 28 " Espace pile insuffisant"Voici mon code:da Pb de pile insuffisante [ par toto1980 ] J'ai menu qui s'affiche avec un click droit si je click droit puis click gauche ailleurs, j'ai l'erreur 28 " Espace pile insuffisant"Voici mon code:da


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales