This repository contains the source code to reproduce the Inverse Optimization (IO) approach to the Amazon Last Mile Routing Research Challenge from the paper Inverse Optimization for Routing Problems.
To test the code in this repository, you need to follow the steps:
- Download the Amazon Challenge datasets here.
- Run
process_data.py
. This script preprocesses the datasets and splits them per depot (needs to be run only once). - Run
main.py
. This script can be executed in the terminal/command line or IDE.
The following Python packages are required:
numpy
.invopt
: this package is used to solve the IO problem.gurobipy
orortools
: our IO approach to the Amazon Challenge requires a Traveling Salesperson Problem (TSP) solver. Two options are available: one using Gurobi, which solves the TSP to optimality (slow), and one using Google OR Tools, which solves the TSP approximately (fast).
If you use this repository, please cite the accompanying paper:
@article{zattoniscroccaro2023inverse,
title={Inverse Optimization for Routing Problems},
author={Zattoni Scroccaro, Pedro and van Beek, Piet and Mohajerin Esfahani, Peyman and Atasoy, Bilge},
journal={https://arxiv.org/abs/2307.07357},
year={2023}
}