Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 433d052

Browse files
Update README.md
1 parent 92345b2 commit 433d052

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

‎README.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,25 @@
1-
Python-Pathfinding-Algorithm-Visualizer
1+
# Python Pathfinding Algorithm Visualizer
2+
3+
I built this application for two main reasons: to get much more accomodated with python and to
4+
5+
## The project
6+
7+
The project is implemented in Python using Pygame. We create a grid, we draw it to the screen and depending on the algorithm the user will be able to visualize several pathfinding algorithms in action and analyze the results (time elapsed, nodes visited, time and space complexity).
8+
9+
## Algorithms
10+
11+
**A* Search** - the best pathfinding algorithm as it always finds the shortest path and does it much faster than Dijkstra by using a heuristic function that aproximates the distance between the currently probed node and the end node.
12+
13+
**Best First Search** - also uses a heuristic function to determine the approximate distance between nodes, but does not guarantee neither the shortest path, nor finding the actual end node.
14+
15+
**Breadth First Search** - is a search algorithm most commonly used to traverse graphs, but can also be used to find the path between two nodes. It does guarantee the shortest path and it will always find the end node, but at a much slower rate than others.
16+
17+
**Depth First Search** - also a search algorithm for graph traversal and is arguably the worst contender for pathfinding as it searches in depth through neighbors and in doing so can search the entire grid space before finding the end node.
18+
19+
**Bidirectional Breadth First Search** - a combination of two breadth first searches, one starting at the start node and one at the end node. The path is computed through the intersection point of the two searches. It does not guarantee the shortest path.
20+
21+
**Dijkstra's Algorithm** - the founding father of search algorithms, that guarantees the shortest path, albeit it being relatively slower than A*.
22+
23+
## The application
24+
25+
The application allows the user to place start, end and obstacle nodes on a grid. After placing the aforementioned nodes the user is able to select a pathfinding algorithm of his choice and start the visualization process. Once the algorithm is done, the application will display the time elapsed since the start of the algorithm and the total nodes visited in order to find the goal node. The user can now either reset the grid in order to test out another algorithm or exit completely out of the application.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /