优化|神经网络与混合整数模型

在这里插入图片描述

论文解读者:史铭伟,胡明杰,赵田田,陈宇文

编者按:

深度学习近十年的飞速发展带动了各行各业对于数据驱动的研究热潮,运筹学也不例外。本文将展开讨论Deepmind于2020年发表的有关深度学习对混合整数模型加速方法性能的提升。

论文信息:Vinod Nair, Sergey Bartunov, Felix Gimeno, Ingrid von Glehn, Pawel Lichocki, Ivan Lobov, Brendan O’Donoghue, Nicolas Sonnerat, Christian Tjandraatmadja, Pengming Wang, Ravichandra Addanki, Tharindi Hapuarachchi, Thomas Keck, James Keeling, Pushmeet Kohli, Ira Ktena, Yujia Li, Oriol Vinyals, Yori Zwols. Solving Mixed Integer Programs Using Neural Networks, arXiv,2020

传统的混合整数规划中通常是基于分支定界法(branch and bound),通过不断求解连续凸松弛问题找出最优解,但是理论上需要求解的松弛问题个数随着整数变量维度上升呈指数倍数增长。因此,实际中我们会添加许多加速方法去减少需要求解的松弛问题数量,其中有很多加速方法的效果取决于混合整数规划的问题结构或是当前分支定界已有的信息,但是很多时候由于模型过于复杂,我们可能无法直接提取出这类信息,而这正好是深度学习方法的优势,它能基于充足的数据通过黑盒优化提供一个预测模型,捕捉我们一些我们难以解释的有效信息。本文介绍了Deepmind于2020年发表的有关深度学习在运筹优化中的运用[1]。论文核心是使用神经网络提升传统混合整数规划中两种常见的启发式方法的性能:下潜(Diving)搜索和分支(branching)选取。其主要思想还是利用神经网络基于数据的预测能力对某一类特定问题求解实现加速。

传统混合整数规划中的下潜和分支方法

分支选取是分支定界法中的必不可缺少的一环。当连续凸松弛的问题的最优解在某一个整数变量取到非整数最优值 x i = x i ∗ ∉ Z x_i = x_i^* \notin \mathbb{Z} xi=xi/Z,意味着我们需要对这个变量进行分支,添加两个子松弛问题,其中一个在原始限制条件基础上加上 x i ≤ ⌊ x i ∗ ⌋ x_i \le \lfloor x_i^*\rfloor xixi,而另外一个则加上 x i ≥ ⌈ x i ∗ ⌉ x_i \ge \lceil x_i^*\rceil xixi的限制条件。分支定界法会重复上述过程直到最后松弛问题的最优解在所有整数变量上取整数值。好的分支选取可以带来多方面的影响,例如(1)新添加的分支限制条件能够提供更紧的限制条件,这样接下来的子问题的预处理(presolve)可能更早的得到不可行问题或者更早发现子松弛问题最优解值大于已知上确界;(2)特定的分支顺序能减少分支的总次数。这些都意味着我们只需要求解更少的分支子问题从而减少计算时间。

下潜属于一种原始启发法(primal hueristics),它的作用是帮助尽快找到一个可行解(对应一个最优值上确界值 U U U),这样更小的 U U U值可以让我们过滤掉更多不需要解决的次优解(prune)或者在用对偶方法(如dual simplex或者dual active set法)时能更早的提前终止子问题计算(early termination),从而减少计算时间。除此以外,如果问题过于复杂但是我们对于计算时间有严格限制的场景,例如实时模块控制(MPC),有可能我们无法在有限时间内找出最优解,这时好的启发式算法往往也能保证找到一个实际效果也不错的可行解。

结合神经网络的下潜和分支方法

在本篇论文中,作者将学习的方法引入下潜和分支方法选取的优化,我们分别称之为neural diving和neural branching。

1. Neural diving

对于neural diving我们可以通过对应位置关系,完成混合整数规划和二分图(bipartite grapgh)的转化,如图1所示。我们将变量 x i x_i xi看成二分图中 n n n个不相邻节点,另外将约束条件 ∑ i = 1 n a j , i x i ≤ b j \sum_{i=1}^n a_{j,i}x_i \le b_j i=1naj,ixibj看成二分图 m m m个不相邻节点。而约束中的系数 a i , j a_{i,j} ai,j看做两类节点之间边对应的权重。

图1 MIP的二分图表示用于神经网络的输入

接着我们可以将之前混合整数规划的二分图作为输入,将它递交给图卷积神经网络进行分类监督学习。如图二所示。对于图神经网络来说,将约束条件和约束目标对应的节点当成输入,图卷积神经网络对二分图每个节点所连的边进行卷积操作,这样就可以方便抽取特征。最后将抽取特征的矩阵作为输入送入到多层感知机,我们就可以进行分类预测了。因为分类的标签有多个结果,所以每个二分图的节点输出满足伯努利分布。具体实现细节可以参考论文第6部分[1]。

图2 MIP二分图,图神经网络,条件独立模型之间的转化

2. Neural Branching

