A simple implementation of Dijkstra’s Algorithm to find the shortest and optimized path for aircrafts in terms of fuel and time efficiency. It calculates the expected time to reach the destination and Fuel left by travelling the optimized path and also calculates the path with less noise interferance.
In modern aviation, efficient flight path planning is critical for minimizing operational costs, reducing environmental impact, and ensuring timely arrivals. Given the complexities of air travel, including varying fuel consumption rates and time delays due to factors such as noise interference and air traffic, it is essential to develop an algorithm that can determine the most optimal route for aircraft.
The objective of this project is to implement a simplified version of Dijkstra’s Algorithm to identify the shortest and most efficient flight path for aircraft based on two key metrics: fuel consumption and time efficiency. The algorithm will not only calculate the expected time to reach the destination but also estimate the remaining fuel upon arrival, ensuring that aircraft can complete their journeys safely and effectively.
- Graph Structure: Nodes represent airports, and edges represent possible flight paths between them.
- Weights: The weights on the edges represent fuel consumption and time.
- Fuel Constraints: Each node will also track the fuel left after reaching it.
Dijkstra's algorithm is a fundamental graph search algorithm designed to find the shortest path from a source node to all other nodes in a weighted graph with non-negative edge weights. It operates by initializing the distance to the source node as zero and all others as infinity, then iteratively selecting the unvisited node with the smallest tentative distance and exploring its neighbors. For each neighbor, it calculates the potential shorter path through the current node and updates the distances accordingly. The algorithm continues until all nodes are visited or the shortest path to a specific target node is found. With a time complexity of O((V+E)logV) using a priority queue.
1.User Input Order: