Sunteți pe pagina 1din 57

Paper Id- 1613

A* Shortest Path Search


Algorithm and its Applications

Rishabh Vashistha
Nishit Bose
Deepanshu Kapoor

Content : Introduction on Search for Shortest Path


Shakey the Robot
A* Algorithm
Heuristic Approach
Algorithmic Analysis and Pseudocode
Working of A * Algorithm
Admissibility and Optimization
Applications
Conclusion

Introduction on Search for Shortest Path


The evolution of concept derived from the
broad approach to solve the problem of
shortest path, resulted in countless and
diverse algorithms that appeared over the
recent past.
The research on the most basic actions
focused at the deduction of time complexity
of the shortest route between two given
nodes in a network or a graph have resulted
in decent solutions designed for more
applications.

SHAKEY THE ROBOT

The A* Algorithm
A* is the most popular choice for pathfinding, because its
fairly flexible and can be used in a wide range of contexts.
It avoids expanding paths that are already expensive, but
expands most promising paths first.
A* is like Dijkstras algorithm and Greedy Best-First-Search
approach in that it can use a heuristic to guide itself.

Heuristics for A *
Heuristic, is any approach to problem solving, learning, or discovery that employs a practical
method not guaranteed to be optimal or perfect, but sufficient for the immediate goals.
Selection of the path to be traversed is estimated and dependent on a mathematical function f (n)
such that :

= +

Types of Heuristic Approach used in A Algorithm are :

Manhattan Distance
Diagonal Distance
Euclidean Distance

MANHATTAN DISTANCE
The standard heuristic on a square grid where it can move in four directions is D times
Manhattan distance.

function heuristic(node)
dx = abs(node.x - goal.x)
dy = abs(node.y - goal.y)
return D * (dx + dy)

DIAGONAL DISTANCE
If the map allows diagonal movements we need different heuristics. In diagonal
distance instead of 4 direction there are 8*D directions.

function heuristic(node)
dx = abs(node.x - goal.x)
dy = abs(node.y - goal.y)
return D * (dx + dy) + (D2 - 2 * D) * min(dx, dy)

If map intend to move in any direction then we use Euclidean distance as heuristic
approach.

function heuristic(node)
dx = abs(node.x - goal.x)
dy = abs(node.y - goal.y)
return D * sqrt(dx * dx + dy * dy)

Working of A * Algorithm

ADMISSIBILITY AND OPTIMIZATION


Any graph search algorithm is said to admissible if it always returns an optimal solution
i.e. the one with the lowest cost, if the solution exists at all.
I.

Pre-Path Calculations:
Some nodes are defined on the search area and shortest paths are calculated for each pair of nodes
and stored in the memory. These pre-stored paths are then used during searching new paths.

II. Shared Threads Technique:


Many paths are searched using shared memory and thread synchronizations. The purpose is to check
the effects of using the shared memory and thread synchronizations on the total search time of A*
algorithm.
III. Hierarchical Breakdown:
It works on the approach of divide and conquer i.e. it divides the search space into smaller sub-parts
called cluster. These clusters are merged using some connection point known as exit points, and a
weighted graph is built in this way. Optimal path among the exit points for each cluster is calculated and
then stored.

PROPOSED APPLICATIONS OF A * ALGORITHM


In manufacturing of motherboard circuits.
Guiding and Navigation System for real time Air
Traffic.
Advanced Game Logic for real time objects.
Connectivity of network towers.
Unmanned Ground based and Aerial Vehicle trajectory
tracking and guiding.
Underground connectivity of webbed gas line and
electric power lines.

PROPOSED APPLICATIONS OF A * ALGORITHM

Real Time traffic light system monitoring.


Neural Network Analysis and DNA Sequencing.
Fire Outbreak control system.
Dockyard cargo lifting and loading.
Remotely guiding and Accessing Rovers (e.g. Mars
Rover)
A* can be used for planning moves computercontrolled player (e.g., chess)
Solving Collatz Conjecture (3n+1) problem.

CONCLUSION

At first it was made solely for shakey the robot for finding shortest path but due to its best first
greedy approach with better time complexity it finds its applications in Artificial Intelligence,
Game, Neural Networks DNA Sequencing.
A* path finding search algorithm is very famous in advanced/real-time games for finding
shortest distance between two nodes. Todays games have lakhs of components moving at a
same time in the presence of obstacles. Thus it has becomes important to find shortest paths
concurrently and in a fast way . Making use of GPUs highly parallel multi-threaded nature suits
this scenario.

S-ar putea să vă placă și