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.pycontains the implementation of the queue object, both qubit and demand, representing a quantum link;GlobalFunctions.pydefines a set of functions that affect all queues in the system;MainSim.pyis the actual simulation engineParSweep.pyruns several parallel instances of 'MainSim.py' to perform the simulation and collect data.
MWSolve_gurobi.pyis an interface to the Gurobi linear solver.
-ImpossibleOrders.py implements the rank-based conflict management system discussed in the paper.
Fred.pycollects FG's code for M matrix generation and network graph drawing;KnockOffRand.pyis 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.