# A linear input dependence model for interdependent networks

## Description

This repository contains raw data generated for use in Kaul and Rumpf 2021 (referenced below), and includes the results from a series of computational trials that compare the behaviors of binary and linear input dependence models for interdependent flow networks. A large number of artificial test networks was generated, solved exactly using the binary input dependence model, solved exactly using the linear relaxation, and then solved approximately using a randomized rounding algorithm based on the solution of the linear relaxation. The results from these trials suggest that the linear relaxation typically produces objective values extremely similar to the binary model while being significantly less computationally expensive, and that the linear relaxation can be used as part of a randomized rounding scheme to produce near-optimal feasible solutions to the binary model usually within only a few attempts, although these results can vary significantly by network. Moreover, the linear relaxation and randomized rounding schemes tend to perform better and to produce results closer to the binary model when the density of interdependent arcs is relatively low. See the README included in the data set for a full description.

## Files

## Steps to reproduce

This data set was compiled from the outputs of a C++ program which can be found online at the GitHub link referenced below. See the included README for a full description of the data set. A description of the program can be found in this study's original paper (Kaul and Rumpf 2021). To summarize, the program loops through a variety of network parameters (which can be edited within the main driver script), and for each combination of parameters uses a modified version of NETGEN (Klingman et al. 1974) to generate a set of randomized instances of the minimum-cost network flows problem with pairwise arc-to-arc interdependencies. Each test network is then solved exactly using CPLEX (via the CPLEX C++ API), first as a mixed integer-linear program by treating the interdependencies as binary, and next as a linear relaxation by treating the interdependencies as linear. The solution of this linear relaxation is then used as part of a series of randomized rounding schemes for approximating the solution of the binary model, using the fractional flows from the linear relaxation to randomly set interdependent arcs flow values to be either zero or maximal. Across all solution methods the objective value is recorded, as well as the number of attempts for each randomized rounding scheme (up to a cutoff of 1000 attempts). The raw output of the program is a set of separate text files which were then compiled into the unified data table included in this repository.