Skip to content

acco93/filo2

Repository files navigation

FILO2

Italia FILO2 is an evolution of FILO able to tackle much larger CVRP instances with a very ordinary computing system. Less than ten minutes and 10GB of RAM are enough to execute 100k FILO2 iterations and get a (possibly very bad) solution for an instance with 1 million customers. On the X and B datasets FILO2 behaves pretty much like FILO in terms of quality (sometimes it is even slightly better) but it has a considerably lower time growth rate that becomes very visible for instances with more than 5k customers.

Changes and computational results are described in the draft and in the paper. This repository contains raw results and the algorithm source code.

Updates

The code has received some updates related to implementation details

  • Mar 11, 2024 - Commit 42276b7: use faster rounding procedure
  • Mar 13, 2024 - Commit 2127972: use a more efficient set implementation in ruin&recreate and local search procedures
  • Nov 24, 2024 - Commit 292c3c1: simplify move generator class. The algorithm ìs ≈27% faster (on short runs) and uses ≈7% less memory

Get the code

git clone git@github.com:acco93/filo2.git

Note that the repo includes ≈1.5GB of result files.

Build & run

cd filo2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_VERBOSE=1
make -j

./filo2 ../instances/I/Lazio.vrp

Compile time cmake options

  • ENABLE_VERBOSE: prints info while processing
  • ENABLE_GUI: shows a graphical representation (slows down thing a little)

The I dataset ... in pictures

Valle d'Aosta

Molise

Trentino-Alto Adige

Basilicata

Umbria

Abruzzo

Friuli-Venezia Giulia

Liguria

Calabria

Marche

Sardegna

Campania

Piemonte

Toscana

Puglia

Sicilia

Veneto

Emilia-Romagna

Lombardia

Lazio

About

A more scalable version of FILO.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published