This code has been entirely superseded by a new version, which features a major reimplementation and cleanup of the entire code. Readers are advised to refer to the new repository, which reproduces the results of this code in full. This repo is kept for reproducibility purposes only.
This repository contains the code employed to produce the results presented in "A Linear Algebraic Framework for Quantum Internet Dynamic Scheduling".
The repository is divided in three main folders: GS houses the code for the Greedy Scheduler, while MWFK and MWPK host respectively the Full Information and Partial Information Max Weight schedulers. The directories are numbered to make manipulating the code from command line more convenient.
Q_class.py
contains the implementation of the queue object, both qubit and demand, representing a quantum link;GlobalFunctions.py
defines a set of functions that affect all queues in the system;MainSim.py
is the actual simulation engineParSweep.py
runs several parallel instances of 'MainSim.py' to perform the simulation and collect data.
MWSolve_gurobi.py
is an interface to the Gurobi linear solver.
-ImpossibleOrders.py
implements the rank-based conflict management system discussed in the paper.
Fred.py
collects FG's code for M matrix generation and network graph drawing;KnockOffRand.py
is a simple pseudorandom generator which works by pregenerating a pool of samples and iterating through it.
The simulator is run by executing the ParSweep.py
file in each of the folders. The simulation scenario can be customized by editing the variables inside the Sim_input.py
file.