Skip to content

Using REPETITA

svissicchio edited this page May 15, 2018 · 3 revisions

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.

Routing with MIP

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

Routing with CP

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

Routing with Local Search

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