avxs

This repository contains the code associated with the paper “A Hybrid Metaheuristic for Single Truck and Trailer Routing Problems”.

Table of contents

Abstract

In the paper, we propose a general solution approach for a broad class of vehicle routing problems that all use a single vehicle, composed of a truck and a detachable trailer, to serve a set of customers with known demand and accessibility constraints. A more general problem, called the Extended Single Truck and Trailer Routing Problem (XSTTRP), is used as a common baseline to describe and model this class of problems. In particular, the XSTTRP contains, all together, a variety of vertex types previously only considered separately: truck customers, vehicle customers with and without parking facilities, and parking-only locations. To solve XSTTRP we developed a fast and effective hybrid metaheuristic, consisting of an iterative core part, in which routes that define high-quality solutions are stored in a pool. Eventually, a set-partitioning based post-optimization selects the best combination of routes that forms a feasible solution from the pool. The algorithm is tested on extensively studied literature problems such as the Multiple Depot Vehicle Routing Problem, the Location Routing Problem, the Single Truck and Trailer Routing Problem with Satellite Depots, and the Single Truck and Trailer Routing Problem. Finally, computational results and a thorough analysis of the main algorithm’s components on newly designed XSTTRP instances are provided. The obtained results show that the proposed hybrid metaheuristic is highly competitive with previous approaches designed to solve specific specialized problems, both in terms of computing time and solution quality.

Software

Directories and files

The repository contains the following directories and files

Requirements

The following programs are needed either to build the code or to perform some extra tasks such as creating pdf files with the graphic representation of the solutions.

To correctly compile and build the executable and to run scripts/build.sh

To successfully run scripts/run.sh

* suggested version. Previous (recent) versions should work too.

Build options

You can provide the following optional cmake compilation options

The previous directives can be turn on or off by using -DENABLE_XXXX=ON or -DENABLE_XXXX=OFF, respectively. See the example below or check the scripts into the scripts directory.

Note that it is necessary to recompile the program to apply the changes

cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_VND=ON && cmake --build . --target all -- -j 4

As previously stated, use OFF to disable an already enabled feature

cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_POLISHING_PHASE=OFF && cmake --build . --target all -- -j 4

Usage

The algorithm requires a unique mandatory argument

In addition, you can provide the following optional command line arguments

Arguments can be given in any order but must all be provided with --

./avxs --files ../instances/xsttrp/xsttrp25 ../instances/mdvrp/p18 --runs 5 --tex-pictures --log file.txt

License

GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007