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

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Tang, Bo, Khalil, Elias B.
Format: Preprint
Published: 2022
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866911602120327168
author Tang, Bo
Khalil, Elias B.
author_facet Tang, Bo
Khalil, Elias B.
contents In deterministic optimization, it is typically assumed that all problem parameters are fixed and known. In practice, however, some parameters may be a priori unknown but can be estimated from contextual information. A typical predict-then-optimize approach separates predictions and optimization into two distinct stages. Recently, end-to-end predict-then-optimize has emerged as an attractive alternative. This work introduces the PyEPO package, a PyTorch-based end-to-end predict-then-optimize library in Python. To the best of our knowledge, PyEPO (pronounced like \textit{pineapple} with a silent ``n") is the first such generic tool for linear and integer programming with predicted objective function coefficients. It includes various algorithms such as surrogate decision losses, black-box solvers, and perturbed methods. PyEPO offers a user-friendly interface for defining new optimization problems, applying state-of-the-art algorithms, and using custom neural network architectures. We conducted experiments comparing various methods on problems such as Shortest Path, Multiple Knapsack, and Traveling Salesperson Problem, and discussed empirical insights that may guide future research. PyEPO and its documentation are available at https://github.com/khalil-research/PyEPO.
format Preprint
id arxiv_https___arxiv_org_abs_2206_14234
institution arXiv
publishDate 2022
record_format arxiv
spellingShingle PyEPO: A PyTorch-based End-to-End Predict-then-Optimize Library for Linear and Integer Programming
Tang, Bo
Khalil, Elias B.
Optimization and Control
Machine Learning
90C05, 90C10, 68T07, 68N30
G.1.6; I.2.6; D.2.2
In deterministic optimization, it is typically assumed that all problem parameters are fixed and known. In practice, however, some parameters may be a priori unknown but can be estimated from contextual information. A typical predict-then-optimize approach separates predictions and optimization into two distinct stages. Recently, end-to-end predict-then-optimize has emerged as an attractive alternative. This work introduces the PyEPO package, a PyTorch-based end-to-end predict-then-optimize library in Python. To the best of our knowledge, PyEPO (pronounced like \textit{pineapple} with a silent ``n") is the first such generic tool for linear and integer programming with predicted objective function coefficients. It includes various algorithms such as surrogate decision losses, black-box solvers, and perturbed methods. PyEPO offers a user-friendly interface for defining new optimization problems, applying state-of-the-art algorithms, and using custom neural network architectures. We conducted experiments comparing various methods on problems such as Shortest Path, Multiple Knapsack, and Traveling Salesperson Problem, and discussed empirical insights that may guide future research. PyEPO and its documentation are available at https://github.com/khalil-research/PyEPO.
title PyEPO: A PyTorch-based End-to-End Predict-then-Optimize Library for Linear and Integer Programming
topic Optimization and Control
Machine Learning
90C05, 90C10, 68T07, 68N30
G.1.6; I.2.6; D.2.2
url https://arxiv.org/abs/2206.14234