在《基于深度强化学习的组合优化方法在工业应用中的实践》一文中我们介绍过(点此回顾),组合优化问题广泛存在于交通运输、生产制造、信息通讯、工业工程、金融投资等诸多领域,这些现实世界中的组合优化问题有一个共同挑战,就是如何在不断扩增的问题规模、复杂度以及现实场景下实现对求解速度的客观要求。

以常见的交通运输领域的路径规划问题为例,这类问题对最优路径的求解效率有着很高的要求,但由于受到不断扩增的用户规模、动态变化的外部环境(如天气)等因素的影响,由此产生的更为复杂的场景约束(例如:客户的预计交付时间需求)使得问题规模不断扩大,求解难度与复杂度随之指数级增加,给这类组合优化问题的高效求解带来了极大的挑战。

近年来,随着深度学习、强化学习等人工智能技术的快速发展,现实世界中诸多大规模组合优化问题的求解思路不断得到拓展。本文我们将以人工智能技术如何用于解决最优解预测、可行解迭代搜索为研究方向,探索AI求解组合优化问题的更多可能性。

01 什么是组合优化问题?

组合优化问题就是在一定的约束条件下,需要在庞杂的可行解空间中筛选出最优解的一类问题。下式即为一个简单组合优化问题的数学表达形式,主要包含三大要素:决策变量、约束条件和目标函数。

min ⁡ x 1 , x 2 u ( x 1 , x 2 ) = w 11 x 1 + w 12 x 2 + w 13 s . t . w 21 x 1 + w 22 x 2 + w 23 < 0 ( c 1 ) w 31 x 1 + w 33 < 0 ( c 2 ) x 1 , x 2 ∈ ⁣ ⁣ { ⁣ ⁣ 0 , 1 ⁣ ⁣ } ⁣ ⁣ \begin{equation} \begin{aligned} \underset{{{x}_{1}},{{x}_{2}}}{\mathop{\min }}\,\text{ }&u({{x}_{1}},{{x}_{2}})={{w}_{11}}{{x}_{1}}+{{w}_{12}}{{x}_{2}}+{{w}_{13}} \\ s.t.\text{ }&{{w}_{21}}{{x}_{1}}+{{w}_{22}}{{x}_{2}}+{{w}_{23}}<0\text{ }({{c}_{1}}) \\ \text{ }&{{w}_{31}}{{x}_{1}}+{{w}_{33}}<0\text{ }({{c}_{2}}) \\ \text{ }&{{x}_{1}},{{x}_{2}}\in \text{ }\!\!\{\!\!\text{ }0,1\text{ }\!\!\}\!\!\text{ } \\ \end{aligned} \tag{1.1}\\ \end{equation} x1​,x2​min​ s.t.   ​u(x1​,x2​)=w11​x1​+w12​x2​+w13​w21​x1​+w22​x2​+w23​<0 (c1​)w31​x1​+w33​<0 (c2​)x1​,x2​∈ { 0,1 } ​​(1.1)​

1)决策变量即组合优化问题中需要决策的变量集合,如 x 1 , x 2 {x}_{1},{x}_{2} x1​,x2​,其一般为离散取值,问题的求解即寻找变量最优取值组合的过程,这也是组合优化得名的原因;

2)约束条件即在组合优化问题求解过程中需要满足的约束,例如: c 1 , c 2 {{c}_{1}},{{c}_{2}} c1​,c2​ 即为上述优化问题的约束条件;

3)目标函数即优化问题的最终优化目标,如上式中希望最小化的 u ( x 1 , x 2 ) u({{x}_{1}},{{x}_{2}}) u(x1​,x2​),即为该问题的目标函数。在实际场景中,目标函数可能并不唯一。

02 现实组合优化问题面临求解挑战

