This code is loosely associated with our paper [1].
It features a cutting plane method used to solve the Euclidean max-sum diversity problem (EMSDP). The cutting plane method is implemented using CPLEX 22.1 using the lazy constraint callback functionality.
Four solvers have been made:
ct: The cut plane solveroa: Uses convexified outer approximationct_lm: A low-memory implementation ofctglover: A glover linearisation of the EMSDPquad: A quadratic programming formulation of the EMSDPobma: A heuristic procedure
Each is used as follows:
ct instance_set instance_file output_file p_ratio timelimitTo build:
mkdir build
cd build
cmake ..
make
cd -To then repeat the experiments, we use the handy bq tool, so start by making as many workers as required. Then run
./sh/bq -w # repeat as many times as you need
./sh/run_GKD
./sh/run_TSPNote that this will look in data/ for the instance data.
This is available here.