Robust optimization provides a mathematical framework for modeling and solving decision-making problems under worst-case uncertainty. This work addresses two-stage robust optimization (2RO) problems (also called adjustable robust optimization), wherein first-stage and second-stage decisions are made before and after uncertainty is realized, respectively. This results in a nested min-max-min optimization problem which is extremely challenging computationally, especially when the decisions are discrete. We propose Neur2RO, an efficient machine learning-driven instantiation of column-and-constraint generation (CCG), a classical iterative algorithm for 2RO. Specifically, we learn to estimate the value function of the second-stage problem via a novel neural network architecture that is easy to optimize over by design. Embedding our neural network into CCG yields high-quality solutions quickly as evidenced by experiments on two 2RO benchmarks, knapsack and capital budgeting. For knapsack, Neur2RO finds solutions that are within roughly $2\%$ of the best-known values in a few seconds compared to the three hours of the state-of-the-art exact branch-and-price algorithm; for larger and more complex instances, Neur2RO finds even better solutions. For capital budgeting, Neur2RO outperforms three variants of the $k$-adaptability algorithm, particularly on the largest instances, with a 10 to 100-fold reduction in solution time. Our code and data are available at https://github.com/khalil-research/Neur2RO.
翻译:鲁棒优化为在最坏情况不确定性下建模和求解决策问题提供了数学框架。本文研究两阶段鲁棒优化(2RO)问题(亦称可调鲁棒优化),其中第一阶段和第二阶段的决策分别在不确定性实现前后做出。这导致了一个嵌套的min-max-min优化问题,计算上极具挑战性,尤其在决策变量为离散时。我们提出Neur2RO,一种高效的机器学习驱动列与约束生成(CCG)算法——经典2RO迭代算法的实例化。具体而言,我们通过一种创新设计的易于优化的神经网络架构,学习估计第二阶段问题的值函数。将我们的神经网络嵌入CCG后,能够在两个2RO基准问题(背包问题和资本预算问题)的实验中快速产生高质量解。对于背包问题,Neur2RO在数秒内找到的解与最优已知值偏差约2%,而最先进的精确分支定价算法需耗时三小时;对于更大更复杂的实例,Neur2RO甚至能找到更优解。对于资本预算问题,Neur2RO在所有实例上优于k-适应性算法的三种变体,尤其在最大规模实例上,求解时间减少10至100倍。我们的代码和数据见https://github.com/khalil-research/Neur2RO。