[Reference]
J. Song, R. Lanka, Y. Yue, and B. Dilkina, ‘A General Large Neighborhood Search Framework for Solving Integer Linear Programs’. arXiv, Dec. 22, 2020. Accessed: Sep. 14, 2022. [Online]. Available: http://arxiv.org/abs/2004.00422
Abstract:
研究了针对大规模组合优化问题的策略。针对于整数线性规划 (integer linear programs, ILP)问题,使用大型邻里搜索框架( large neighborhood search,LNS),表明使用 imitation and reinforcement learning techniques,可以学到很好的selector,从而提升求解结果。
Introduction:
实际中的组合优化算法通常是 NP-complete or NP-hard. 传统解决此类问题的算法的设计主要是手动完成的,这需要仔细理解特定优化问题类别中的基础结构。由于需要获得实质性的领域知识,这些传统方法通常是没有吸引力的,因而人们经常希望采用更加自动化的方法。
近些年中出现的 “learn to search” 旨在通过用参数化的可学习版本代替硬编码的启发式组件来增强现有算法模板。
Contribution:
- 提出了一个通用的LNS框架来解决大规模ILP。框架可以轻松地集成现有的求解器作为子例程,并且不依赖于合并域知识以实现强大的性能。
- 表明LNS框架内使用随机决策过程,在许多问题实例上都显着优于Gurobi;
- 开发了一种基于学习的方法,该方法可以预测整数变量的分区,然后在LNS框架内充当学习的决策程序;
- LNS框架可以有效利用领先的最先进的求解器来可靠地实现实质性加速。
Related Work on Learning to Optimize
学习优化”方法分为三类:
(1)学习搜索启发式方法,例如分支机构;
(2)调整现有算法的超参数;
(3)学习确定现有求解器可以利用的关键子结构。
Learning to Search:在学习搜索时,通常在搜索启发式的框架内操作,并从训练数据中训练出一个局部决策策略。对于整数规划来说,最受欢迎的是 Branch-and-bound 框架。其他的有A* search , direct forward search , and sampling-based planning .
Algorithm Configuration:现有的求解器具有许多可自定义的超参数,其参数 值会强烈影响求解器行为。算法配置旨在以问题为基础优化这些参数,以加快求解器的速度。其缺陷是:依赖于基础求解器能够在合理的时间内解决问题实例,这对于NP问题实例可能是不可能的。
Learning to Identify Substructures:学习预测优化问题的关键子结构。
A General Large Neighborhood Search Framework for ILPs
LNS是一种meta-approach,可以概括邻里搜索优化,并通过本地搜索改善现有解决方案。
对LNS的理解:
(31条消息) 智能优化算法——篇2(邻域搜索大家族)_云湖在成长的博客-CSDN博客_邻域搜索算法
Decomposition-based Large Neighborhood Search for Integer Programs
对于一个整数规划, 其整数变量为集合 ,定义 为不相交的联合,即. 假定我们已经得到可行解,将整数变量的每个子集视为搜索本地邻域, 将中除了的整数变量固定,即(固定在),并优化中的变量(称为fix_and_optimize)。
Decomposition Decision Procedures:不同的分解定义了一系列不同的LNS问题,最简单的实现是使用随机分解方法。
Learning a Decomposition
过程中使用了imitation learning and reinforcement learning来学习LNS框架生成分解的政策。
对于组合优化问题P,其变量为一组整数X,
state:表示变量X的一组分配向量。
action:是X的一个decomposition
状态转移:通过action优化部分变量之后,得到一组新的解,组成状态
reward: ,其中表示当solution为时目标函数P的值。
Imitation Learning
在模仿学习阶段,来自expert的展示可以作为学习信号。然而,我们没有expert来产生很好的分解,因此,我们使用随机采样并选取那些表现好大的作为demonstration。
一旦产生出一组好的decomposition,将它应用在两个imitation算法中。
第一个是行为克隆,即behavior cloning。通过将一系列轨迹转化为一系列的 state-action pair,, 接下来将 policy learning 看作
supervised learning problem.
行为克隆遭受级联错误,使用前向训练算法[43]来纠正每个步骤中犯的错误。
Reinforcement Learning
强化学习的目标是找到策略来最大化 ,使用梯度下降来更新参数,文中没有详细讲。
Featurization of an Optimization Problem
- Combinatorial Optimization over Graphs.图上的组合优化问题,包括最小顶点盖,最大切割和旅行推销员问题。图的(加权)邻接矩阵包含所有信息来定义优化问题,用作学习模型的功能输入。
- General Integer Linear Programs在整数变量和约束之间构建以下发生率矩阵A,对于每个整数变量一个约束,
- Incorporating Current Solution. 无论使用哪种featurization,特征矩阵的行数与整数变量的行数相同,因此可以简单地将解决方案中的变量值作为一个额外的特征来附加。