1️⃣Search-based Path Planning
Dijkstra's Algorithm
Let say we have a 8x8 Grid Map with Obstacles, where S is start, G is the goal, 1 is free space, X is obstacle.
Pros
Complete and optimal
Cons
Can only see the cost accumulated so fat, thus exploring next state in every "direction"
No information about goal location
A Star
Jump Point Search
Jump Point Search (JPS) is an optimization technique for improving the efficiency of the A* algorithm in grid-based pathfinding, particularly in motion planning. Here’s a detailed explanation of how it works and its significance:
Overview
In grid-based motion planning, the objective is to find the shortest path from a start point to a goal point while navigating around obstacles. The A* algorithm is commonly used for this purpose due to its optimality and efficiency. However, A* can be slow on large grids because it evaluates many nodes, especially in open areas. JPS addresses this inefficiency.
Key Concepts
Pruning Unnecessary Nodes: JPS reduces the number of nodes A* needs to evaluate by "jumping" over multiple nodes in straight lines or diagonals until it reaches a node that requires evaluation. This significantly reduces the search space.
Jump Points: A jump point is a critical node in the path. It's a node where a decision needs to be made, such as changing direction or encountering an obstacle. JPS skips nodes between jump points, thus accelerating the search process.
Forced Neighbors: These are nodes that need to be considered because they represent potential paths around obstacles. When a node has forced neighbors, it becomes a jump point.
How Jump Point Search Works
Straight-line Jumping: From a given node, JPS attempts to move in a straight line (either horizontally, vertically, or diagonally) until it reaches:
The goal node.
An obstacle.
A node with forced neighbors.
Recursive Search: If a jump point is reached, JPS recursively searches from this new point. The recursion continues until the goal is found or no more jump points are available.
Path Reconstruction: Similar to A*, JPS uses a parent pointer for each node to reconstruct the path once the goal is reached.
Benefits of Jump Point Search
Efficiency: By reducing the number of nodes evaluated, JPS can significantly speed up the pathfinding process, especially in large, open areas.
Optimality: JPS preserves the optimality of A*. It still guarantees finding the shortest path.
Simplicity: Despite its sophisticated approach, JPS is relatively easy to implement and integrates well with existing A* frameworks.
Example
Consider a grid where we need to find the shortest path from the top-left corner to the bottom-right corner. Traditional A* would evaluate many nodes, including those in straight lines and around obstacles. JPS would jump directly along straight lines, only evaluating nodes where direction changes or obstacles are encountered, thereby reducing the number of evaluations and speeding up the search.
Applications
JPS is particularly useful in applications involving real-time pathfinding, such as:
Video games and simulations.
Robotics, for efficient navigation in known grid-like environments.
Geographic information systems (GIS) for route planning.
Last updated