Résolution d'un labyrinthe (méthode récursive) - solveur récursif général

Soyez le premier à donner votre avis sur cette source.

Vue 9 956 fois - Téléchargée 1 134 fois

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.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
69
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
12 août 2007

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
Messages postés
51
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
7 juillet 2006

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...
Messages postés
69
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
12 août 2007

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
Messages postés
170
Date d'inscription
jeudi 11 décembre 2003
Statut
Membre
Dernière intervention
24 janvier 2009

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.
Messages postés
69
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
12 août 2007

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
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.