Time play a crucial role in ambulance services. A person's life is dependent on your arrival. One of the most common reasons for arriving late at the patient's house is because of being stuck in traffic. Traffic is not something that is in your control, agreed. Most people give way to the ambulance, but there are times when the ambulances get stuck in the traffic.
As traffic is continously growing, It is becoming difficult for ambulance to reach at patient optimally and from patient to nearest hospital optimally. This project is called Ambulance Rescuer because it provides the shortest path between source and destination optimally and efficiently. Lives of dying patient inside the ambulance can be decreased by using this idea as whole in the world.
Access the site a Google Chrome: https://tushardixit01.github.io/#
Pathfinding algorithms are usually an attempt to solve the shortest path problem in graph theory. They try to find the best path given a starting point and ending point based on some predefined criteria.
- Dijkstra's Algorithm (Weighted)
- A* Search (Weighted)
- Greedy (Weighted)
- Breath First Search (Unweighted)
- Depth First Search (Unweighted)
This application supports the following algorithms:
Dijkstra's Algorithm (weighted): the father of pathfinding algorithms; guarantees the shortest path
A Search* (weighted): arguably the best pathfinding algorithm; uses heuristics to guarantee the shortest path much faster than Dijkstra's Algorithm
Greedy Best-first Search (weighted): a faster, more heuristic-heavy version of A*; does not guarantee the shortest path
Breath-first Search (unweighted): a great algorithm; guarantees the shortest path
Depth-first Search (unweighted): a very bad algorithm for pathfinding; does not guarantee the shortest path
Path finding algorithms are important because they are used in applications like google maps, satellite navigation systems, routing packets over the internet. The usage of pathfinding algorithms isn’t just limited to navigation systems. The overarching idea can be applied to other applications as well. The usage will become clearer as we talk about some examples and implementations of pathfinding algorithms.
If edges in your graph have weights then your graph is said to be a weighted graph, if the edges do not have weights, the graph is said to be unweighted. A weight is a numerical value attached to each individual edge. In a weighted graph relationships between nodes have a magnitude and this magnitude is important to the relationship we’re studying.
This section lists all the technologies that I used to built this project.
- Clone the repo
$ git clone --single-branch -b main https://github.com/TusharDixit01/Hackercamp-22-Innovaccer.git .
- Install NPM packages
$ npm i
- Start the server
$ npm start server.js
The file structure of the current project is structured as shown below:
my-app
├── public
| ├── browser
| | ├── animations
| | ├── mazeAlgorithms
| | ├── pathfindingAlgorithms
| | ├── board.js
| | ├── bundle.js
| | ├── getDistance.js
| | ├── node.js
| └── styling
├── index.html
└── server.js
Made with ❤ by Tushar Dixit.