Application of quantum computation for stochastic optimization on the example of railway/tramway network in Baltimore.
Files:
-
QTrains- source code -
tests- testing source code -
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 -
QUBOs- qubos of railway problems -
QAOA Results- results of quantum gate computing via QAOA -
histograms- histograms from data analysis -
histograms_soft- histograms from data analysis with a soft check of minimal passing time constrain.
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
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/
Script plots4article.py creates .csv files for high-quality plots for article, and saves them in the article_plots folder.
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