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.
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.
Users can use the side panel on the right to view their choice and generate the path.
"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.
QuiQ relies on a backend and frontend server to run the application. To run the application locally the following steps have to be staken.
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
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
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}
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.
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.
Users can use the side panel on the right to view their choice and generate the path.
"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.
QuiQ relies on a backend and frontend server to run the application. To run the application locally the following steps have to be staken.
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
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
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}
linkedin: https://www.linkedin.com/in/arminulrich/ github: https://github.com/grid-rider
linkedin: https://www.linkedin.com/in/evan-brody/ github: https://github.com/brje0
linkedin: https://www.linkedin.com/in/xiaoteng-frank-liu-95277b232/ github: https://github.com/lapisliu
linkedin: https://www.linkedin.com/in/ninad-moharir github: https://github.com/ninadwastaken
linkedin: https://www.linkedin.com/in/heejinjang github: https://github.com/hj2118
