基于深度强化学习的组合优化研究进展
本人研究方向(博士期间):多目标组合优化与决策研究——致力于多约束多目标多任务组合优化算法和多目标决策系统的研究与开发
,以及多目标优化技术在一些工程实践中的应用。
论文:李凯文, 张涛, 王锐, 覃伟健, 贺惠晖, 黄鸿. 基于深度强化学习的组合优化研究进展. 自动化学报, 2020, 41(x):1−17
名词解释:
- 多目标组合优化:Multi-Objective Combinatorial Optimization (MOCO)
- 组合优化问题:Combinatorial Optimization Problem (COP)
摘要
组合优化问题广泛存在于国防、交通、工业、生活等各个领域, 几十年来, 传统运筹优化方法是解决组合优化问题的主要手段, 但随着实际应用中问题规模的不断扩大、求解实时性的要求越来越高, 传统运筹优化算法面临着很大的计算压力, 很难实现组合优化问题的在线求解. 近年来随着深度学习技术的迅猛发展, 深度强化学习在围棋、机器人等领域的瞩目成果显示了其强大的学习能力与序贯决策能力. 鉴于此, 近年来涌现出了多个利用深度强化学习方法解决组合优化问题的新方法, 具有求解速度快、模型泛化能力强的优势, 为组合优化问题的求解提供了一种全新的思路. 因此本文总结回顾近些年利用深度强化学习方法解决组合优化问题的相关理论方法与应用研究, 对其基本原理、相关方法、应用研究进行总结和综述, 并指出未来该方向亟待解决的若干问题.
文章目录
前言
组合(最)优化问题是最优化问题的一类。最优化问题似乎自然地分成两类:
- 一类是连续变量的问题。在连续变量的问题里,一般地是求一组实数,或者一个函数;
- 一类是离散变量的问题。具有离散变量的问题,我们称它为组合的。在组合问题里,是从一个无限集或者可数无限集里寻找一个对象——典型地是一个整数,一个集合,一个排列,或者一个图。
一般地,这两类问题有相当不同的特色,并且求解它们的方法也是很不同的。
CO算法是一类在离散状态下求极值的问题。把某种离散对象按某个确定的约束条件进行安排,当已知合乎这种约束条件的特定安排存在时,寻求这种特定安排在某个优化准则下的极大解或极小解的间题。组合最优化的理论基础含线性规划、非线性规划、整数规划、动态规划、拟阵论和网络分析等。组合最优化技术提供了一个快速寻求极大解或极小解的方法。
1. 什么是COP
组合最优化的特点是可行解集合为有限点集。
只要将有限个点逐一比较目标值的大小,该问题最优解就一定可以得到。但是枚举是以时间为代价的,有的枚举时间还可以接受,有的则不能接受。设问题的规模为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问题。
因为一些组合优化问题还没有找到求最优解的多项式时间算法,而这些组合优化问题又有非常强的实际应用背景,人们不得不尝试着为这些问题设计优化方案:
- 精确算法(Exact approaches) : 求解得到问题全局最优解的一类算法, 主要包括分支定界法(Branch and Bound)和动态规划法(Dynamic Programming),其均采用分而治之的思想通过将原问题分解为子问题的方式进行求解, 通过不断迭代求解得到问题的全局最优解。缺点:虽然可以得到全局最优解,但当问题规模扩大时, 该类算法将消耗巨大的计算量, 很难拓展到大规模问题;
- 近似算法(Approximate Algorithm):寻找能在较短时间(多项式时间)内得到接近予最优解的算法。如贪心算法、局部搜索算法、线性规划和松弛算法、序列算法等
- 启发式算法(Heuristic Algorithm):一般情况下也能够保证计算结果同最优结果差别不超过某一常数α,但是相对于近似算法要大。也有一些启发式算法无法保证解的近似度,但计算结果通常都比较理想,由于是
自己设定规则,精度较高、接近理论最优,但是泛化能力差、求解效率低
,比如遗传算法、蚁群优化算法、禁忌搜索算法、麻雀搜索算法等。 - 缺点:很难拓展到在线、
实时优化
问题. 此外,一旦问题发生变化, 上述方法一般需要重新进行搜索求解
,或者通过不断试错对启发式规则进行调整以获得更好的效果, 计算成本高.
典型的组合优化问题
- 旅行商问题(Traveling Salesman Problem, TSP)
- 车辆路径问题(Vehicle Routing Problem, VRP)
- 加工调度问题(Scheduling Problem,如Flow-Shop Scheduling,Job-Shop Scheduling)
- 0-1背包问题(Knapsack Problem)
- 装箱问题(Bin Packing Problem, BPP)
- 最小顶点覆盖问题(Minimum Vertex Cover, MVC)
- 最小支配集问题(Minimum Dominating Problem, MDP)
- 图着色问题(Graph Coloring Problem);
- 聚类问题(Clustering Problem)
…
2. 端到端(end-to-end)方法
最早的尝试: Hopfield网络
Hopfield 网络(Hopfield, 1985):最早在COP的应用,用于求解TSP以及其他组合优化问题。但是每次只能学习并解决单个小规模TSP 问题实例, 对于新给定的一个TSP 问题需要从头开始再次训练,相比较传统算法并没有多大的提升。
突破性进展: Seq2Seq & GNN
Seq2Seq:将组合优化问题类比为机器翻译过程(即序列到序列的映射)(Vinyals et al., 2015):
- 输入是问题的特征序列(如城市的坐标序列)
- 输出是解序列(如城市的访问顺序)
- 对机器翻译领域的经典序列映射模型(Sequence-to-Sequence, Seq2Seq) 进行了改进, 提出了可以求解组合优化问题的
指针网络模型(Pointer Network, Ptr-Net)
[2] - 缺点:由于监督式学习需要构造大量带标签的样本, 很难实际应用, 目前大多数研究均利用深度强化学习方法对模型进行训练.
GNN:采用图神经网络对每个节点的特征进行学习, 从而根据学习到的节点特征进行后续的链路预测、节点预测等任务.
- 比如利用图神经网络对各个”待选节点”的Q 值进行估计, 每次根据Q 值利用贪婪策略向当前解插入一个新节点, 直到构造一个完整的解。
- 图神经网络和指针网络进行组合优化算法的设计,即首先使用图神经网络进行节点特征计算, 再使用指针网络的Attention 机制进行解的构造, 在TSP等问题上取得了较好的优化性能.
以上方法均为端到端(end-to-end)方法
:即给定问题实例作为输入, 利用训练好的深度神经网络直接输出问题的解, 其中神经网络的参数一般利用深度强化学习方法训练得到。无需搜索,直接给出问题解,求解速度快,泛化能力强(模型一旦训练完成, 可以对具有相同分布特性的所有问题实例进行求解, 而不需要重新进行训练)
,但是相比较启发式算法,端到端方法的解的最优性难以得到保证
,在小规模问题上可以得到接近最优解,但是在大规模问题上,与专业的组合优化求解器还存在较大差距。
3. COP研究现状
- 契机:组合优化即在离散决策空间内进行决策变量的最优选择, 与强化学习的 “动作选择”具有天然相似的特征, 且深度强化学习 “离线训练、在线决策”的特性使得组合优化问题的在线实时求解成为了可能。
- 优势:基于DRL 的组合优化算法具有求解速度快、泛化能力强等一系列优势
目前研究方向
目前基于DRL 的组合优化方法主要分为基于DRL 的端到端算法和基于DRL 的局部搜索改进算法两大类, 其中端到端算法主要包括基于Pointer Network 的端到端方法和基于图神经网络的端到端方法两类。
- 利用DRL 方法改进传统的精确/近似方法, 如利用机器学习模型对经典的精确求解算法:分支定界法(Branch and bound) 的node selection和variable selection 策略进行选择
- 基于深度强化学习对迭代搜索类算法进行改进,局部搜索/邻域搜索是求解组合优化问题的常用近似方法,通过神经网络模型代替手工设计的启发式规则。缺点:
本质上仍然是迭代型搜索算法,求解速度仍然远不及端到端方法
Pointer Network 求解组合优化问题
Ptr-Net模型构建
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)
该深度神经网络模型的输入是城市的坐标序列, 输出是城市的顺序, 通过对该模型参数的训练可以实现问题序列到解序列的准确映射.
Ptr-Net与RL的结合
对于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) ,即实现组合优化问题序列到解序列的准确映射.
GNN求解组合优化问题
图神经网络(Graph Neural Network, GNN)是近年来提出的能够有效处理图结构数据的新方法。
核心思想
根据每个节点的原始信息(如城市坐标) 和各个节点之间的关系(如城市之间的距离), 利用图神经网络方法计算得到各个节点的特征向量, 根据各个节点的特征向量进行节点预测、边预测
等任务.
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 的准确特征向量.
根据各个节点的特征向量, 可以进行组合优化问题的求解:
- 如针对节点选择问题(如最小顶点覆盖问题), 可以将图神经网络得到的节点特征向量 h v ( t ) h_{v}^{(t)} hv(t)以一个全连接层神经网络映射到节点选择概率,从而根据概率进行节点的选择
- 针对边选择问题(如TSP 问题), 可以以两个节点的特征向量作为输入, 以一个全连接层神经网络映射得到一个选择概率, 即该两点之间存在边的概率, 从而进行边选择
- 值得注意的是,
按照概率进边的选择并不一定可以构成一个完整的哈密顿回路
, 因此需要辅以搜索方法进行解的构造.
GNN与RL的结合
首先利用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 以及贪婪策略进行解的构造
-
对选择各个节点的概率进行估计:
- 采用structure2vec图神经网络对当前解的图结构进行建模,并根据图神经网络计算剩余可选节点中各个节点的Q 值, 随后基于贪婪策略根据Q 值选择一个新的节点添加到当前解中, 直至得到完整解。采用了深度Q 学习(Deep Q-Learning, DQN) 算法对该图神经网络的参数进行训练, 以使模型输出准确的Q 值估计.
- 采用图卷积神经网络(Graph Convolutional Networks,GCN) 对图结构进行建模
-
利用图神经网络对选择各个”边”的概率进行估计:
- 利用图神经网络模型(e.g., GNN,GCN)输出一个邻接矩阵, d i j d_{ij} dij代表两点之间存在边的概率, d i j d_{ij} dij值大则节点 i i i 和 j j j大概率相连. 随后根据各个边出现概率的估计值, 使用波束搜索(beam search) 的方式构造最终的可行解
- 采用监督式方法进行训练, 即利用LKH3 或Concorde求解器构造大量 “坐标-最优路径”的训练数据, 根据最优解的真实邻接矩阵和图神经网络输出的邻接矩阵计算交叉熵, 以交叉熵为损失函数训练模型
GNN与Ptr-Net的结合
-
指针网络模型主要用于求解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:
- Point Encoder对城市坐标进行线性映射, 并输入到LSTM中得到每个城市的
点嵌入
, - Graph Encoder 通过GNN 图神经网络对所有城市进行编码, 得到每个城市的
图嵌入
. - 模型根据图嵌入和点嵌入, 基于Attention机制计算每一步城市选择的概率, 并引入Vector context 提高模型的泛化能力. 文章采用分层强化学习方法(Hierarchical RL, HRL) 对模型进行训练.
- 该方法在100 规模的TSP 问题上效果一般,但在大规模TSP 上存在优势, 未来如何将指针网络的Attention 机制和图神经网络相结合是一个重要的研究点.
其他方法模型
相对于传统的Seq2Seq 模型, 近年来Transformer模型在自然语言处理领域取得了巨大的成功, Transformer 的Multi-head Attention 机制可以使模型更好的提取问题的深层特征
, 鉴于此,多个最新的研究借鉴了Transformer 模型进行了组合优化问题求解的研究:
- 法1:结合局部搜索可以提高性能, 但是其神经网络模型本身与传统的Pointer Network 模型相比并没有显著的优势,具体如下:
改进传统的指针网络模型, 其编码层采用了与Transformer模型编码层相同的结构, 即利用Multi-head Attention 方法计算得到节点的特征向量; 其解码层没有采用LSTM, 而是将最近三步的决策进行线性映射得到参考向量, 从而降低模型复杂度, 其Attention计算方式与传统Pointer Network 模型相同, 仍然采用经典的REINFORCE 方法对该模型进行训练, - 法2:
经过改进, 该方法的优化性能超越了之前所有的端到端模型
编码层采用了和Transformer模型相同的Multi-head Attention 机制, 但解码层和Attention 机制存在很大不同, 首先该模型每一步的解码过程中考虑的是第一步所做的决策和最近两步的决策,采用了Transformer 模型的Self-Attention 计算方法, 增加了更多计算层以提高模型的表现,并设计了一种rollout baseline 来代替Critic神经网络:即在之前训练过程中得到的所有策略模型里, 选择在测试集中表现最好的模型作为基线策略, 并采用贪婪方式进行动作选择, 将利用该基线策略对状态s 求解得到的目标函数值作为 b ( s ) b(s) b(s) ,如果当前策略比历史最优策略的表现好, 则进行正向激励, 从而对当前策略进行评价和参数更新.
下图是截止到2020年本论文发表时的主要算法模型和针对求解问题比较:
深度强化学习改进的局部搜索方法
虽然端到端方法可以通过深度神经网络模型直接输出问题的解, 实现组合优化的快速求解, 但是其优化效果与LKH3、Google OR tools 等专业求解器相比仍有一定差距.
局部搜索(local search) 是求解组合优化问题的经典方法, 当前的局部搜索算法主要是通过人工对搜索的启发式规则进行设计, 以获得更好的优化效果, 鉴于近年来深度强化学习在在各领域取得的瞩目的学习能力, 学者们开始研究利用深度强化学习方法来自动学习局部搜索算法的启发式规则, 从而比人工设计的搜索规则具有更好的搜索能力.
深度强化学习改进的局部搜索方法是自2019 年以来最新提出的一类组合优化方法, 主要用于求解VRP 等路径优化问题
-
基于深度强化学习的组合优化问题搜索模型NeuRewriter(Chen, 2019):
- 和局部搜索具有相似的算法流程, 即首先随机构造一个可行解, 在该初始解的基础上通过局部搜索不断提高解的质量
- 利用深度强化学习方法对局部搜索的策略进行训练, 利用学习到的策略对搜索过程进行引导. 其策略由两部分构成(Region-Picker 和Rule-Picker):以作业车间调度问题为例,首先利用Region-Picker 选定一个工序, 其次利用Rule-Picker 对该工序的操作策略进行决策, 如与另一个工序进行调换
- 利用Actor-Critic 方法对Region-Picker 和Rule-Picker 策略进行了训练
-
也有研究者采用深度强化学习改进的局部搜索方法对适定性问题(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.
针对深度强化学习改进的局部搜索方法, 目前的研究仍然处于起步阶段, 但已经取得了超越传统组合优化求解器的成果, 如何提高解搜索的效率以及扩大启发式算子的搜索空间是未来提升算法性能的重要研究方向.
4. 基于深度学习的多目标组合优化(MOCO)方法
研究的主体是多目标强化学习算法, 而不是如何利用强化学习方法解决传统的多目标优化问题.
DRL-MOA[4]
该方法借鉴Pointer Network 模型采用端到端的求解框架, 采用基于分解的思想将多目标问题分解为多个子问题, 并将每个子问题建模为Pointer Network模型, 多个子模型利用基于邻居的参数迁移的方法进行协同训练.
利用随机生成的40 城市TSP 问题进行模型训练, 一旦模型训练好, 可以求解任意生成的100、200、500 城市的TSP 问题, 而不用重新训练模型, 具有较强的泛化能力
得益于端到端的求解框架, 求解速度快以及泛化能力强是该方法的优势, 且该方法的思想很容易迁移到其他多目标优化问题的求解中.
不足:文章仅对多目标TSP 问题进行了实验研究, 对其他多目标组合优化问题以及更为普遍的多目标连续优化问题没有进行研究, 并且由于该类方法神经网络模型个数与权重个数成正比, 如何提高该类方法的训练效率也是未来的研究方向.
MOCO研究现状
深度强化学习改进的局部搜索方法是近年来兴起的另外一类方法, 其本质上仍然是启发式搜索算法
, 但是没有采用人工设计的搜索规则, 而是利用深度强化学习算法对搜索规则进行学习
, 因此该方法具有较强的优化能力, 其优化效果可以超越传统的优化算法, 但是其求解时间仍然远慢于端到端模型
, 因此决策者需要根据优化效果和求解速度之间的权衡来选择不同的方法.
强化学习训练方法收敛比监督式训练方法慢, 但强化学习得到的模型具有更强的泛化能力.
-
对于路径优化问题,
节点选择的顺序对结果有很大影响
,因此基于Attention 机制的方法在此类问题上有较好的效果. 并且对于复杂的路径选择问题, 如CVRP问题, 目前的研究均采用Attention 机制
, 而没有单纯采用图神经网络的方法, 可见Attention 机制在处理具有序列特性的组合优化问题上具有较好的性能; -
对于解决MVC、MAXCUT等问题, 即点选择问题, 该类问题对节点的顺序没有要求, 此种情况下图神经网络在该类问题上应用较多;
-
同时, 结合图神经网络和Attention 机制的方法在TSP 等路径优化问题上也取得了较好的效果
由图中可以看出: -
近年来图神经网络结合各种搜索方法(波束搜索、树搜索) 在各种组合优化问题上得到了广泛的应用, 其主要应用于没有序列特性的组合优化问题, 如MVC、MAXCUT 等. 如何高效地将图神经网络和Attention 机制相结合是未来可行的研究思路.
-
基于Attention机制的指针网络方法是解决具有序列决策特性组合优化问题的主要方法, 如TSP、VRP 等问题.如何改进编码器和解码器的神经网络模型结构也是提高模型性能的一个重要研究方向.
5. COP目前主要应用领域
- 网络与通信领域
由于网络与通信领域存在多种典型的组合优化问题, 如资源分配、路由拓扑优化、计算迁移等, 因此基于深度强化学习的组合优化在网络与通信领域存在较多的应用. - 交通领域
在货物配送领域, 随着电商规模的不断扩大,如何做到城际交通规划系统的在线实时响应是一个重点研究问题.
- 高性能计算领域
人工智能模型的训练是一个耗时极长的任务,合理地对计算资源进行规划和调度能够有效提高计算效率 - 微电网能量管理领域
在微电网能量管理问题中, 用电、储能等设备的启停控制是典型的离散优化问题
总结与展望
实际生产生活中存在很多组合优化问题, 已有大量研究对各种组合优化方法进行了研究, 但是面对大规模复杂组合优化难题时, 现有方法很难在可接受时间内找到满意解, 难以满足很多问题在线优化的需求. 而近年来基于深度强化学习的组合优化方法在多种组合优化问题上展示出了良好性能, 具有较强的泛化性能和快速的求解速度, 为组合优化问题的在线求解提供了新的思路。
当前的研究尚属于起步阶段, 仍然存在一系列问题.要构建基于DRL 解决组合优化问题的理论方法体系, 还需从如下几个方面开展研究:
-
在模型方面. 在当前的研究中, 直接采用深度神经网络模型输出的解通常较差,当前的模型仍然有很大的提升空间,未来需要进一步对求解组合优化问题的深度神经网络模型进行研究, 如何有效结合图神经网络和Attention 机制是一个较好的研究点。
-
在研究对象方面. 当前文献研究的问题都相对简单, 而实际中的组合优化问题通常具有多目标、多约束、非静态等复杂特性,当前方法很难对该类问题进行求解, 目前考虑多目标优化、约束优化的文章较少。未来基于深度强化学习方法对多目标、约束优化、动态优化问题进行研究是一个重要的研究方向.
-
在深度强化学习训练算法方面. 目前对端到端模型的训练大多采用REINFORCE、DQN 等传统训练算法, 具有采样效率低、收敛慢等缺陷, 如何根据组合优化问题的特性设计更加高效的强化学习训练算法也是一个未来需要着重研究的内容.
-
如何利用基于深度强化学习的组合优化方法来解决工程实际中的在线调度优化问题将会成为未来重要的研究方向.
参考文献
注:由于本综述论文参考文献众多,我只列举了几个我认为比较重要的文献,如果有兴趣更加深入地研究,可以直接查看综述原文
- 组合优化算法-百度百科
- Vinyals O, Fortunato M, Jaitly N. Pointer networks. In: Advances in Neural Information Processing Systems, 2015.
- Scarselli F, Gori M, Tsoi AC, Hagenbuchner M, Monfardini G.The graph neural network model. IEEE Transactions on Neural Networks, 2008, 20(1): 61−80
- Li K, Zhang T, Wang R. Deep Reinforcement Learning for Multiobjective Optimization. IEEE Transactions on Cybernetics,2020.