https://github.com/iitis/quantum-stochastic-optimization-railways
application of quantum computation for stochastic optimization on example of railway/tramway network in Baltimore
https://github.com/iitis/quantum-stochastic-optimization-railways
Last synced: 8 months ago
JSON representation
application of quantum computation for stochastic optimization on example of railway/tramway network in Baltimore
- Host: GitHub
- URL: https://github.com/iitis/quantum-stochastic-optimization-railways
- Owner: iitis
- License: cc0-1.0
- Created: 2023-11-10T15:09:02.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-11T12:47:48.000Z (about 2 years ago)
- Last Synced: 2025-01-17T13:32:34.708Z (over 1 year ago)
- Language: Python
- Size: 129 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# quantum-stochastic-optimization-railways
Application of quantum computation for stochastic optimization on the example of railway/tramway network in Baltimore.
Files:
1. ```QTrains``` - source code
2. ```tests``` - testing source code
3. ```solutions``` - stored solutions of railway problems, if for particular parameters setting computations have already been stored, new computation will not be performed and the particular file will not be overwritten
4. ```QUBOs``` - qubos of railway problems
5. ```QAOA Results``` - results of quantum gate computing via QAOA
6. ```histograms``` - histograms from data analysis
7. ```histograms_soft``` - histograms from data analysis with a soft check of minimal passing time constrain.
#### Quantum annealing
In ```process_q_annealing.py ``` trains scheduling problems are solved via Integer Linear Programming and quantum (or simulated) annealing
Arguments:
- --mode MODE: process mode: 0: prepare only QUBO, 1: make, computation (ILP and annealing), 2: analyze outputs, 3: count q-bits, 4: prepare Ising model 5: CPLEX benchmark - by default: ```2```
- --simulation SIMULATION: if True solve/analyze output of simulated annealing (via DWave software), if False real annealing - by default: False
- --softern_pass SOFTERN_PASS: if true analyze output without feasibility check on a minimal passing time constrain - by default: False
Example usage:
```python3 process_q_annealing.py --mode 1 --sim True```
Solve the series of problems by simulated annealing (does not perform calculations already performed and saved).
```python3 process_q_annealing.py --mode 1```
Solve the series of problems by real D-Wave annealing (does not perform calculations already performed and saved).
```python3 process_q_annealing.py --mode 2 --softern_pass True```
#### Quantum gate computing
Script ```process_q_gates.py``` saves QUBO and the ground state as well as analyses output dedicated to gates computing.
Arguments:
- --notrains NOTRAINS number of trains, 1,2,4 are supported, by default: ``2``
- --savequbo SAVEQUBO if True prepare qubo else to analyze outputs, by default: False
- --nolayers NOLAYERS number of layers of QAOA in analyzed data, by default: ```1```
- --datafile DATAFILE file with data, by default: ```"QAOA Results/IonQ Simulations/"```
Example usage:
```python3 process_q_gates.py --notrains 2 --nolayer 1 --datafile "QAOA Results/IonQ Simulations/" ```
Analyzes ```2``` trains results in ```"QAOA Results/IonQ Simulations/" ``` where ```2``` layers of QAOA was used
```python3 process_q_gates.py --notrains 2 --savequbo true ```
Prepared QUBOs for ```2``` trains problems and save them in ```QUBOs/gates/2trains/```
#### Preparing plots for the article
Script ```plots4article.py``` creates .csv files for high-quality plots for article, and saves them in the ```article_plots``` folder.
# Funding
Scientific work co-financed from the state budget under the program of the Minister of Education and Science, Poland (pl. Polska) under the name "Science for Society II" project number NdS-II/SP/0336/2024/01 funding amount ```1000000``` PLN total value of the project ```1000000``` PLN