/AStar-Algorithm

Visualization of Astar written in python and pygame module.

Primary LanguagePythonMIT LicenseMIT

AStar Algorithm Visualization

MIT License Contributors Stargazers Issues Forks LinkedIn

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Contributing
  5. License
  6. Contact
  7. Acknowledgements

About The Project

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.

Equation

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

Built With

Getting Started

This is how you may set up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

pip install pygame

pip install numpy

pip install easygui

Usage

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.

Demo

Here is a demo picture of the software.

Contributing

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Note

If you consider contributing to the project, I'd like to request you to implement the Dijkstra's algorithm firstly.

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Email -> wh.kankan13@gmail.com

Acknowledgements