Pigzaum / bc_irp

Inventory-routing problem (IRP) branch-and-cut algorithm using C++ Gurobi's API and CVRPSEP package

Repository from Github https://github.comPigzaum/bc_irpRepository from Github https://github.comPigzaum/bc_irp

Inventory-routing problem (IRP) branch-and-cut algorithm using CVRPSEP package

A C++ implementation of an IRP [1] branch-and-cut algorithm using Gurobi's API and CVRPSEP package [2].

Prerequisites

  • CMake.

  • C++17 compiler or an early version.

  • GUROBI solver (9 or an early version). Academics can obtain it via this link.

Compile and run instructions

Go to the source code folder and to compile type:

cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Debug
cmake --build build

for the debug version or simply

cmake -H. -Bbuild
cmake --build build

for the release version.

To run with a configuration file:

$ ./build/irp_solver -f [configuration file path]

See the "example.cfg" file at the "input" folder for an example of the input configuration file.

References

[1] C. Archetti, L. Bertazzi, G. Laporte and M. G. Speranza. A Branch-and-Cut Algorithm for a Vendor-Managed Inventory-Routing Problem Transportation Science, 41(3), 2007, pp. 382-391.

[2] J. Lysgaard, A.N. Letchford and R.W. Eglese. A New Branch-and-Cut Algorithm for the Capacitated Vehicle Routing Problem, Mathematical Programming, vol. 100 (2), pp. 423-445

About

Inventory-routing problem (IRP) branch-and-cut algorithm using C++ Gurobi's API and CVRPSEP package

License:GNU General Public License v3.0


Languages

Language:C++ 94.3%Language:C 4.5%Language:CMake 1.2%