Paper Title: Improved Throughput for All-or-Nothing Multicommodity Flows with Arbitrary Demands Contents of the Code Folder: Network data files networkVariator.py tempdata.txt randomizedRounding.py compactLP.py mwu.py permutationRouting.py derandomization.py estimators.py reader.py Data File Format: Every file used as a network file needs to be in a certain format. - We first have all the commodities listed in the format (source,sink,demand,weight). - Next, we have all the edges of the network in the format (node1,node2,capacity). - Every commodity and edge is on a separate line. Dependencies: CPLEX (we used CPLEX V22.1.1) Python libraries as noted in the import section of all the files -matplotlib -numpy -random -copy -math -time -tqdm -scipy Running the Code: - Randomized Rounding Algorithm: 1. Change the networkKey, file path, gamma and solveKey in randomizedRounding.py. 2. Run "python randomizedRounding.py". 3. The output will be saved in a file named "RandomizedRounding_networkKey_solvekey_epsilon.txt". - Derandomization Algorithm: 1. Change the networkKey, file path, gamma and solveKey in derandomization.py. 2. Reader.py reads a file that contains the output of a fractional LP solution and stores it in memory. See tempdata.txt in the helper folder for proper formatting. The contents of this file reflect the input of derandomization.py. 3. Run "python derandomization.py". 4. The output will be saved in a file named "Derandomized_Algorithm_networkKey_solvekey_epsilon.txt". - Adding a new network: The networkVariator.py file in the helper folder takes in a network and randomly perturbs edge capacities, and commodity demands and weights. It then removes commodities that are not individually routable and outputs a new network.