A* (path finding) implémentation incorrect [Ada] - Ada - Programmation
Marsh Posté le 27-11-2024 à 16:53:42
Citation : Je n'y connais rien en ADA mais j'ai demandé à https://claude.ai/ s'il pouvait t'aider : |
Je vais examiner attentivement votre implémentation de l'algorithme A* en Ada. Vous avez raison de douter des lignes 91 à 119, car c'est effectivement une partie critique de l'algorithme où plusieurs vérifications sont effectuées.
Quelques observations et suggestions :
Structure générale de l'algorithme :
Votre implémentation suit globalement la logique de base de A* :
Initialisation des listes Openned et Closed
Parcours des successeurs
Calcul des coûts (g, h, f)
Vérification des conditions pour ajouter ou non un nœud
Points potentiellement problématiques (lignes 91-119) :
Code :
|
Problèmes dans ce bloc :
La boucle parcourt Node_Lists.Length(Closed) mais utilise First_Element(Openned), ce qui semble incohérent
La condition de sortie et l'incrémentation du curseur ne semblent pas correctes
La logique de vérification des nœuds existants est confuse
Suggestion de refactorisation :
Code :
|
Modifications proposées :
Utiliser une boucle while avec Has_Element
Utiliser Element au lieu de First_Element
Simplifier la logique de parcours et de comparaison
Recommandations générales :
Assurez-vous que vos types Node_Record, Element, et les fonctions Equal, Uniform, Heuristic, et Successors sont correctement définis
Vérifiez la cohérence des types de données et des conversions
Les commentaires indiquent que vous gérez bien les étapes clés de A* : calcul de g, h, f, et gestion des successeurs
Voulez-vous que je vous aide à affiner cette partie du code ? Je peux vous guider étape par étape pour améliorer l'implémentation de votre algorithme A*.
Citation : Tu peux créer un compte gratuitement pour faire quelques requêtes chaque jour... |
Marsh Posté le 27-11-2024 à 17:10:18
En effet, une correction à apporter est d'utiliser Element à l'instar de First_Element ligne 82.
Marsh Posté le 27-11-2024 à 15:16:48
Bonjour,
J'ai réimplementé Astar mais mon code est incorrecte.
Si vous pouviez me donner un coup de main.
S'il vous plait ?
Voici mon code sources Ada :
J'ai peut-être inversé open et close malgrès moi, mais normalement le code est cohérent.
J'ai un doute sur les ligne de 91 à 119
Message édité par lady287 le 27-11-2024 à 15:22:26