本人研究方向(博士期间):多目标组合优化与决策研究——致力于多约束多目标多任务组合优化算法和多目标决策系统的研究与开发
,以及多目标优化技术在一些工程实践中的应用。
论文:李凯文, 张涛, 王锐, 覃伟健, 贺惠晖, 黄鸿. 基于深度强化学习的组合优化研究进展. 自动化学报, 2020, 41(x):1−17
组合优化问题广泛存在于国防、交通、工业、生活等各个领域, 几十年来, 传统运筹优化方法是解决组合优化问题的主要手段, 但随着实际应用中问题规模的不断扩大、求解实时性的要求越来越高, 传统运筹优化算法面临着很大的计算压力, 很难实现组合优化问题的在线求解. 近年来随着深度学习技术的迅猛发展, 深度强化学习在围棋、机器人等领域的瞩目成果显示了其强大的学习能力与序贯决策能力. 鉴于此, 近年来涌现出了多个利用深度强化学习方法解决组合优化问题的新方法, 具有求解速度快、模型泛化能力强的优势, 为组合优化问题的求解提供了一种全新的思路. 因此本文总结回顾近些年利用深度强化学习方法解决组合优化问题的相关理论方法与应用研究, 对其基本原理、相关方法、应用研究进行总结和综述, 并指出未来该方向亟待解决的若干问题.
组合(最)优化问题是最优化问题的一类。最优化问题似乎自然地分成两类:
一般地,这两类问题有相当不同的特色,并且求解它们的方法也是很不同的。
CO算法是一类在离散状态下求极值的问题。把某种离散对象按某个确定的约束条件进行安排,当已知合乎这种约束条件的特定安排存在时,寻求这种特定安排在某个优化准则下的极大解或极小解的间题。组合最优化的理论基础含线性规划、非线性规划、整数规划、动态规划、拟阵论和网络分析等。组合最优化技术提供了一个快速寻求极大解或极小解的方法。
组合最优化的特点是可行解集合为有限点集。
只要将有限个点逐一比较目标值的大小,该问题最优解就一定可以得到。但是枚举是以时间为代价的,有的枚举时间还可以接受,有的则不能接受。设问题的规模为n,如果存在一个多项式p(n),使得算法最多执行p(n)个基本步骤便可得到解答,则这种算法称为多项式时间算法,如最短路径问题、最小支撑问题。数学模型如下所示:
min F ( x ) s.t. G ( x ) ≥ 0 x ∈ D \begin{aligned} &\min F(x) \\ &\text { s.t. } G(x) \geq 0 \\ &x \in D \end{aligned} minF(x) s.t. G(x)≥0x∈D
其中 x x x为 决策变量、 F ( x ) F(x) F(x)为目标函数、 G ( x ) G(x) G(x) 为约束条件, D D D表示离散的决策空间, 为有限个点组成的集合.
随着实践的发展,可行解数量随问题规模呈指数型增长,出现了越来越多的组合优化问题都很难找到求最优解的多项式时间算法。例如,最大团问题,TSP问题,点覆盖问题,3-SAP问题等等都属于这一类问题。这一类组合优化问题归为所谓的NP-hard问题。
因为一些组合优化问题还没有找到求最优解的多项式时间算法,而这些组合优化问题又有非常强的实际应用背景,人们不得不尝试着为这些问题设计优化方案:
自己设定规则,精度较高、接近理论最优,但是泛化能力差、求解效率低
,比如遗传算法、蚁群优化算法、禁忌搜索算法、麻雀搜索算法等。实时优化
问题. 此外, 一旦问题发生变化, 上述方法一般需要重新进行搜索求解
,或者通过不断试错对启发式规则进行调整以获得更好的效果, 计算成本高.Hopfield 网络(Hopfield, 1985):最早在COP的应用,用于求解TSP以及其他组合优化问题。但是每次只能学习并解决单个小规模TSP 问题实例, 对于新给定的一个TSP 问题需要从头开始再次训练,相比较传统算法并没有多大的提升。
Seq2Seq:将组合优化问题类比为机器翻译过程(即序列到序列的映射)(Vinyals et al., 2015):
指针网络模型(Pointer Network, Ptr-Net)
[2]GNN:采用图神经网络对每个节点的特征进行学习, 从而根据学习到的节点特征进行后续的链路预测、节点预测等任务.
以上方法均为端到端(end-to-end)方法
:即给定问题实例作为输入, 利用训练好的深度神经网络直接输出问题的解, 其中神经网络的参数一般利用深度强化学习方法训练得到。无需搜索,直接给出问题解,求解速度快,泛化能力强(模型一旦训练完成, 可以对具有相同分布特性的所有问题实例进行求解, 而不需要重新进行训练)
,但是相比较启发式算法,端到端方法的解的最优性难以得到保证
,在小规模问题上可以得到接近最优解,但是在大规模问题上,与专业的组合优化求解器还存在较大差距。
目前基于DRL 的组合优化方法主要分为基于DRL 的端到端算法和基于DRL 的局部搜索改进算法两大类, 其中端到端算法主要包括基于Pointer Network 的端到端方法和基于图神经网络的端到端方法两类。
本质上仍然是迭代型搜索算法,求解速度仍然远不及端到端方法
Pointer Network 方法可概括为利用神经网络模型实现序列到序列的映射, 其核心思想是利用编码器(Encoder) 对组合优化问题的输入序列进行编码得到特征向量, 再利用解码器(Decoder) 结合Attention 计算方法以自回归(Autoregressive) 的方式逐步构造解, 自回归即每次选择一个节点, 并在已选择节点的基础上选择下一个节点, 直到构造得到完整解
.
Attention机制在这里不多介绍,有需要的可以查看我之前的一篇博客:细讲:Attention模型的机制原理
以TSP问题为例,经典指针网络模型的编码器和解码器均为LSTM(Long Short-Term Memory) 循环神经网络. 利用指针网络模型构造TSP 解的过程如下:
Attention机制根据 d 0 d_{0} d0和编码器得到的各城市的隐层状态计算选择各个城市的概率,选择概率最大的节点作为第一步选择的城市,以此类推,LSTM读入上一步LSTM 的隐层输出和上一步选择城市的特征向量
,输出当前隐层状态 d t d_{t} dt,根据 d t d_{t} dt和各城市的 e e e计算选择各个城市的概率,也就是Attention机制:
u j t = v T tanh ( W 1 e j + W 2 d t ) , j ∈ ( 1 , ⋯ , n ) P ( ρ t + 1 ∣ ρ 1 , ⋯ , ρ t , X t ) = softmax ( u t ) \begin{aligned} u_{j}^{t}=& \mathbf{v}^{T} \tanh \left(\mathbf{W}_{1} \mathbf{e}_{j}+\mathbf{W}_{2} \mathbf{d}_{t}\right), j \in(1, \cdots, n) \\ & P\left(\rho_{t+1} \mid \rho_{1}, \cdots, \rho_{t}, X_{t}\right)=\operatorname{softmax}\left(\mathbf{u}^{t}\right) \end{aligned} ujt=vTtanh(W1ej+W2dt),j∈(1,⋯,n)P(ρt+1∣ρ1,⋯,ρt,Xt)=softmax(ut)
该深度神经网络模型的输入是城市的坐标序列, 输出是城市的顺序, 通过对该模型参数的训练可以实现问题序列到解序列的准确映射.
对于Pointer Network 深度神经网络模型, 可以通过监督式训练算法或者强化学习算法进行训练, 由于监督式学习方法需要提供大量最优路径的标签数据集, 实际应用较为困难, 因此目前研究中通常以强化学习算法对模型的W和v等参数进行训练
状态为城市的坐标 s s s以及已经访问过的城市, 动作为第 t t t步选择的城市 π t \pi_{t} πt , 所有动作组成的城市访问顺序 π \pi π即为组合优化问题的解, 反馈r是路径总距离的负数, 即最小化路径长度
, 总反馈即为路径总长度的负数 − L ( π ) -L(\pi) −L(π).策略即为状态 s s s到动作 π \pi π的映射, 策略通常为随机策略。
随机策略建模为:
p θ ( π ∣ s ) = ∏ n t = 1 p θ ( π t ∣ s , π 1 : t − 1 ) p_{\theta}(\pi \mid s)=\prod_{n}^{t=1} p_{\theta}\left(\pi_{t} \mid s, \pi_{1: t-1}\right) pθ(π∣s)=n∏t=1pθ(πt∣s,π1:t−1)
基于以下公式对策略 θ \theta θ进行更新:
∇ L ( θ ∣ s ) = E p θ ( π ∣ s ) [ ( L ( π ) − b ( s ) ) ∇ log p θ ( π ∣ s ) ] θ ← θ + ∇ L ( θ ∣ s ) \begin{aligned} &\nabla \mathcal{L}(\theta \mid s)= \mathbb{E}_{p_{\theta}(\pi \mid s)}\left[(L(\pi)-b(s)) \nabla \log p_{\theta}(\pi \mid s)\right] \\ &\theta \leftarrow \theta+\nabla \mathcal{L}(\theta \mid s) \end{aligned} ∇L(θ∣s)=Epθ(π∣s)[(L(π)−b(s))∇logpθ(π∣s)]θ←θ+∇L(θ∣s)
REINFORCE 算法通过以上公式对 θ \theta θ的梯度进行计算并更新, 不断训练从而得到准确的 p θ ( π ∣ s ) p_{\theta}(\pi \mid s) pθ(π∣s) ,即实现组合优化问题序列到解序列的准确映射.
图神经网络(Graph Neural Network, GNN)是近年来提出的能够有效处理图结构数据的新方法。
根据每个节点的原始信息(如城市坐标) 和各个节点之间的关系(如城市之间的距离), 利用图神经网络方法计算得到各个节点的特征向量, 根据各个节点的特征向量进行节点预测、边预测
等任务.
一般将图定义为 G = ( V , E ) G = (V, E) G=(V,E) , V V V 代表节点的集合, E E E 为边的集合. 图神经网络通过不断学习节点的特征、邻居节点的特征、边的特征, 并将其以各种方法进行聚合, 从而最终得到各个节点的特征向量,根据各个节点的特征向量完成预测、分类等任务.以经典GNN[3]为例, 各个节点的表征以如下公式更新:
h v ( t ) = ∑ u ∈ N ( v ) f ( x v , x ( v , u ) e , x u , h u ( t − 1 ) ) \mathbf{h}_{v}^{(t)}=\sum_{u \in N(v)} f\left(\mathbf{x}_{v}, \mathbf{x}_{(v, u)}^{\mathrm{e}}, \mathbf{x}_{u}, \mathbf{h}_{u}^{(t-1)}\right) hv(t)=u∈N(v)∑f(xv,x(v,u)e,xu,hu(t−1))
其中:
h v ( t ) h_{v}^{(t)} hv(t)代表节点 v v v 的表征向量,
N ( v ) N(v) N(v)代表v 的邻居节点的集合,
x v x_{v} xv是节点 v v v的特征,
x ( v , u ) e {x}_{(v, u)}^{e} x(v,u)e是与 v v v 相连的边的特征,
x u x_{u} xu是邻居节点 u u u的特征,
h v ( t − 1 ) h_{v}^{(t-1)} hv(t−1)是邻居节点 u u u 在上一步更新的特征向量.
因此该公式根据节点 v v v本身的特征、边的特征以及邻居节点的特征对节点 v v v 的表征向量进行更新,
从 t = 0 t=0 t=0开始对不断对 h v ( t ) h_{v}^{(t)} hv(t)进行更新直到收敛, 从而得到节点 v v v 的准确特征向量.
根据各个节点的特征向量, 可以进行组合优化问题的求解:
按照概率进边的选择并不一定可以构成一个完整的哈密顿回路
, 因此需要辅以搜索方法进行解的构造.首先利用GNN 计算得到各个节点的表征 h v ( t ) h_{v}^{(t)} hv(t), 将各个节点的 h v ( t ) h_{v}^{(t)} hv(t)向量进一步运算得到各个节点的 Q Q Q值. 根据 Q Q Q值以迭代的方式构造解, 即每次选择 Q Q Q 值最大的节点添加到当前解当中, 直到构造得到完整解,通常以DQN 强化学习方法对该图神经网络进行训练, 从而得到准确的Q 值估计.
模型架构:结合图神经网络、DQN 以及贪婪策略进行解的构造
对选择各个节点的概率进行估计:
利用图神经网络对选择各个”边”的概率进行估计:
指针网络模型主要用于求解TSP、VRP 等具有序列特性的组合优化问题(即该类问题的解与节点的顺序有关)
,由于指针网络利用Attention 机制以自回归的方式对解进行构造, 因此适用于求解序列组合优化问题,以自回归的方式逐步选择节点.
基于图神经网络的方法由于得到的是节点的特征向量, 自然地可以计算得到节点选择的概率
, 因此在MVC、MIS 等顺序无关的点选择问题上多有应用,根据节点的特征向量计算边选择的概率, 然后利用波束搜索等方法构造解。
结合:用图神经网络计算得到的节点特征向量 h v ( t ) h_{v}^{(t)} hv(t),代替指针网络LSTM 编码器计算得到的各节点的隐层输出向量 e t e_{t} et, 仍然采用Attention机制计算每一步的节点选择概率, 以自回归的方式逐步构造得到完整解。
有研究者结合指针网络和图神经网络设计了一种图指针网络(Graph Pointer Network,GPN)
用来求解大规模TSP 问题以及带时间窗约束的TSP 问题。该模型的编码器包含两部分: Point Encoder 以及Graph Encoder:
点嵌入
,图嵌入
.相对于传统的Seq2Seq 模型, 近年来Transformer模型在自然语言处理领域取得了巨大的成功, Transformer 的Multi-head Attention 机制可以使模型更好的提取问题的深层特征
, 鉴于此,多个最新的研究借鉴了Transformer 模型进行了组合优化问题求解的研究:
经过改进, 该方法的优化性能超越了之前所有的端到端模型
下图是截止到2020年本论文发表时的主要算法模型和针对求解问题比较:
虽然端到端方法可以通过深度神经网络模型直接输出问题的解, 实现组合优化的快速求解, 但是其优化效果与LKH3、Google OR tools 等专业求解器相比仍有一定差距.
局部搜索(local search) 是求解组合优化问题的经典方法, 当前的局部搜索算法主要是通过人工对搜索的启发式规则进行设计, 以获得更好的优化效果, 鉴于近年来深度强化学习在在各领域取得的瞩目的学习能力, 学者们开始研究利用深度强化学习方法来自动学习局部搜索算法的启发式规则, 从而比人工设计的搜索规则具有更好的搜索能力.
深度强化学习改进的局部搜索方法是自2019 年以来最新提出的一类组合优化方法, 主要用于求解VRP 等路径优化问题
基于深度强化学习的组合优化问题搜索模型NeuRewriter(Chen, 2019):
也有研究者采用深度强化学习改进的局部搜索方法对适定性问题(Satisfiability) 进行了研究,仍然采用局部搜索的求解框架, 利用深度强化学习对局部搜索中变量选择算子进行学习。
基于大规模邻域搜索框架对组合优化问题进行求解——Gao L, Chen M, Chen Q, Luo G, Zhu N, Liu Z. Learn to design the heuristics for vehicle routing problem. arXiv preprint arXiv:200208539, 2020.
Learn to Improve(LSI) 组合优化问题求解方法——Lu H, Zhang X, Yang S. A Learning-based Iterative Method for Solving Vehicle Routing Problems. In: International Conference on Learning Representations, 2019.
针对深度强化学习改进的局部搜索方法, 目前的研究仍然处于起步阶段, 但已经取得了超越传统组合优化求解器的成果, 如何提高解搜索的效率以及扩大启发式算子的搜索空间是未来提升算法性能的重要研究方向.
研究的主体是多目标强化学习算法, 而不是如何利用强化学习方法解决传统的多目标优化问题.
该方法借鉴Pointer Network 模型采用端到端的求解框架, 采用基于分解的思想将多目标问题分解为多个子问题, 并将每个子问题建模为Pointer Network模型, 多个子模型利用基于邻居的参数迁移的方法进行协同训练.
利用随机生成的40 城市TSP 问题进行模型训练, 一旦模型训练好, 可以求解任意生成的100、200、500 城市的TSP 问题, 而不用重新训练模型, 具有较强的泛化能力
得益于端到端的求解框架, 求解速度快以及泛化能力强是该方法的优势, 且该方法的思想很容易迁移到其他多目标优化问题的求解中.
不足:文章仅对多目标TSP 问题进行了实验研究, 对其他多目标组合优化问题以及更为普遍的多目标连续优化问题没有进行研究, 并且由于该类方法神经网络模型个数与权重个数成正比, 如何提高该类方法的训练效率也是未来的研究方向.
深度强化学习改进的局部搜索方法是近年来兴起的另外一类方法, 其本质上仍然是启发式搜索算法
, 但是没有采用人工设计的搜索规则, 而是利用深度强化学习算法对搜索规则进行学习
, 因此该方法具有较强的优化能力, 其优化效果可以超越传统的优化算法, 但是其求解时间仍然远慢于端到端模型
, 因此决策者需要根据优化效果和求解速度之间的权衡来选择不同的方法.
强化学习训练方法收敛比监督式训练方法慢, 但强化学习得到的模型具有更强的泛化能力.
对于路径优化问题, 节点选择的顺序对结果有很大影响
,因此基于Attention 机制的方法在此类问题上有较好的效果. 并且对于复杂的路径选择问题, 如CVRP问题, 目前的研究均采用Attention 机制
, 而没有单纯采用图神经网络的方法, 可见Attention 机制在处理具有序列特性的组合优化问题上具有较好的性能;
对于解决MVC、MAXCUT等问题, 即点选择问题, 该类问题对节点的顺序没有要求, 此种情况下图神经网络在该类问题上应用较多;
近年来图神经网络结合各种搜索方法(波束搜索、树搜索) 在各种组合优化问题上得到了广泛的应用, 其主要应用于没有序列特性的组合优化问题, 如MVC、MAXCUT 等. 如何高效地将图神经网络和Attention 机制相结合是未来可行的研究思路.
基于Attention机制的指针网络方法是解决具有序列决策特性组合优化问题的主要方法, 如TSP、VRP 等问题.如何改进编码器和解码器的神经网络模型结构也是提高模型性能的一个重要研究方向.
在货物配送领域, 随着电商规模的不断扩大,如何做到城际交通规划系统的在线实时响应是一个重点研究问题.
实际生产生活中存在很多组合优化问题, 已有大量研究对各种组合优化方法进行了研究, 但是面对大规模复杂组合优化难题时, 现有方法很难在可接受时间内找到满意解, 难以满足很多问题在线优化的需求. 而近年来基于深度强化学习的组合优化方法在多种组合优化问题上展示出了良好性能, 具有较强的泛化性能和快速的求解速度, 为组合优化问题的在线求解提供了新的思路。
当前的研究尚属于起步阶段, 仍然存在一系列问题.要构建基于DRL 解决组合优化问题的理论方法体系, 还需从如下几个方面开展研究:
在模型方面. 在当前的研究中, 直接采用深度神经网络模型输出的解通常较差,当前的模型仍然有很大的提升空间,未来需要进一步对求解组合优化问题的深度神经网络模型进行研究, 如何有效结合图神经网络和Attention 机制是一个较好的研究点。
在研究对象方面. 当前文献研究的问题都相对简单, 而实际中的组合优化问题通常具有多目标、多约束、非静态等复杂特性,当前方法很难对该类问题进行求解, 目前考虑多目标优化、约束优化的文章较少。未来基于深度强化学习方法对多目标、约束优化、动态优化问题进行研究是一个重要的研究方向.
在深度强化学习训练算法方面. 目前对端到端模型的训练大多采用REINFORCE、DQN 等传统训练算法, 具有采样效率低、收敛慢等缺陷, 如何根据组合优化问题的特性设计更加高效的强化学习训练算法也是一个未来需要着重研究的内容.
如何利用基于深度强化学习的组合优化方法来解决工程实际中的在线调度优化问题将会成为未来重要的研究方向.
注:由于本综述论文参考文献众多,我只列举了几个我认为比较重要的文献,如果有兴趣更加深入地研究,可以直接查看综述原文