PyEPO: A PyTorch-based End-to-End Predict-then-Optimize Library for Linear and Integer Programming

06/28/2022
by   Bo Tang, et al.
0

In deterministic optimization, it is typically assumed that all parameters of the problem are fixed and known. In practice, however, some parameters may be a priori unknown but can be estimated from historical data. A typical predict-then-optimize approach separates predictions and optimization into two stages. Recently, end-to-end predict-then-optimize has become an attractive alternative. In this work, we present the PyEPO package, a PyTorch-based end-to-end predict-then-optimize library in Python. To the best of our knowledge, PyEPO (pronounced like "pineapple" with a silent "n") is the first such generic tool for linear and integer programming with predicted objective function coefficients. It provides two base algorithms: the first is based on the convex surrogate loss function from the seminal work of Elmachtoub Grigas (2021), and the second is based on the differentiable black-box solver approach of Vlastelica et al. (2019). PyEPO provides a simple interface for the definition of new optimization problems, the implementation of state-of-the-art predict-then-optimize training algorithms, the use of custom neural network architectures, and the comparison of end-to-end approaches with the two-stage approach. PyEPO enables us to conduct a comprehensive set of experiments comparing a number of end-to-end and two-stage approaches along axes such as prediction accuracy, decision quality, and running time on problems such as Shortest Path, Multiple Knapsack, and the Traveling Salesperson Problem. We discuss some empirical insights from these experiments which could guide future research. PyEPO and its documentation are available at https://github.com/khalil-research/PyEPO.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/18/2021

The Perils of Learning Before Optimizing

Formulating real-world optimization problems often begins with making pr...
research
11/09/2022

A Note on Task-Aware Loss via Reweighing Prediction Loss by Decision-Regret

In this short technical note we propose a baseline for decision-aware le...
research
12/04/2020

Divide and Learn: A Divide and Conquer Approach for Predict+Optimize

The predict+optimize problem combines machine learning ofproblem coeffic...
research
10/22/2017

Smart "Predict, then Optimize"

Many real-world analytics problems involve two significant challenges: p...
research
10/26/2020

Interior Point Solving for LP-based prediction+optimisation

Solving optimization problems is the key to decision making in many real...
research
07/06/2023

LEO: Learning Efficient Orderings for Multiobjective Binary Decision Diagrams

Approaches based on Binary decision diagrams (BDDs) have recently achiev...
research
05/23/2022

DOGE-Train: Discrete Optimization on GPU with End-to-end Training

We present a fast, scalable, data-driven approach for solving linear rel...

Please sign up or login with your details

Forgot password? Click here to reset