论文来源基本信息
一类在离散状态下求极值的最优化问题,数学模型:
m i n F ( x ) s . t . G ( x ) ≥ 0 x ∈ D min F(x)\\ s.t.G(x)≥0\\ x ∈ D\\ minF(x)s.t.G(x)≥0x∈D
其中x为决策变量,F(x)为目标函数,G(x)为约束条件,D表示离散的决策空间。
其决策空间为有限点集,直观上可以通过穷举法得到问题的最优解,但是由于可行解数量随问题规模呈指数型增长, 无法在多项式时间内穷举得到问题的最优解。
组合优化问题在国防、交通、智能制造、优化决策、电力、通信等领域都有应用,常见问题有:
具体方法介绍见第3章
本文不过多赘述此方面的内容
分类:基于Pointer network的端到端方法、基于图神经网络的端到端方法
经典指针网络模型的编码器和解码器都是LSTM循环神经网络
如下图所示构建TSP解:
(1)编码过程:输入每个城市的二维坐标转换成高维节点的表征向量si,编码器LSTM读入si,得到一个存储输入序列的向量Vector,同时LSTM得到每个城市的隐层状态ej。
(2)解码过程:t=0时第一次解码LSTM读入Vector,输出当前隐层状态d0,利用Attention机制计算选择各个城市的概率,此时可以选择概率最大的节点作为第一次选择的城市。然后继续解码t=1时LSTM读入上一步LSTM的隐层输出和上一步选择城市的特征向量,输出当前的隐层状态d1,根据d1和各城市的ej计算各个城市的概率,之后以此类推计算t=n时的情况,计算公式见(3-1),即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 ) (3-1) \begin{array}{r} u_{j}^{t}=\boldsymbol{v}^{\mathrm{T}} \tanh \left(\boldsymbol{W}_{1} \boldsymbol{e}_{j}+\boldsymbol{W}_{2} \boldsymbol{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(\boldsymbol{u}^{t}\right) \tag{3-1} \end{array} ujt=vTtanh(W1ej+W2dt),j∈(1,⋯,n)P(ρt+1∣ρ1,⋯,ρt,Xt)=softmax(ut)(3-1)
(3)本质上来说就是利用当前的dt值和各个城市的隐层状态ej计算得到第t步选择各城市的概率,其中W和v都是神经网络里面的参数, u j i u_j^i uji代表在第t步解码过程中选择城市j的概率。
总结:通过不断把具有最大概率值的节点添加到解当中,按照该方式不断选择城市,直至构造一个完整解。该深度神经网络模型的输入:城市的坐标序列;输出:城市的顺序。
Softmax函数:
目的:将实数范围内的分类结果转化为0-1之间的概率数值。
方法:
(1)用指数的特性,将实数映射到0-正无穷(非负)
(2)利用归一化方法,将1.的结果转化为0-1之间的概率。
建模:将组合优化问题建模为马尔科夫决策过程。下面以TSP为例:
策略:通常为随机策略,即选择城市的概率。例如可以确定每一步动作的概率来计算下一个访问城市的概率,根据链式法则累乘就可以得到城市坐标到最终访问顺序的映射。策略由神经网络参数θ进行参数化。根据公式(3-2)进行更新:
∇ L ( θ ∣ s ) = E p θ ( π ∣ s ) [ ( L ( π ) − b ( s ) ) ∇ ln p θ ( π ∣ s ) ] θ ← θ + ∇ L ( θ ∣ s ) (3-2) \begin{array}{l} \nabla \mathcal{L}(\theta \mid s)= \\ \mathrm{E}_{\mathrm{p}_{\theta}(\pi \mid \mathrm{s})}\left[(L(\pi)-b(s)) \nabla \ln p_{\theta}(\pi \mid s)\right] \\ \theta \leftarrow \theta+\nabla \mathcal{L}(\theta \mid s)\tag{3-2} \end{array} ∇L(θ∣s)=Epθ(π∣s)[(L(π)−b(s))∇lnpθ(π∣s)]θ←θ+∇L(θ∣s)(3-2)
l n p θ ( π ∣ s ) ln p_{\theta}(\pi \mid s) lnpθ(π∣s) 计算每步动作选择概率对数的求和,以该值对参数计算偏导就可以得到梯度值$\nabla \ln p_{\theta}(\pi \mid s) $ , L ( π ) − b ( s ) L(\pi)-b(s) L(π)−b(s) 决定了梯度下降的方向,如果当前表现比"平均表现b(s)"好的话,那么就对该策略正向激励。那么b(s)的由来有很多方法,比较常用的话就是加一个Critic网络,类似AC结构。
开山之作:Vinyals等在2015年提出了Pointer network模型进行组合优化问题求解,这篇文章的详细原理在3.1.2已经介绍。这篇文章实现了对50个城市的小规模TSP问题的快速求解。但是在文章中作者采用的是监督学习的方式,预先需要构造大量样本来进行预训练,也决定了解的质量很难超过样本解的质量。
引入强化学习训练:Bello等采用强化学习训练上述模型,并且引入了Critic网络作为Baseline降低训练方差。文章对100个城市的TSP问题进行测试,解的质量超过了Vinyals的监督模型,并解决了背包问题。
借鉴Transformer模型:
(1)旧瓶新装:仍是Pointer Network模型,采用了与Transformer模型编码层相同的结构,利用Multi-head attention方法计算得到节点的特征向量(Deudon等)
(2)新瓶新装:利用Attention机制提出新模型(Kool提出CVRP模型)
结合图神经网络:Ma等设计图指针网络,通过“指针网络对城市坐标线性映射,得到点嵌入”+“GNN图神经网络对所有城市编码,得到每个城市的图嵌入”一共两种编码方式,然后基于Attention机制去计算城市选择的概率,再使用分层强化学习(HRL)进行训练,在500-1000的大规模TSP问题上达到了Sota效果。
研究侧重点:指针网络模型利用Attention机制以自回归的方式对解继续了构造,比较适合求解有序列组合优化问题,比如TSP、VRP问题。
1.核心思想:根据每个节点的原始信息 (如城市坐标) 和各个节点之间的关系 (如城市之间的距离), 利用图神经网络方法计算得到各个节点的特征向量, 根据各个节点的特征向量进行节点预测、边预测等任务。
2.相关定义:图定义为G=(V,E),V代表节点的集合,E为边的集合。
各个节点的表征如公式(3-3)更新:
h v ( t ) = ∑ u ∈ N ( v ) f ( x v , x ( v , u ) e , x u , h u ( t − 1 ) ) (3-3) h_{v}^{(t)}=\sum_{u \in N(v)} f\left(\boldsymbol{x}_{v}, \boldsymbol{x}_{(v, u)}^{e}, \boldsymbol{x}_{u}, h_{u}^{(t-1)}\right)\tag{3-3} hv(t)=u∈N(v)∑f(xv,x(v,u)e,xu,hu(t−1))(3-3)
h v ( t ) h_{v}^{(t)} hv(t) 代表节点v的表征向量,N(v)代表v的相邻节点的集合, x v {x}_{v} xv是节点v的特征, x ( v , u ) e {x}_{(v, u)}^{e} x(v,u)e 是与v相连的边的特征, x u {x}_{u} xu是相邻节点u的特征。该公式的更新方式就是根据节点自身特征、边特征以及邻居节点的特征对节点v的表征向量进行更新,一直到该节点表征向量收敛为止,从而得到准确的特征向量。
最小顶点覆盖问题(节点选择):可以将图神经网络得到的 h v ( t ) h_{v}^{(t)} hv(t)以一个全连接层神经网络映射到节点选择概率,从而根据概率进行节点的选择。
TSP问题(边选择):以两个节点的特征向量作为输入,以一个全连接层神经网络映射得到一个选择概率。但是可能不一定能构成一个完整的回路,因此有时需要辅以一些搜索方法。
深度强化学习改进的局部搜索方法是自2019年以来最新提出的一类组合优化方法, 主要用于求解VRP等路径优化问题,从下列实验对比中可以看出在效果上优于当前性能最好的端到端模型,甚至优于LKH3等专业组合优化求解器,但是运行时间相较于端对端模型会大大增加。
“多目标深度强化学习”的概念很早就被提出并且存在很多文献对其进行研究, 但是其研究的是如何设计具有多个奖励信号的强化学习算法, 例如如何利用强化学习算法控制潜艇寻找目标,其中需要最大化寻找到目标的数量和最小化寻找的时间, 其研究的主体是多目标强化学习算法, 而不是如何利用强化学习方法解决传统的多目标优化问题。
Li等提出了采用基于分解的思想将多目标问题分解为多个子问题,并将每个子问题建模为Pointer Network模型,多个子模型利用基于邻居的参数迁移的方法进行协同训练。该方法在2、3、5个目标的TSP问题上取得了优于传统NSGA-II多目标优化算法的优化效果,而且具有很强的泛化能力以及较快的求解速度。
在该方向上的研究较少,或许可以作为一个深入研究的方向。
从上述方法可见, 端到端模型具有求解速度远超传统优化算法的优势, 也是近年来研究较多的一类方法, 模型一旦训练完成, 可以对任意同类型的问题进行求解, 具有很强的泛化能力, 但是很难保证解的优化效果, 尤其随着问题规模的扩大, 其优化能力与传统优化算法之间的差距会不断扩大。深度强化学习改进的局部搜索方法是近年来兴起的另外一类方法, 其本质上仍然是启发式搜索算法, 但是没有采用人工设计的搜索规则, 而是利用深度强化学习算法对搜索规则进行学习, 因此该方法具有较强的优化能力, 其优化效果可以超越传统的优化算法, 但是其求解时间仍然远慢于端到端模型, 因此决策者需要根据优化效果和求解速度之间的权衡来选择不同的方法。
由于端到端模型可以采用监督式和强化学习方法进行训练, 这两种方法中,强化学习训练方法收敛比监督式训练方法慢, 但强化学习得到的模型具有更强的泛化能力。
近年来图神经网络结合各种搜索方法 (波束搜索、树搜索) 在各种组合优化问题上得到了广泛的应用, 其主要应用于没有序列特性的组合优化问题, 如MVC、MIS等。而基于 Attention 机制的指针网络方法是解决具有序列决策特性组合优化问题的主要方法, 如 TSP、VRP 等问题。
下表主要罗列文章中不同组合优化问题的求解算法统计与比较。
组合优化问题广泛存在于工业、制造、通信、交通等各个领域, 随着在各个领域中实际问题规模的不断扩大以及对算法求解时间的严格要求, 传统运筹优化方法很难在可接受时间内实现问题的在线求解, 基于深度强化学习的组合优化方法作为近年来提出的一类前沿方法, 具有求解速度快、泛化能力强的优势。
由于网络与通信领域存在多种典型的组合优化问题, 如资源分配、路由拓扑优化等, 因此基于深度强化学习的组合优化在网络与通信领域存在较多的应用。
资源分配问题是指将有限的CPU、内存、带宽等资源分配给不同的用户或任务需求, 如虚拟网络功能部署问题、网络资源切片问题等。
在通信网络或者无线传感网络中, 通常需要对路由策略、传感器的连接拓扑进行优化, 以降低通信时延和成本。
计算迁移是通过将部分计算任务从本地迁移到远程设备以解决移动终端资源受限问题的一个有效途径, 由于无线信道状况变化较快, 需要快速进行策略相应, 而传统的数值优化方法很难实现在线快速优化, 因此需要深度强化学习的在线优化。
1.流水车间调度问题
2.置换车间工作流调度问题
3.机器人制造零件排序问题
人工智能模型的训练是一个耗时极长的任务,合理地对计算资源进行规划和调度能够有效提高计算效率, 随着神经网络规模的不断扩大, 多CPU和多GPU混合训练是当前通用的一个方法, 将神经网络模型的不同计算功能部署在不同的计算设备上对训练速度有很大的影响。
在微电网能量管理问题中, 用电、储能等设备的启停控制是典型的离散优化问题。
在模型方面:在当前的研究中, 直接采用深度神经网络模型输出的解通常较差, 大部分文献都需要进一步通过波束搜索、局部搜索、采样策略等方式进一步提升解的质量, 这说明当前的模型仍然有很大的提升空间, 未来需要进一步对求解组合优化问题的深度神经网络模型进行研究, 如何有效结合图神经网络和 Attention 机制是一个较好的研究点。
在研究对象方面:当前文献研究的问题都相对简单, 而实际中的组合优化问题通常具有多目标、多约束、非静态等复杂特性, 当前方法很难对该类问题进行求解, 目前考虑多目标优化、约束优化的文章较少。未来基于深度强化学习方法对多目标、约束优化、动态优化问题进行研究是一个重要的研究方向。
在深度强化学习训练算法方面:目前对端到端模型的训练大多采用DQN 等传统训练算法, 具有采样效率低、收敛慢等缺陷, 如何根据组合优化问题的特性设计更加高效的强化学习训练算法也是一个未来需要着重研究的内容。
如何利用基于深度强化学习的组合优化方法来解决工程实际中的在线调度优化问题将会成为未来重要的研究方向。
在各个领域有很多的组合优化问题,在强化学习里面有很多不同的深度强化学习算法。特别是针对不同领域的组合优化问题结合上具体的约束条件,会有很多不一样的建模。算法亦是如此,针对不同的问题以及不同的研究目标,那么状态、动作、奖励函数的设计都可以发生一定改变,策略也可以因此改进。
强化学习在解决单目标的问题上已经崭露头角,但是多目标问题交给强化学习来解决还是有些吃力,接下来可以的话往多目标组合优化问题去探索或许会是一个不错的选择。