-
Notifications
You must be signed in to change notification settings - Fork 17
Using REPETITA
The easiest use case for Repetita is to run one of its already implemented solvers from command line.
Say you have a topology and a demands file called, respectively, instance.graph
and instance.demands
in the data/
directory.
The following commands will produce, in 10 seconds, an instance.paths
file containing a Segment Routing path for every demand.
We will use the topology 2016TopologyZooUCL_inverseCapacity/Abilene.graph
and the demand file 2016TopologyZooUCL_inverseCapacity/Abilene.0000.demands
, for the sake of the example.
Repetita features a Mixed Integer Programming (MIP) model of 2-SR inspired by Bhatia et al. . This model computes SR-paths with at most one detour, optimally.
The backend solver is Gurobi that need to be installed separately. It has been tested with Gurobi 6.5 and 7.0. Once Gurobi is installed, type:
$ ./repetita -graph data/2016TopologyZooUCL_inverseCapacity/Abilene.graph -demands data/2016TopologyZooUCL_inverseCapacity/Abilene.0000.demands -solver MIPTwoSRNoSplit -t 10 -outpaths instance.paths
This uses the CP algorithm described in DEFO-CP
$ ./repetita -graph data/2016TopologyZooUCL_inverseCapacity/Abilene.graph -demands data/2016TopologyZooUCL_inverseCapacity/Abilene.0000.demands -solver defoCP -t 10 -outpaths instance.paths
This uses the local search algorithm described in SRLS
$ ./repetita -graph data/2016TopologyZooUCL_inverseCapacity/Abilene.graph -demands data/2016TopologyZooUCL_inverseCapacity/Abilene.0000.demands -solver SRLS -t 10 -outpaths instance.paths