Skip to content

CascadingRadium/Air-Traffic-Distribution

Repository files navigation

GitHub GitHub forks GitHub stars GitHub issues GitHub repo size GitHub last commit

Air Traffic Distribution

Capstone project done as a part of the requirements for the bachelors degree in CS at PES University (2019 - 23) guided by Dr. Preethi P.

Contributors

Name SRN
Rahul Rampure PES1UG19CS370
Raghav Tiruvallur PES1UG19CS362
Vybhav Acharya PES1UG19CS584
Shashank Navad PES1UG19CS601

Abstract

  • This proposal introduces a Genetic Algorithm implemented in CUDA and C that enables a flight dispatcher to generate flight plans based on a schedule containing prospective flights. The schedule includes details such as departure and arrival airports, scheduled departure time, and cruise speed for each flight.
  • By utilizing this algorithm, flight paths are generated for each aircraft with the goal of minimizing mid-air traffic, thereby reducing air traffic congestion. The algorithm takes into account the dynamic position of the airplane over time and ensures that the number of nearby aircraft remains minimal throughout the flight.
  • Additionally, the algorithm considers the possibility of introducing slight delays to aircraft departures. This strategy aims to create shorter routes with less en-route traffic. A comparison is made between the benefits of this approach and longer routes that avoid most of the traffic.
  • A constraint is imposed on the algorithm, requiring that both the departure and arrival airports have at least one available runway for the aircraft to use at the specified times. This constraint effectively establishes a mapping between aircraft and runways at the respective airports.
  • Consequently, the flight dispatcher receives the actual departure times for each flight, accounting for any delays, as well as the optimal routes for each aircraft. To facilitate this process, an interactive website has been developed, allowing the dispatcher to input/upload the schedule and execute the algorithm with a simple click. Furthermore, a Python simulator has been created to visualize the aircraft positions along their paths over time.

System Requirements, Execution and Evaluation

The following set of requirements must be satisfied by the execution environment before the repository is cloned.

To execute the project, one needs to run the shell script “runWebsite.sh” provided in the root. The shell script will perform a first-time setup and launch the website. The user can input or upload a flight schedule, execute the algorithm to obtain the solution, and simulate the same using the buttons provided.

sudo chmod +x runWebsite.sh
./runWebsite.sh

The video below shows the website in use:

WebsiteDemo.mp4

The Python-based simulator generates visual representations of traffic distribution for different test scenarios. The accompanying GIFs below illustrate these scenarios. Each aircraft is assigned a distinct color, while the airports are depicted in blue. The GIFs reveal that the airplanes are dispersed throughout the airspace, maintaining significant distances between each other. Notably, queues of aircraft can be observed forming near the airports, replicating real-world situations.

In order to evaluate the project, the provided shell script "runEvaluator.sh" should be executed from the root directory. This script generates a flight schedule that can be uploaded to the project's website. The flight schedule is derived from ASDI (Aircraft Situation Display to Industry) data, specifically for the period of August 16-19, 2013. The script prompts the user for input and provides numerical values indicating the benefits of the project's solution compared to the existing Air Traffic Management system currently deployed in the USA. Additionally, relevant charts and heatmaps are generated and stored in the OutputImages folder. The execution of the code has been performed using flight schedules obtained from the tested dates, and the corresponding output can be found in the Results Folder.

sudo chmod +x runEvaluator.sh 
./runEvaluator.sh [DATE OPTION] [NUMBER OF FLIGHTS OPTION]

[DATE OPTION] = [2013-08-16 | 2013-08-17 | 2013-08-18 | 2013-08-19]  // Date to evaluate for
[NUMBER OF FLIGHTS OPTION] = [-1 | X]  // -1 for the complete flight schedule or X for a truncated schedule with X flights  

Cite our work

Published in Transport and Telecommunication Journal, Vol. 24, Issue 3 (June 2023). To cite our work, use the following

Rampure,R.,Tiruvallur,R.,Acharya,V.,Navad,S. & Preethi,P.(2023).
Air Traffic Management Using a GPU-Accelerated Genetic Algorithm.
Transport and Telecommunication Journal,24(3) 266-277.
https://doi.org/10.2478/ttj-2023-0021