相比于式(1.1)中给出的2变量、2约束的简单问题,现实世界中组合优化场景往往非常复杂:决策变量、约束条件可能达到百万级以上,由此带来的可行解集规模会呈指数级增长。针对这类规模的复杂优化问题,即便对于最先进的商用求解器(如Gurobi),其求解效率也会急剧下降。因此,在实际应用中往往只能退而求其次,借助简单的启发式算法来得到相对高质量的可行解,然而这类启发式的方法很难保证优化效果,产生的可行解可能远远偏离最优解,可能造成有限资源的浪费。以常见的交通运输领域的路径规划问题为例,质量较低的路径规划结果可能导致大量的冗余路线,拉低配送效率,影响对客户的交付。

总的来说,针对大规模现实场景下的组合优化问题的高效求解,传统的精确解法(如求解器)以及近似解法(如启发式规则)都面临巨大的挑战。也就是说:目前急需一种新的组合优化问题的高效求解方案。我们从问题本身入手,这类问题尽管复杂,但往往呈现出相似的结构,尤其是针对相对固定的应用场景,不同问题往往只是在部分参数上存在差异。以生产制造领域的库存分配问题为例,在不同的时间、针对不同的分配对象(如原材料、成品等),其在变量定义、约束种类、乃至优化目标上都存在诸多相似之处,仅仅在库存数目等参数上存在细小差异。这种结构上的相似性也就为利用人工智能方法探索问题结构以及最优解分布之间的相关性提供了可能。因此,利用人工智能技术求解大规模组合优化问题也就成为了当今的热门研究方向,且目前已经有了很多颇具成效的探索。

03 AI助力探寻组合优化问题最优解

那么,针对现实场景下复杂的问题结构、庞大的问题规模,如何利用人工智能技术来对组合优化问题进行建模与求解呢?本文将主要介绍两种目前相对热门的探索方向,分别是最优解预测以及可行解迭代搜索。

最优解预测

最优解是组合优化问题求解的最终目标,然而随着问题规模的扩增,快速高效的获得大规模组合优化问题的最优解变得愈发困难。因此近些年,部分研究人员尝试直接利用问题的结构性信息对最优解进行预测,具体可以归结为以下两个环节:

1)统一的问题表示:利用人工智能方法建模并求解组合优化问题的前提是能够将不同规模、不同分布的问题表示为相对统一的形式,比如二部图,图1给出了式(1.1)所述优化问题的二部图形式:约束 c 1 , c 2 {{c}_{1}},{{c}_{2}} c1​,c2​与决策变量 x 1 , x 2 {{x}_{1}},{{x}_{2}} x1​,x2​分别构成二部图的两个部分,而边则描述了决策变量与约束之间的关系,并借用变量系数表征其权重信息。这种图形化的问题表示方式,使得任意类型的问题都能够以相对固定且统一的形式进行表示,也就为利用人工智能方案寻找问题间的相似结构提供了可能。

图1 二部图示意

2)最优解预测:对于相对复杂的组合优化问题,我们往往很难获取其最优解,因此目前研究普遍选择以大量可行解取值来探索最优解中变量取值分布,即以一定数目的可行解作为标签(label)来指导预测。具体来说,如图2,将变量、约束节点分别用相关特征表示为左侧二部图的形式。注意:若希望进一步捕捉二部图结构信息,可以额外叠加图网络进行特征传递与更新。之后将决策变量特征作为输入,并借助简单的深度学习网络(如多层感知机, MLP),就可以完成对最优解中各决策变量取值分布 p θ {{p}_{\theta }} pθ​的学习与预测。最后可以利用随机采样等方式,对全部或是部分变量的最优取值进行预估。

图2 最优解预测示意

整体来看,该框架具备一定的迁移能力,从而有可能实现对大规模组合优化问题的直接求解。然而,当问题分布、变量范围等发生变化时,其产生的预测解可能无法同时满足全部约束,即可能在某些情况下无法产生可行解;与此同时,繁杂的前期数据采集工作(即针对不同问题的可行解收集)也给该方案的实现与应用带来了巨大的挑战。

可行解迭代优化

为了能够使得求解过程有更强的扩展性,同时解决基于监督学习框架需求大量训练数据的问题,利用强化学习对可行解进行小范围的搜索与迭代也是求解大规模组合优化问题的一种思路。具体来说,组合优化问题求解的难点在于可行解的范围庞大,搜索复杂度过高;那么可以借鉴强化学习的思想,利用迭代的方式,每次对当前解进行小范围的优化与更新,降低每步搜索域的范围,力争在求解时间与求解质量上取得平衡。

