Skip to content

Repo that contains code submitted by Team 7 for the HaQthon at NYU Tandon in Fall 2023. Framework developed: QuiQ. A novel approach to weighted graph path optimization using Quantum Technology.

Notifications You must be signed in to change notification settings

armulrich/Qpath_optimizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuiQ by Team 7 for NYU Tandon HAQathon, Fall 2023

Qpath_optimizer

Welcome to Our Project

The theme of the NYU Tandon HAQathon is sustainability, and we are proud to be one of the seven teams this fall. At NYU, we value sustainbility, not as a slogan, but as our mission. Together, we wanted to build a tool that addresses sustainbility by using techniques from both classical and quantum computing to reduce carbon footprint and improve efficiency. We depend heavily on public transport in New York City, but oftentimes, due to outdated designs, the public transport system requires a far longer route than the linear distance to the destination. We attempt to use quantum computing optimization techniques to simulate a path for future applications.

Introducing QuiQ, a path finding algorithm that uses optimizations to obtain the best result. This tool utilizes open source data from NYC to generate data sets for calculation. The links to our source data is below:

Population Density: https://www.kaggle.com/datasets/muonneutrino/new-york-city-census-data

Borough Boundaries: https://data.cityofnewyork.us/City-Government/Borough-Boundaries/tqmj-j8zm

All NYC subway stations: https://data.cityofnewyork.us/Transportation/Subway-Stations/arq3-7z49

Qpath-optimizer uses quantum optimization techniques to provide an advantage in computing resource usage. Specifically, QuiQ uses Quadratic Unconstrained Binary Optimization (QUBO) and Quantum Approximate Optimization Algorithm (QAOA), and materials we referenced to is linked below:

Shortest path with quantum annealer: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9186612

This projects aims to save valuable time for future planning and can be generalized to many optimization problems. In specific, new subway route planning and water distribution.

Details on technical information and navigating through the code file is documented below.

Frontend Discription

Control panel

The control panel at the bottom allows the user to choose the starting point, or the endpoint, clear the view, or just the cursor to drag the map.

Side panel

Users can use the side panel on the right to view their choice and generate the path.

Backend Discription

"Data" is a folder than contains all the data sets we accessed from open data sites.

"map.py" process the raw data and turns matrices of different purposes for later usage.

"graph.py" takes the data sets generated by "map.py" and further completes the graph needed. In which vertices will be connected with edges.

"PathFinder.py" imports data structures and maps created by "graph.py" and "map.py" to construct the best path between two points entered by the user. PathFinder is the backbone of the entire backend algorithms as it manages the cost of each vertex using classical computing and utilize quantum computations to return the final result as a list of points.

Running QuiQ

QuiQ relies on a backend and frontend server to run the application. To run the application locally the following steps have to be staken.

Frontend Server

The frontend server, which is contained within /application is run through a web pack dev server . In one terminal window of the application directory on must first install all dependencies:

npm install

Then you're ready to go. Just run the development server through the following command (instructions also listed in application folder):

npm run dev

Backend Server

The backend server, which is contained within /backend is run through Flask . Open a second terminal window and run the Flask application through the following command:

python3 application.py

Note: Both the Frontend and Backend server must be running for the web app to run correctly

Google Maps Key

The frontend also relies on a .env file that is placed into the root of /application. The .env file contains a google maps key that is generated, and look as follows:

NEXT_PUBLIC_GOOGLE_MAPS_API_KEY={Your Key}

QuiQ by Team 7 for NYU Tandon HAQathon, Fall 2023

Qpath_optimizer

Welcome to Our Project

The theme of the NYU Tandon HAQathon is sustainability, and we are proud to be one of the seven teams this fall. At NYU, we value sustainbility, not as a slogan, but as our mission. Together, we wanted to build a tool that addresses sustainbility by using techniques from both classical and quantum computing to reduce carbon footprint and improve efficiency. We depend heavily on public transport in New York City, but oftentimes, due to outdated designs, the public transport system requires a far longer route than the linear distance to the destination. We attempt to use quantum computing optimization techniques to simulate a path for future applications.

Introducing QuiQ, a path finding algorithm that uses optimizations to obtain the best result. This tool utilizes open source data from NYC to generate data sets for calculation. The links to our source data is below:

Population Density: https://www.kaggle.com/datasets/muonneutrino/new-york-city-census-data

Borough Boundaries: https://data.cityofnewyork.us/City-Government/Borough-Boundaries/tqmj-j8zm

All NYC subway stations: https://data.cityofnewyork.us/Transportation/Subway-Stations/arq3-7z49

Qpath-optimizer uses quantum optimization techniques to provide an advantage in computing resource usage. Specifically, QuiQ uses Quadratic Unconstrained Binary Optimization (QUBO) and Quantum Approximate Optimization Algorithm (QAOA), and materials we referenced to is linked below:

Shortest path with quantum annealer: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9186612

This projects aims to save valuable time for future planning and can be generalized to many optimization problems. In specific, new subway route planning and water distribution.

Details on technical information and navigating through the code file is documented below.

Frontend Discription

Control panel

The control panel at the bottom allows the user to choose the starting point, or the endpoint, clear the view, or just the cursor to drag the map.

Side panel

Users can use the side panel on the right to view their choice and generate the path.

Backend Discription

"Data" is a folder than contains all the data sets we accessed from open data sites.

"map.py" process the raw data and turns matrices of different purposes for later usage.

"graph.py" takes the data sets generated by "map.py" and further completes the graph needed. In which vertices will be connected with edges.

"PathFinder.py" imports data structures and maps created by "graph.py" and "map.py" to construct the best path between two points entered by the user. PathFinder is the backbone of the entire backend algorithms as it manages the cost of each vertex using classical computing and utilize quantum computations to return the final result as a list of points.

Running QuiQ

QuiQ relies on a backend and frontend server to run the application. To run the application locally the following steps have to be staken.

Frontend Server

The frontend server, which is contained within /application is run through a web pack dev server . In one terminal window of the application directory on must first install all dependencies:

npm install

Then you're ready to go. Just run the development server through the following command (instructions also listed in application folder):

npm run dev

Backend Server

The backend server, which is contained within /backend is run through Flask . Open a second terminal window and run the Flask application through the following command:

python3 application.py

Note: Both the Frontend and Backend server must be running for the web app to run correctly

Google Maps Key

The frontend also relies on a .env file that is placed into the root of /application. The .env file contains a google maps key that is generated, and look as follows:

NEXT_PUBLIC_GOOGLE_MAPS_API_KEY={Your Key}

Authors

Armin Ulrich

linkedin: https://www.linkedin.com/in/arminulrich/ github: https://github.com/grid-rider

Evan Brody

linkedin: https://www.linkedin.com/in/evan-brody/ github: https://github.com/brje0

Xiaoteng (Frank) Liu

linkedin: https://www.linkedin.com/in/xiaoteng-frank-liu-95277b232/ github: https://github.com/lapisliu

Ninad

linkedin: https://www.linkedin.com/in/ninad-moharir github: https://github.com/ninadwastaken

Heejin Jang

linkedin: https://www.linkedin.com/in/heejinjang github: https://github.com/hj2118

About

Repo that contains code submitted by Team 7 for the HaQthon at NYU Tandon in Fall 2023. Framework developed: QuiQ. A novel approach to weighted graph path optimization using Quantum Technology.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6