Table of Contents
A* (pronounced "A-star") is a graph traversal and path search algorithm, which is often used in many fields of computer science due to its completeness, optimality, and optimal efficiency. One major practical drawback is its space complexity, as it stores all generated nodes in memory. Thus, in practical travel-routing systems, it is generally outperformed by algorithms which can pre-process the graph to attain better performance, as well as memory-bounded approaches; however, A* is still the best solution in many cases.
f(n) = g(n) + h(n)
where
n = the next node on the path
g(n) = the cost from the start node to the node
n
h(n) = heuristic function that estimates the cost of cheapest path from n to goal
This is how you may set up your project locally. To get a local copy up and running follow these simple example steps.
pip install pygame
pip install numpy
pip install easygui
As the current source code mainly focuses on visualization, it is a great idea for people who are learning path finding algorithm, such as A*, Dijkstra's etc... Visualizing is one of the great techniques for learning. You can play around with the code and understand the core idea of what a path finding algorithm is.
Unfortunately as of right now, the only possible method is A* algortihm.
Here is a demo picture of the software.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
If you consider contributing to the project, I'd like to request you to implement the Dijkstra's algorithm firstly.
Distributed under the MIT License. See LICENSE
for more information.
Email -> [email protected]