摘要
本文提出一种基于深度强化学习(DRL)辅助的约束多目标优化进化算法(CMOEAs)算子选择框架。该框架以种群的收敛性、多样性和可行性为状态,候选算子为行动,种群状态的改进为奖励,借助深度Q网络学习策略选择最优算子。实验表明,该方法能显著提升CMOEAs性能,且通用性优于多种先进算法。
关键词:约束多目标优化;深度强化学习;进化算法;算子选择
一、引言
在实际应用和科研中,约束多目标优化问题(CMOPs)广泛存在,像Web服务位置分配、城市公交车辆调度等场景。进化算法在求解CMOPs方面颇受关注,其中CMOEAs包含算法策略、约束处理技术和进化算子三个关键组件。不过,现有研究多聚焦于前两者,对进化算子自适应选择的研究较少。不同进化算子适用于不同问题,固定算子会限制CMOEA的适用性,所以研究自适应算子选择意义重大。
DRL在多目标优化领域崭露头角,其能处理连续状态空间,适合用于CMOPs的算子选择。但将DRL应用于CMOPs时,需解决约束满足和可行性评估等问题。本文提出的DRL辅助在线算子选择框架,旨在填补CMOPs算子选择的研究空白,提升CMOEAs性能。
二、相关工作与研究动机
(一)预备知识
CMOP的数学表述为:CMOP的数学表述为:
min
F
(
x
)
=
(
f
1
(
x
)
,
⋯
,
f
m
(
x
)
)
T
s
.
t
.
x
∈
R
g
i
(
x
)
≤
0
,
i
=
1
,
⋯
,
p
h
j
(
x
)
=
0
,
j
=
p
+
1
,
⋯
,
q
\begin{array}{cl} \begin{array}{cl} \min & F(x)=(f_{1}(x), \cdots, f_{m}(x))^{T} \\ s.t. &x \in \mathbb{R} \\ & g_{i}(x) \leq 0, i = 1, \cdots, p \\ & h_{j}(x)=0, j = p + 1, \cdots, q \end{array}\end{array}
mins.t.F(x)=(f1(x),⋯,fm(x))Tx∈Rgi(x)≤0,i=1,⋯,phj(x)=0,j=p+1,⋯,q
其中,
m
m
m是目标函数数量,
x
x
x是
n
n
n维决策向量,
R
\mathbb{R}
R是搜索空间,
g
i
(
x
)
g_{i}(x)
gi(x)和
h
j
(
x
)
h_{j}(x)
hj(x)分别是不等式和等式约束,
q
q
q为约束总数。其中,
m
m
m是目标函数数量,
x
x
x是
n
n
n维决策向量,
R
\mathbb{R}
R是搜索空间,
g
i
(
x
)
g_{i}(x)
gi(x)和
h
j
(
x
)
h_{j}(x)
hj(x)分别是不等式和等式约束,
q
q
q为约束总数。
解 x x x的约束违反度(CV)计算如下:
φ
j
(
x
)
=
{
max
(
0
,
g
j
(
x
)
)
,
j
=
1
,
⋯
,
p
max
(
0
,
∣
h
j
(
x
)
∣
−
σ
)
,
j
=
p
+
1
,
⋯
,
q
\varphi_{j}(x)= \begin{cases} \max(0, g_{j}(x)), & j = 1, \cdots, p \\ \max(0,|h_{j}(x)|-\sigma), & j = p + 1, \cdots, q \end{cases}
φj(x)={max(0,gj(x)),max(0,∣hj(x)∣−σ),j=1,⋯,pj=p+1,⋯,q
总体CV为
ϕ
(
x
)
=
∑
j
=
1
q
φ
j
(
x
)
\phi(x)=\sum_{j = 1}^{q} \varphi_{j}(x)
ϕ(x)=∑j=1qφj(x),当
ϕ
(
x
)
=
0
\phi(x)=0
ϕ(x)=0时,
x
x
x是可行解,否则为不可行解。
(二)多目标优化中的自适应算子选择
近年来,自适应算子选择在多目标优化进化算法设计中逐渐受到关注。例如,Wang等人提出多算子集成方法,依据算子有效性调整子种群大小;Tian等人采用DRL为MOEA/D构建自适应算子选择方法;Santiago等人利用模糊选择算子促进解的多样性和收敛性;Dong等人设计测试并应用结构自适应选择算子;Yuan等人研究不同变异算子在MOEA中的作用;McClymont和Keedwell提出马尔可夫链超启发式算法选择算子;Lin等人设计一对一集成机制衡量算子信用。
(三)深度强化学习及其在多目标优化中的应用
强化学习可在动态环境中学习最优策略,DRL则借助深度神经网络逼近行动价值函数。DQL训练Q网络估计行动预期奖励,有两种工作原理:I型输入状态和行动输出Q值;II型仅输入状态输出所有行动Q值。
DRL在多目标优化领域应用广泛,包括解决实际MOPs,如可再生能源调配、虚拟机放置、服务协调等问题;以及提升MOEAs性能,如自适应选择进化算子、直接生成帕累托最优解、缩短训练时间等。
(四)研究动机
根据无免费午餐定理,固定算子无法适用于所有问题,自适应算子选择对进化计算至关重要。但目前针对CMOEAs的自适应算子选择研究较少,而CMOPs具有独特挑战,因此开展相关研究很有必要。
在解决CMOP的进化过程中,环境动态变化,传统强化学习技术(如Q学习)难以处理连续状态空间,DRL技术则更适合。同时,DRL能综合考虑历史和未来性能,在CMOEAs进化过程中更具优势。不过,应用DRL到CMOPs时,需解决约束处理和算子有效性评估等问题。
三、提出的方法
(一)提出的深度强化学习模型
在本文的模型里,行动集合 A = { o p 1 , o p 2 , ⋯ , o p i , ⋯ , o p k } \mathcal{A}=\{op_{1}, op_{2}, \cdots, op_{i}, \cdots, op_{k}\} A={op1,op2,⋯,opi,⋯,opk},其中 o p i op_{i} opi代表不同进化算子(如GA、DE等), k k k是候选算子数量,模型可容纳任意数量的候选算子。
种群状态由收敛性( c o n con con)、多样性( d i v div div)和可行性( f e a fea fea)三个指标定义:
c
o
n
=
∑
x
∈
P
∑
j
=
1
m
f
j
(
x
)
N
con=\frac{\sum_{x \in \mathcal{P}} \sum_{j = 1}^{m} f_{j}(x)}{N}
con=N∑x∈P∑j=1mfj(x)
f
e
a
=
∑
x
∈
P
ϕ
(
x
)
N
fea =\frac{\sum_{x \in \mathcal{P}} \phi(x)}{N}
fea=N∑x∈Pϕ(x)
d
i
v
=
1
∑
j
=
1
m
(
f
j
m
a
x
−
f
j
m
i
n
)
div=\frac{1}{\sum_{j = 1}^{m}(f_{j}^{max }-f_{j}^{min })}
div=∑j=1m(fjmax−fjmin)1
状态集为
S
=
{
s
∣
s
=
(
c
o
n
,
f
e
a
,
d
i
v
)
}
\mathcal{S}=\{s | s=( con, fea, div)\}
S={s∣s=(con,fea,div)}
奖励
r
r
r通过当前状态与下一代状态的差异计算:
r
=
(
c
o
n
+
f
e
a
+
d
i
v
)
−
(
c
o
n
′
+
f
e
a
′
+
d
i
v
′
)
r=( con + fea + div)-(con'+fea'+div')
r=(con+fea+div)−(con′+fea′+div′)
一条记录 t = ( s , o p , r , s ′ ) t=(s, op, r, s') t=(s,op,r,s′),经验回放(EP)由多条记录组成 E P = { t 1 , t 2 , ⋯ , t m s e p } \mathcal{E P}=\{t_{1}, t_{2}, \cdots, t_{m s_{e p}}\} EP={t1,t2,⋯,tmsep}
基于上述定义,构建的DQL模型包含四个过程:进化过程中,CMOEA用选定算子生成后代并确定存活个体;交互过程里,智能体与环境交换信息;学习过程时,智能体根据反馈学习改进策略;决策过程中,智能体利用训练好的DQN选择Q值最大的行动。
(二)提出的深度Q学习辅助框架
基于DQL模型构建的辅助框架,在CMOEA的初始化、交配和选择步骤基础上,增加了算子选择和网络更新过程。
算子选择过程中,若EP大小未达到要求,随机选择算子;达到要求且DQN未构建时,构建DQN;DQN构建好后,根据种群状态自适应选择算子。
网络更新过程在每次迭代时检测种群状态、计算记录并更新EP,每50次迭代更新DQN。整个框架流程通过算法1详细描述,确保了框架的有序运行。
Algorithm 1 The DQL-Assisted Framework for CMOEAs
Require: N (population size), Gmax (termination condition), i (number of operators), msep (maximum size of EP), rsep (required size of EP)
Output: P (the output solution set of the CMOEA)
1: Initialization of the CMOEA;
2: Determine the state of the population;
3: initialize the EP;
4: g ← 0;
5: while g < Gmax do
6: if |EP| < rsep then
7: i ← randomly select an operator;
8: O ← generate offspring set by the CMOEA using the i-th operator;
9: P ← select the population for the next generation by the CMOEA;
10: t ← determine the reward and new state, and form a new record;
11: EP ← update the EP with t;
12: else
13: if network is not built then
14: Q ← build the DQN using EP by Algorithm 2;
15: else
16: i ← adaptively select an operator according to the state of the population and Q using Algorithm 3;
17: O ← generate offspring set by the CMOEA using the i-th operator;
18: P ← select the population for the next generation by the CMOEA;
19: t ← determine the reward and new state, and form a new record;
20: EP ← update the EP with t;
21: end if
22: end if
23: g ← g + 1;
24: if g % 50 = 0 then
25: Q ← update the DQN using EP by Algorithm 2;
26: end if
27: end while
28: return P
(三)训练/更新深度Q网络
采用简单的反向传播神经网络作为DQN,其详细参数设置如表1所示:
参数 | 值 |
---|---|
隐藏层数 | 2 |
隐藏层神经元数 | 40 |
输入层节点数 | 4 |
输出层节点数 | 1 |
批量大小 | T |
最大迭代次数 | 80000 |
学习率衰减 | 1.00×10⁻⁴ |
学习率 | 0.01 |
输入到隐藏层偏差 | 0.1 |
隐藏层到输出层偏差 | 0 |
激活函数 | ReLU |
训练或更新DQN时,从EP中采样数据,对数据进行归一化处理后,以特定损失函数训练DQN,具体过程由算法2描述。
Algorithm 2 Train/Update Network
Require: EP (experience replay), str (required size of training data)
Output: Q (DQN)
1: randomly sample str records from EP as the training data T;
2: st ← {t1,t2,t3}, t ∈ T;
3: at ← t4, t ∈ T;
4: rt ← t5, t ∈ T;
5: st+1 ← {t6,t7,t8}, t ∈ T;
6: Normalize all items of T;
7: train the DQN using (4) as loss function;
8: return Q
(四)提出的算子选择方法
OS方法通过生成随机数
k
k
k,与贪心概率
ϵ
\epsilon
ϵ比较来选择算子。
k
≤
ϵ
k \leq \epsilon
k≤ϵ时,用DQN选择奖励最大的算子;
k
>
ϵ
k \gt \epsilon
k>ϵ时,随机选择算子。本文选择GA和DE算子实例化框架,因为它们是常用算子,且GA收敛性强,DE探索能力好。
Algorithm 3 Select Operator
Require: A (operator set), Q (DQN), ε (possibility of greedy), s (current population state)
Output: a (the selected operator)
1: generate a random number k in [0,1];
2: if k ≤ ε then
3: s ← normalize all items of the state data s;
4: i = argmaxa∈A Q(s,a);
5: else
6: i ← generate a random number in {1,2,...,k};
7: end if
8: return the i-th operator a in A
(五)计算复杂度
方法的计算复杂度由所选CMOEA、DQN训练和种群状态计算三部分决定。整体计算复杂度主要取决于所选CMOEA。
(六)备注
与现有自适应算子选择方法相比,本文方法适用于CMOPs,且基于DQL能评估未来种群改进;与Tian等人的DQL辅助算子选择方法不同,本文处理CMOPs,模型设计有差异,且框架可嵌入任意CMOEAs;与现有DRL在解决MOPs中的应用相比,本文提出通用框架,可处理离散或连续决策变量的CMOPs。
四、实验研究
(一)实验设置
- 基准问题:选用CF、DAS-CMOP、DOC和LIR-CMOP四个具有挑战性的基准测试套件,各套件存在不同困难和挑战。
- 对比算法:将本文框架嵌入CCMO、MOEA/D-DAE、EMCMO和PPS四个CMOEAs,并与九个先进的CMOEAs对比。
- 参数设置和遗传算子:明确GA和DE算子的参数设置,以及其他相关进化设置和参数,对比方法采用原始文献默认设置。
- 性能指标:采用IGD+和HV作为性能评估指标,确保评估的合理性和公平性。
- 统计分析:每个算法在每个测试实例上独立运行30次,记录均值和标准差,用Wilcoxon秩和检验进行统计分析。
(二)深度Q学习辅助算子选择的有效性
对比使用DQL辅助算子选择的CMOEAs、原始CMOEAs(固定算子)和随机算子选择的CMOEAs,结果表明:在多数情况下,DQL辅助算子选择方法能提升CMOEAs性能。如在CFs、DAS-CMOPs、DOCs和LIR-CMOPs测试中,该方法表现出色。Friedman检验进一步证实其优于固定和随机算子选择。
(三)对比研究
将DRLOS-EMCMO算法与九个先进CMOEAs对比,发现DRLOS-EMCMO在多数问题上表现优异,但在某些依赖特定算子或需要特殊约束处理技术的问题上表现欠佳。不过总体上,它能更好地逼近CPF,收敛速度更快,通用性更强。
(四)参数分析
研究EP所需大小、批量大小、贪心阈值以及DQN中重要参数对性能的影响,结果显示这些参数对性能影响较小,表明方法和DQN对参数不敏感,当前参数设置具有适用性。
(五)使用指标评估种群状态的消融研究
采用HV和Spacing指标评估种群状态,与原简单评估方法对比。结果表明,不同算法和问题对评估方法有不同偏好,简单评估方法在部分问题上通用性更好。
五、结论与未来工作
本文提出的DQL辅助在线算子选择方法,有效提升了CMOEAs的性能,且通用性良好。不过,当CMOP偏好特定算子时,该方法性能有待提高,后续可从提高学习效率、增加函数评估次数等方面改进。
未来可尝试嵌入其他算子扩展框架,应用先进神经网络提升性能,以及研究超参数自适应优化,为约束多目标优化领域的发展提供更多可能。