其整体思路可以概括为图3的形式。具体来说,同样可以用二部图表征不同的组合优化问题,图结构的优势在于可以很好的保留变量、约束之间的复杂关联关系,能够从相对全局的视角对组合优化问题进行建模。接下来,可以将图结构送入局部优化网络,对当前解 x t {{x}_{t}} xt​ 进行探索,借由深度学习网络选择出那些急需优化的变量子集,大幅降低单步搜索可行域的范围,并利用求解器对子问题进行优化,得到新的可行解 x t + 1 {{x}_{t+1}} xt+1​。下面主要从大邻域搜索以及局部分支两个方向介绍强化学习在指导局部优化过程中所起的作用。

图3 可行解迭代(局部)优化流程示意

1)大邻域搜索

在该框架下,强化学习网络被用来进行变量选择:即在大规模变量集合中选择变量子集进行局部优化,其马尔科夫决策过程(MDP)定义如下:

状态:状态空间 s t {{s}_{t}} st​定义为二部图形式,其中包括了静态问题特征以及动态求解特征。其中静态问题特征即组合优化问题的一般结构信息,如变量类型、变量上下界等;而动态求解特征则定义为迭代求解过程中每步的求解状态,如当前最优解;

动作:动作即为在每次迭代中,选择一组变量子集 a t {{a}_{t}} at​ 进行优化;

转移:状态间的转移利用求解器实现,即将选定的变量子集进行局部优化,其余变量固定为当前取值,利用求解器对该子问题进行优化求解,得到 x t + 1 {{x}_{t+1}} xt+1​以及 s t + 1 {{s}_{t+1}} st+1​;

奖励:每步优化的奖励定义为目标函数的优化幅度;

通过这种将变量“分治”的方式,大大降低了每步求解的复杂度,同时强化学习也可以为每步的变量选择提供策略支持,以便在每次迭代中尽可能对目标函数进行优化。

2)局部分支

其思想类似于大邻域搜索,即“小步快走”,在降低每步优化难度的前提下,通过迭代的方式实现组合优化问题的快速求解。区别在于每步迭代的方式,不同于大邻域搜索在每步的“分治”想法,局部分支的思路在于小规模优化,其马尔科夫决策过程定义如下:

状态:与大邻域搜索中的状态空间定义一致;

动作:其每步的动作是选定 K K K值,以便完成如下优化:

Δ ( x t + 1 , x t ) = ∑ i ∈ B ∣ x t + 1 i − x t i ∣ ≤ K \begin{equation} \begin{aligned} \Delta ({{x}_{t+1}},{{x}_{t}})=\sum\limits_{i\in \mathsf{\mathcal{B}}}{|x_{t+1}^{i}-x_{t}^{i}|}\le K \end{aligned} \tag{1.2}\\ \end{equation} Δ(xt+1​,xt​)=i∈B∑​∣xt+1i​−xti​∣≤K​​(1.2)​

其中 x t i x_{t}^{i} xti​表示可行解 x t {{x}_{t}} xt​中第 i i i个变量的取值,其思路在于限制 x t + 1 {{x}_{t+1}} xt+1​ 与 x t {{x}_{t}} xt​ 之间的最大距离;

转移:状态的转移同样借由求解器实现,即将式(1.2)添加为q新的约束,利用求解器在限定搜索范围的问题上进行局部优化与更新,得到下一步的状态;

奖励:其每步的奖励定义为:

r t = o i m p ( t max ⁡ − t r u n ) \begin{equation} \begin{aligned} {{r}_{t}}={{o}_{imp}}({{t}_{\max }}-{{t}_{run}}) \end{aligned} \tag{1.3}\\ \end{equation} rt​=oimp​(tmax​−trun​)​​(1.3)​

