A project for optimizing aircraft routing problems using advanced algorithms including Christofides and Chained Lin-Kernighan heuristics.
- Logan Markley
- Maanav Damaraju
- Matthew Dominicis
- Shreyas Mocherla
- Ayman Rahman
- Vishaanth Muddu
This project focuses on solving aircraft routing optimization problems using algorithmic approaches. It consists of:
- A frontend built with Next.js that provides a user interface for visualization and interaction
- A backend written in Python that implements the Christofides algorithm with Chained Lin-Kernighan optimization
The easiest way to run the entire application is using Docker Compose:
-
Make sure you have Docker and Docker Compose installed on your system.
-
Clone this repository:
git clone [repository-url] cd [repository-name]
-
Start the application:
docker compose up --build
-
Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5001
The application will automatically restart unless stopped. To stop the application, use:
docker compose down
If you prefer to run the components separately without Docker:
Navigate to the backend-directory
folder and follow the instructions in its README to set up the Python environment and run the optimization algorithms.
Navigate to the frontend-directory
folder and follow the instructions in its README to set up the Next.js development environment and interact with the application.
/backend-directory
- Contains the core optimization algorithms and problem generators/frontend-directory
- Contains the web interface for interacting with the optimization engine
The application uses a shared volume for data persistence:
- Data is stored in
./backend-directory/data
- This data is accessible to both the backend and frontend containers
- Any changes made to the data will persist across container restarts