论文标题
PYEPO:一个基于Pytorch的端到端预测,然后是线性和整数编程的优化库
PyEPO: A PyTorch-based End-to-End Predict-then-Optimize Library for Linear and Integer Programming
论文作者
论文摘要
在确定性优化中,通常假定所有问题参数都是固定和已知的。但是,实际上,某些参数可能是未知的先验参数,但可以从历史数据中估算。典型的预测 - 优化方法将预测和优化分为两个阶段。最近,端到端的预测到优化已成为有吸引力的替代方法。在这项工作中,我们介绍了Pyepo软件包,这是一个基于Pytorchb的端到端预测,然后在Python中进行了优化的库。据我们所知,Pyepo(发音为带有静音“ N”的菠萝)是第一个使用预测目标函数系数的线性和整数编程的通用工具。它提供了四种基础算法:Elmachtoub和Grigas的开创性工作[16]的凸替代损失函数,这是Pogancic等人的可区分黑盒求解器方法。 [35],以及Berthet等人的两种基于扰动的方法。 [6]。 PYEPO为定义新优化问题的定义提供了一个简单的接口,最先进的预测 - 最优化的培训算法,自定义神经网络体系结构的使用以及端到端方法与两阶段方法的比较。 PYEPO使我们能够进行一系列全面的实验,以比较沿轴上的多种端到端和两阶段方法,例如预测准确性,决策质量以及在最短路径,多重背包和旅行销售人员问题等问题上进行的运行时间。我们讨论了这些实验的一些经验见解,这些见解可以指导未来的研究。 PYEPO及其文档可在https://github.com/khalil-research/pyepo上找到。
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 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 PyTorchbased 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 four base algorithms: a convex surrogate loss function from the seminal work of Elmachtoub and Grigas [16], a differentiable black-box solver approach of Pogancic et al. [35], and two differentiable perturbation-based methods from Berthet et al. [6]. 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.