其中 o i m p {{o}_{imp}} oimp​表示目标函数的优化幅度, t max ⁡ {{t}_{\max }} tmax​与 t r u n {{t}_{run}} trun​分别表示单步求解时间上限与实际求解时间。其目的是希望尽可能平衡执行效率与优化效果。本质上来看,局部分支的思想同样是降低单步的搜索范围,避免在全部可行域上进行搜索。而强化学习在其中的作用在于提供每步迭代中搜索范围(即K值)的选择策略。

总的来说,因能够以相对低的复杂度实现对不同组合优化问题的快速迭代求解,基于强化学习的邻域搜索已经越来越受到研究人员的关注。然而其仍存在很多亟待解决的问题,等待未来进一步的探索与实现。比如:

a) 如何将求解问题从0/1规划扩展向一般整数变量优化,一般整数变量优化范围更大,优化难度更高,在当前研究中较少涉及;

b) 如何使策略能够具备问题间的扩展性,避免在不同问题、不同场景下的重复学习;

c) 当前框架在大规模的现实世界组合优化问题上的有效性同样亟待检验。

d) ………

04 结语

在现阶段面向大规模组合优化问题的求解方案中,传统的启发式方案很难保证求解质量,而SCIP、Gurobi等这类国际公认的主流求解器,也在问题规模无限扩大的情况下无法满足求解时效性要求。面对现实世界中这类问题带来的求解挑战,研究人员借助近年来不断发展的人工智能技术,开始广泛探索诸如模仿学习、强化学习、图网络等不同解决方案的可行性与有效性。

本文我们分享了人工智能技术在最优解预测、可行解迭代搜索等方向上的解决方案,然而我们也能够看到这些方案还存在诸多有待解决的问题,比如在实现与应用方面还存在可扩展性不足、有效性亟待检验等问题。当然,科学之路从来就不是一片坦途,相信在研究人员不断地探索与研究下,人工智能技术在今后能够更有成效地求解大规模组合优化问题,进而对我们的生产生活产生更大的助益。

参考文献

