First, download the source code:
git clone https://github.com/alberto-santini/orienteering-alns.git
cd orienteering-alns
The programme can be built in a straightforward way, provided that all required libraries are available.
mkdir third_party
These are:
export CPLUS_INCLUDE_PATH=<CPLEX_STUDIO_DIR>/cplex/include/:<CPLEX_STUDIO_DIR>/concert/include/
export LIBRARY_PATH=<CPLEX_STUDIO_DIR>/cplex/lib/x86-64_linux/static_pic/:<CPLEX_STUDIO_DIR>/concert/lib/x86-64_linux/static_pic/
You might need to change
x86-64_linux
with the appropriate directory name.
2. The LKH heuristic solver for the Travelling Salesman Problem.
wget http://akira.ruc.dk/~keld/research/LKH/LKH-2.0.9.tgz
tar xvzf LKH-2.0.9.tgz
cd LKH-2.0.9
make
mkdir -p ~/local/bin/
cp LKH ~/local/bin/
cd ..
3. The CImg image manipulation library.
git clone --depth=1 https://github.com/dtschump/CImg.git
cp CImg/CImg.h third_party/
4. The ProgramOptions.hxx library.
wget https://raw.githubusercontent.com/Fytch/ProgramOptions.hxx/master/include/ProgramOptions.hxx -P third_party
5. My own library of miscellaneous utilities, called AS and available on GitHub.
git clone https://github.com/alberto-santini/as.git
mkdir third_party/as
cp as/src/* third_party/as/
6. My ALNS (Adaptive Large Neighbourhood Search) library, also available on GitHub.
git clone https://github.com/alberto-santini/adaptive-large-neighbourhood-search.git
mkdir third_party/palns
cp -r adaptive-large-neighbourhood-search/src/* third_party/palns/
Once the required libraries are installed, build it with:
cd source-code
g++ -o orienteering-alns -O3 -std=c++17 \
-I../third_party \
*.cpp palns/*.cpp \
-lm -lpthread -lX11 -lstdc++fs -lconcert -lilocplex -lcplex
The programme is distributed under the GNU General Public License, version 3.
See the LICENSE
file.