Talk:A* search algorithm: Difference between revisions

Content deleted Content added
The Pseudo-code: one more proposition
Line 324:
 
So, why this algorithm? Well, first of all I like building extra functions for relax and initialize because it make the algorithm itself cleaner. How the graph is initialized does not have anything to do with how A* works. Furthermore, this makes it *very* similar to Dijkstra, in the way that you just have to adjust the relax function to cope with the heuristic. Furthermore it spares you the question of "should the path generation be in the algorithm or not". It is not directely in the algorithm, but one can find it hidden in the extra relax functionality. The last thing is the part of open/closed lists. If you have a monotone heuristic (which should not be too hard to find in many domains) you do not need to do that extra bit of bookkeeping. So leaving out this part and just assuming a monotone heuristic makes the algorithm smaller. Furthermore I do not know if the algorithm should be too informal, since the code still is code, and maybe should be explained in natural language that accompanies the code. I mean: Regardless how informal you write the code, you still have to expain it. So why not one brief (quite formal) overview and an explanation in natural language english? [[User:Regnaron|Regnaron]] 19:41, 12 August 2006 (UTC)
 
:IMHO, this version:
:* describes everything it does twice, once in code, once in comments, entirely defeating the purpose of pseudocode;
:* doesn't translate easily to applicative programming languages, due to the use of destructive assignment;
:* can only be understood properly if one knows Dijkstra, which is unnecessary for explaining A*.
: [[User:Qwertyus|Qwertyus]] 20:29, 12 August 2006 (UTC)