[1]. Gasse M, Chételat D, Ferroni N, et al. Exact combinatorial optimization with graph convolutional neural networks[J]. Advances in Neural Information Processing Systems, 2019, 32.
[2]. Ding J Y, Zhang C, Shen L, et al. Accelerating primal solution findings for mixed integer programs based on solution prediction[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2020, 34(02): 1452-1459.
[3]. Nair V, Bartunov S, Gimeno F, et al. Solving mixed integer programs using neural networks[J]. arXiv preprint arXiv:2012.13349, 2020.
[4]. Song J, Yue Y, Dilkina B. A general large neighborhood search framework for solving integer linear programs[J]. Advances in Neural Information Processing Systems, 2020, 33: 20012-20023.
[5]. Wu Y, Song W, Cao Z, et al. Learning large neighborhood search policy for integer programming[J]. Advances in Neural Information Processing Systems, 2021, 34: 30075-30087.
[6]. Liu D, Fischetti M, Lodi A. Learning to search in local branching[J]. arXiv preprint arXiv:2112.02195, 2021.
[7]. Nair V, Alizadeh M. Neural Large Neighborhood Search[C]//Learning Meets Combinatorial Algorithms at NeurIPS2020. 2020.

(关注我们的微信公众号:ML OR 智能决策。分享更多干货,欢迎交流~)

预测、迭代与优化:用AI探寻组合优化问题最优解相关推荐

  1. 旷视研究院夺得 NeurIPS 2021 ML4CO 组合优化比赛 Dual task 赛道第一

    近日,顶级国际会议 NeurIPS 的 The Machine Learning for Combinatorial Optimization(以下简称:ML4CO) 组合优化比赛结果揭幕,来自旷视研 ...

  2. 【ML4CO论文精读】基于深度强化学习的组合优化问题研究进展(李凯文, 2020)

    基于深度强化学习的组合优化研究进展 本人研究方向(博士期间):多目标组合优化与决策研究--致力于多约束多目标多任务组合优化算法和多目标决策系统的研究与开发,以及多目标优化技术在一些工程实践中的应用. ...

  3. 使用GNN求解组合优化问题

    文章目录 1 论文内容 1.1 先验知识 1.2 论文方法 1.2.1 大致原理 1.2.2 源码关键实现 1.3 实际问题上的应用 1.3.1 风险分散 1.3.2 Interval Schedul ...

  4. 2-2 组合优化问题-常用模型与通用求解器

    组合优化问题常用模型 组合优化问题常常难以求解,我们可以把这些转化为目前已经有成熟求解器的模型. 1. 可满足性问题(Satisfiability, SAT) 上一节已经讲过,SAT 是一个 NPC ...

  5. 【ML4CO论文精读】用于组合优化的机器学习:方法论之旅(Yoshua Bengio, 2021)

    Machine learning for combinatorial optimization: A methodological tour d'horizon 论文:Bengio Y, Lodi A ...

  6. 明汯投资-解环宇:打造高效迭代的量化投资AI框架

    量化投资与机器学习微信公众号,是业内垂直于量化投资.对冲基金.Fintech.人工智能.大数据等领域的主流自媒体.公众号拥有来自公募.私募.券商.期货.银行.保险.高校等行业30W+关注者,荣获202 ...

  7. 超参数调优河伯、组合优化器CompBO,华为诺亚开源贝叶斯优化库

    视学算法报道 编辑:陈萍.杜伟 华为诺亚开源了一个贝叶斯优化的库,该库包含三个部分:河伯.T-LBO.CompBO. 贝叶斯优化可以说是一种黑盒优化算法,该算法用于求解表达式未知函数的极值问题.因其具 ...

  8. 《强化学习周刊》第12期:强化学习应用之组合优化

    No.12 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,它在组合优化领域中的应用研究进展与成果也引发了众多关注.为帮助研究与工程人员 ...

  9. 李开复预测:未来20年 AI将深刻影响五大产业

    近日,创新工场创始人李开复发表<飞奔的AI时代>的主旨演讲.在演讲中,李开复预测了在未来二十年,AI加上更多新的技术发展会带来影响深远的五大产业变革. 这五大产业变革预测包括: 一.世界工 ...

最新文章

  1. 一步步带你做vue后台管理框架(三)——登录功能
  2. Web(浏览器)打开运行WinForm应用程序
  3. 在Ubuntu下成功搭建以太坊私有链挖矿并转账
  4. hdu3790最短路径问题 (Dijkstra算法)
  5. linux 服务器进程,如何查看Linux服务器的进程
  6. Python面向对象基础一
  7. 聚类效果评价——Davies-Bouldin(DB指标)——内部评估标准(3)
  8. 正则表达式 匹配标签里面的值 eg:image input
  9. java实验常见错误_java 实验4 异常
  10. php mongo save,MongoDB:使用save()更新集合中的现有文档
  11. Java5线程并发库之同步集合
  12. 松本行弘:Ruby之父佳作松本行弘的程序世界
  13. MOOC北京理工《C语言程序设计(上)》第4周第2题:确定母亲节
  14. Lunix入门到精通-网络排查工具 MTR
  15. Windows主机连接Windows虚拟机上Oracle数据库
  16. 利用Matlab进行灰色预测,利用matlab进行灰色预测.pdf
  17. 云课堂服务器技术支持,中学语音教室云课堂云服务器
  18. 基于javaweb个人网站论坛的设计与实现(源码、论文、毕业设计、数据库文件)
  19. 云计算测试——软件测试的未来
  20. html5 3d游戏引擎演示,HTML5、JavaScript 3D游戏引擎和框架

热门文章

  1. jmeter压测学习28-监听器之用表格察看结果(View Results in Table)
  2. Sublime Text3 多行注释
  3. python实现梯度下降算法
  4. Java long 转成 String
  5. python3中的 eval函数
  6. npm插件开发-Vue插件
  7. 怎样购买笔记本电脑-世界十大品牌
  8. 扇贝编程python无法退款_扇贝编程python学习笔记-基础篇1
  9. F28335舵机控制器(4)——第三版PCB配套程序
  10. Bochs 调试指令