This repository has been archieved. Please see op-solver.
Compass is a solver for the Orienteering Problem written in C.
It includes some routines originally released in the Concorde solver. Note that these routines were released under an Academic Licence.
Compass is distributed under the GNU General Public License.
Compass uses GNU Autotools
sudo apt-get install libtool m4Compass uses GSL library for sampling distributions.
sudo apt-get install libgsl0-dev libatlas-base-dev libbfd-dev libiberty-devThe source code is available in:
git clone https://github.com/bcamath-ds/compassIf the configure script is absent you can generate it using GNU Autotools:
autoheader
libtoolize
aclocal
automake --add-missing
autoconfTo build the binary type:
./configure
makeAdditional build instructions are in the INSTALL file.
To solve an OP instance
./compass --op <instance_file>
The benchmark instances for the OP can be found in the OPLib repository:
git clone https://github.com/bcamath-ds/OPLib
./compass --op --op-ea4op OPLib/gen3/eil101-gen3-50.oplib
To see additional parameters and options:
./compass -h
Simplified directory layout (only essential files/directories):
ROOT Root directory
βββ AUTHORS Authors file
βββ compass Compass binay
βββ configure Configure
βββ configure.ac Autotools file to generate configure
βββ COPYING Copyright information
βββ INSTALL Installation instructions
βββ LICENSE License details
βββ Makefile Running "make" uses this file
βββ Makefile.am Autotools file to generate the Makefile
βββ README.md This file
βββ src
βββ compass.c Compass main file
βββ compass.h Compass header file
β
βββ data **Data**
βΒ Β βββ data.c
βΒ Β βββ data.h Data header file
βΒ Β βββ delaunay.c Delaunay triangulations
βΒ Β βββ delaunay.h Delaunay header file
βΒ Β βββ edgelen-cc.c
βΒ Β βββ kdtree
βΒ Β βΒ Β βββ kdbuild.c
βΒ Β βΒ Β βββ kdnear.c
βΒ Β βΒ Β βββ kdspan.c
βΒ Β βΒ Β βββ kdtree.h
βΒ Β βΒ Β βββ kdtwoopt.c
βΒ Β βββ near.c
βΒ Β βββ neigh.h
βΒ Β βββ xnear.c
β
βββ env Envirment utilities: alloc, time, errors...
βΒ Β βββ ...
βββ Makefile.am
β
βββ op **Orienteering Problem**
βΒ Β βββ ea Evolutionary Algorithm
βΒ Β βΒ Β βββ add.c Add operator
βΒ Β βΒ Β βββ crossover.c Crossover operator
βΒ Β βΒ Β βββ drop.c Drop operator
βΒ Β βΒ Β βββ ea.c EA main file
βΒ Β βΒ Β βββ ea.h EA header file
βΒ Β βΒ Β βββ mutation.c Mutation operator
βΒ Β βΒ Β βββ selection.c Parent selection
βΒ Β βββ init Solution initialization
βΒ Β βΒ Β βββ init.c Initialization main file
βΒ Β βΒ Β βββ select.c Node selection
βΒ Β βββ io.c Read/write OPLib
βΒ Β βββ op.c OP main file
βΒ Β βββ op.h OP header file
βΒ Β βββ prob.c OP structures
βΒ Β βββ solution.c Solution manipulations
β
βββ prob.c Compass problem structures
β
βββ tsp **Travelling Salesperson Problem**
βΒ Β βββ init Solution initialization
βΒ Β βΒ Β βββ init.c Initialization main file
βΒ Β βββ linkern Lin-Kernighan
βΒ Β βΒ Β βββ flip_two.c
βΒ Β βΒ Β βββ linkern.c Lin-Kernighan main file
βΒ Β βΒ Β βββ linkern.h Lin-Kernighan header file
βΒ Β βββ ls TSP local searchs
βΒ Β βΒ Β βββ ls.c Local search main file
βΒ Β βββ prob.c TSP structures
βΒ Β βββ tsp.c TSP main file
βΒ Β βββ tsp.h TSP header file
β
βββ util Other utilities
Β Β βββ ...