This repository contains the instances and code used in our paper "Vessel Service Planning in Seaports".
- Code supplement for the paper "Vessel Service Planning in Seaports" by Lingxiao Wu, Yossiri Adulyasak, Jean-François Cordeau, and Shuaian Wang.
- If you need help using the code, please send an email to lingxiaowu513[at]gmail[dot]com.
- Visual Studio 10.0 or higher (https://visualstudio.microsoft.com).
- CPLEX 12.6 or higher (https://www.ibm.com/analytics/cplex-optimizer).
- See how to write C++ applications using CPLEX with Concert Technology (https://www.ibm.com/docs/en/icos/12.7.1.0?topic=tutorials-tutorial).
- The instance data are provided in the folder "data".
- For a detailed explanation of the instance data, find the "README" file in the folder "data".
-
Code of all algorithms used in our computational experiments is provided in the folder "sourcecode".
-
List of .cpp files in the subfolder "src":
- BPBC_ALL: the BPBC approach with all enhancements
- BPBC_DCG: the BPBC approach with dynamic constraint generation but without all the other enhancements
- BPBC_NODCG: the BPBC approach without dynamic constraint generation but with all the other enhancements
- BPBC_NOLBL: the BPBC approach without LBL cuts but with all the other enhancements
- BPBC_NONE: the BPBC approach with no enhancements
- BPBC_NOPH: the BPBC approach without primal heuristics but with all the other enhancements
- BPBC_NOVF: the BPBC approach without variable fixing but with all the other enhancements
- BPBC_NOWS: the BPBC approach without warm start but with all the other enhancements
- CPLEX_M1: CPLEX on model M1 10.CPLEX_SM1: CPLEX on model SM1 11.SEQOPT: the sequential optimization method 12.TPBC: the TPBC approach
-
List of .h files in the subfolder "inc":
- Selfmath.h: user-defined c++ library header file for two functions
- To run an algorithm for solving an instance:
- Create a C++ project in Visual Studio;
- Compile C++ project with CPLEX in Concert Technology;
- Load Selfmath.h and the .cpp file of the algorithm into the project;
- Copy the instance data from the "data" folder;
- Load the data into the code for the algorithm between lines "//input data starts here" and "//input data ends here";
- Build and run the code;
- Obtain the results from the console window.