分支变量的选择是影响分支定界算法效率的关键因素。高质量的分支变量能够有效减少分支定界算法的迭代次数。强分支(FBS)策略在实践中具有较好的性能,相比于其他分支策略,构建的分支搜索树的规模往往更小。每次搜索时,FBS通过模拟所有候选变量的一步分支结果,并选择bound提升效果最好的变量进行分支。然而,实际中FBS每步的计算成本是非常高昂的。我们可以通过神经网络模仿学习( Imitation Learning)启发式策略(专家策略)。通过将计算成本高昂的专家策略蒸馏至神经网络,我们可以在近似保留解的质量的前提下大幅减少计算时长。更重要的是,在一个给定节点的分支变量决策只需要节点的局部信息,网络只需要输入节点的相关特征,这使得该方法具有很好的可扩展性。计算成本高昂的专家策略被用来在离散状态下一次性生成训练数据。即使如此,由于FBS过高的计算成本,离线数据生成也非常困难 ,论文提出了来加速专家策略,通过在一个批次中同时处理多个LP来加速求解。

对于模仿学习,论文考虑了三种变形:专家策略克隆(expert policy cloning),随机移动蒸馏(distillation with random moves)以及DAgger。蒸馏是最简单的方式,在每个节点预测专家策略的输出。然而,这种方法对于分布偏移(distribution drift)不够鲁棒。当根节点发生错误时,可能导致后续节点与训练看到的节点完全不同。为了解决上述问题,可以在训练过程中结合随机移动与专家策略,在运行专家策略的同时以10%的概率随机采取一个动作。DAgger将随机移动蒸馏和专家输入相结合,用作学习的目标。这会产生一步DAgger数据,可以利用其重新训练智能体。

在实验中,作者将三种模仿学习变体的选择视为超参,为每个数据集生成数据,使用所有三种变体策略进行训练并根据三小时内在验证集上的表现选出最优策略。具体实现细节可以参考论文第7部分[1]。

数值实验结果

为了验证本文的方法在实例求解中具有一定的优越性,作者团队进行了数值实验。

在数据集的选取上,他们着重考虑了两个方面:(1) 实用性。本文一共选取了五个数据集,除了MIPLIB,剩下四个都由真实世界的例子组成。(2)大规模。对于所有的数据集,大部分实例在预求解之后对应的变量和约束个数都在 1 0 3 − 1 0 6 10^3-10^6 103106之间,这远远大于先前一些论文中数值实验的问题规模。

他们将神经网络在这些数据集上分别进行了训练,然后使用学习增强的SCIP算法求解测试集。对照的标准是调优的SCIP算法(本质是SCIP算法;通过在每个数据集上分别进行网格搜索,来调整算法中的参数)。他们设定一个较大的时间限制,并在该时间范围内分别使用两种算法处理同一组实例,然后比较它们在某一时刻对应求解结果的平均对偶间隙。实验结果如下图所示。

图3. 本文方法和原始SCIP算法:在不同运行时间下的平均对偶间隙

在评估结果中,学习增强的SCIP算法在四个数据集上都有明显的加速效果:在相同的运行时间内,它计算的结果具有更小的间隙;或者说,它需要更少的时间达到相同的间隙。具体地,对于其中三个数据集,它获得了1.5倍, 2倍 和1万倍更好的效果;对于第四个数据集(Google Production Packing),它能够以原始算法5倍的速度让平均对偶间隙下降到0.1。而对于第五个数据集,它取得了和调优SCIP不相上下的结果。

可以看出,对于大规模的现实世界应用数据集和MIPLIB,本文的方法都取得了优于SCIP的结果。在这项工作之前,还没有哪一种方法能够在这些数值实验中取得如此程度的优势。但是,这里有两点值得注意:

• 一个是比较的标准。某一时刻所对应平均对偶间隙的大小,并不是求解器性能的主要衡量标准。根据目前公认的测试标准,一般是给定最大求解时间,考虑求解器在某一个数据集上能按时求解的问题数量,以及它们的平均求解时间。因此,文中的数据结果可能放大了算法的优势。

• 另一个是数据集的选取。实际上,只有MIPLIB包含了来自不同应用场景的例子。而对于其他的四个数据集,它们的实例都分别来自于同一应用背景。对于这四个数据集而言,它们在训练时给算法输送的是大量的同类问题,而机器学习的优势正在于提取同类问题的特征结构,因此算法能在测试集上取得好的结果,我们并不感到意外。MIPLIB也有相同的缺点。尽管例子来自不同背景,但是对于测试集中的问题,我们也总能在训练集中找到结构相似的实例。因此,本文提出的方法未必具有很强的泛化能力。​

尽管数值实验的结果并不完美,但我们可以肯定,本文的方法对于特定结构的问题求解有着一定的加速效果。事实上,也有其他一些文章尝试利用深度学习算法加速整数规划的求解。Morabit M et al. (2021) 提出了利用神经网络加速列生成算法。该算法通过学习一个神经网络,在每步迭代时,从一组列集合中预测出最佳的列加入列生成的主问题,从而加速列生成算法的收敛。文章证明该算法在VRP问题实例上使得计算时长提高了30%[3]。

参考文献

[1] Vinod Nair, Sergey Bartunov, Felix Gimeno, Ingrid von Glehn, Pawel Lichocki, Ivan Lobov, Brendan O’Donoghue, Nicolas Sonnerat, Christian Tjandraatmadja, Pengming Wang, Ravichandra Addanki, Tharindi Hapuarachchi, Thomas Keck, James Keeling, Pushmeet Kohli, Ira Ktena, Yujia Li, Oriol Vinyals, Yori Zwols. Solving Mixed Integer Programs Using Neural Networks, arXiv,2020
[2] “DeepMind 激起千层浪的神经网络求解 MIP 论文,并非无所不能”, https://www.ithome.com/0/569/302.htm
[3] Morabit M, Desaulniers G, Lodi A. Machine-learning–based column selection for column generation. Transportation Science, 2021, 55(4): 815-831.

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值