The A* algorithm is used to find the shortest path between a start and goal node. It maintains open and closed sets of nodes, calculates the cost (g_score) of reaching each node and estimated cost (f_score) to the goal. It iteratively explores the lowest f_score node until the goal is found, returning the reconstructed path. If the goal cannot be reached, it returns failure.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
13 views1 page
Mine
The A* algorithm is used to find the shortest path between a start and goal node. It maintains open and closed sets of nodes, calculates the cost (g_score) of reaching each node and estimated cost (f_score) to the goal. It iteratively explores the lowest f_score node until the goal is found, returning the reconstructed path. If the goal cannot be reached, it returns failure.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 1
function A*(start,goal)
closedset := the empty set // The set of nodes already evaluated.
openset := {start} // The set of tentative nodes to be evaluated, initially containing the start node came_from := the empty map // The map of navigated nodes.
g_score[start] := 0 // Cost from start along best known path. // Estimated total cost from start to goal through y. f_score[start] := g_score[start] + heuristic_cost_estimate(start, goal)
while openset is not empty current := the node in openset having the lowest f_score[] value if current = goal return reconstruct_path(came_from, goal)
remove current from openset add current to closedset for each neighbor in neighbor_nodes(current) if neighbor in closedset continue tentative_g_score := g_score[current] + dist_between(current,neighbor)
if neighbor not in openset or tentative_g_score < g_score[neighbor] came_from[neighbor] := current g_score[neighbor] := tentative_g_score f_score[neighbor] := g_score[neighbor] + heuristic_cost_estimate(neighbor, goal) if neighbor not in openset add neighbor to openset
return failure
function reconstruct_path(came_from, current_node) if current_node in came_from p := reconstruct_path(came_from, came_from[current_node]) return (p + current_node) else return current_node