PyEPO:一种基于PyTorch的端到端预测-然后优化库用于线性和整数规划
PyEPO: A PyTorch-based End-to-End Predict-then-Optimize Library for Linear and Integer Programming
AI总结:
PyEPO是一种基于PyTorch的端到端预测-然后优化库,用于线性和整数规划,提供用户友好的接口和先进的算法,通过实验比较不同方法并讨论未来研究的启示。
摘要:
在确定性优化中,通常假设所有问题参数都是固定且已知的。然而,在实践中,某些参数可能事先未知,但可以通过上下文信息进行估计。典型的预测-然后优化方法将预测和优化分为两个独立阶段。最近,端到端预测-然后优化作为一种有吸引力的替代方案出现。本文介绍了PyEPO包,这是一个基于PyTorch的端到端预测-然后优化库。据我们所知,PyEPO(发音类似于pineapple,无声的n)是第一个针对线性和整数规划的通用工具,其预测目标函数系数。它包含多种算法,如替代决策损失、黑箱求解器和扰动方法。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 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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。