README file for compiling the BCP code for solving the TDTSP
------------------------------------------------------------
*************
Requirements:
*************
This code requires the following third party codes/libraries to run:
- CPLEX
- COIN-BCP
**************************
Obtaining the source code:
**************************
Download the main source code via subversion using the command:
svn co https://algo4tdtsp.svn.sourceforge.net/svnroot/algo4tdtsp TDTSP_DIR
where TDTSP_DIR is the local directory where the code will be located.
Obtaining COIN-BCP source code:
-------------------------------
This code requires the COIN-BCP framework to function. The version that this code was tested on was BCP 1.2.3.
Bcp 1.2.3 can be obtained at:
http://www.coin-or.org/download/source/Bcp/Bcp-1.2.3.zip
WARNING: The official Bcp 1.2.3 code was running out of memory for larger TDTSP
instance runs. This was due to not freeing some of the data structures after
processing branch nodes until the end of the search. We changed the official Bcp
1.2.3 code to correct that and were able to run the larger instances only after
that change. The modified Bcp 1.2.3 code is available upon request.
*****************************
Instructions for compilation:
*****************************
Compiling BCP:
--------------
Once all the code has been downloaded, compile Bcp as instructed in their files.
The configuration we ran with was:
../configure --enable-static --enable-shared -C --with-cplex-lib=-L(CPLEX_LIB_DIR) -lcplex -lpthread --with-cplex-incdir=(CPLEX_INC_DIR)
where (CPLEX_LIB_DIR) is the directory where the libcplex.a file is located and
(CPLEX_INC_DIR) is the directory where the cplex.h file is located.
Compiling the TDTSP code:
-------------------------
After downloading the code to the TDTSP_DIR directory, do:
cd TDTSP_DIR/BCP
Then edit the make.conf file to specify the appropriate directories for
- CPLEX_LIB_DIR
- CPLEX_INC_DIR
- COIN-BCP
as well as the directories where the .o, .d and binary files will be located. By
default these are the subdirectories obj, dep, and the current directory.
After doing that, just run
make
and the executable file should be produced in the directory BIN_DIR (specified
in make.conf)
****************
Running the code
****************
The code can be run simply by calling:
./tdtsp_bcp INSTNAME
in the directory where the binary file is located. INSTNAME is the name of the
TSPLIB instance that will be read. Currently, the code is setup to read TSPLIB
instances and transform them into TDP instances. There is no convention for
input files for general TDTSP format, but our code is prepared to handle that as
long as the appropriate reading function is implemented.
For convenience, a list of benchmark instances is located in TDTSP_DIR/instances
An additional argument can be specified after INSTNAME, which specifies the
value of a known feasible solution to the instance.