1.鲸鱼优化算法WOA原理
SCI二区|鲸鱼优化算法(WOA)原理及实现【附完整Matlab代码】
WOA模拟了座头鲸的社会行为,主要包括包围猎物、随机搜索、螺旋捕猎阶段。
包围猎物
鲸鱼优化算法假设当前种群中最优解为猎物位置或已接近目标猎物的位置,种群中其他鲸鱼个体根据当前最优解更新自身位置:
X
(
i
+
1
)
=
X
b
e
s
t
(
i
)
−
A
⋅
D
(1)
X\left(i+1\right)=X_{best}\left(i\right)-A\cdot D\tag{1}
X(i+1)=Xbest(i)−A⋅D(1)
D为当前鲸鱼与最优解之间的距离:
D
=
∣
C
⋅
X
b
e
s
t
(
i
)
−
X
(
i
)
∣
(2)
D=\begin{vmatrix}C\cdot X_{best}\begin{pmatrix}i\end{pmatrix}-X\begin{pmatrix}i\end{pmatrix}\end{vmatrix}\tag{2}
D=
C⋅Xbest(i)−X(i)
(2)
A和C为搜索控制系数:
A
=
a
(
2
k
−
1
)
C
=
2
k
(3)
\begin{aligned}&A=a\bigl(2k-1\bigr)\\&C=2k \end{aligned}\tag{3}
A=a(2k−1)C=2k(3)
收敛因子:
a
=
2
−
2
i
/
i
max
(4)
a=2-2i / i_{\max}\tag{4}
a=2−2i/imax(4)
随机搜索
鲸鱼种群根据自己当前的位置、全局最优解和一定的随机性来更新自己的位置,使得鲸鱼能够在搜索空间中以一定的概率跳出局部最优解,从而提高搜索到全局最优解的可能性:
X
(
i
+
1
)
=
X
r
a
n
d
(
i
)
−
A
⋅
D
(5)
X\left(i+1\right)=X_{rand}\left(i\right)-A\cdot D\tag{5}
X(i+1)=Xrand(i)−A⋅D(5)
Xrand 为当前进行随机搜索的鲸鱼位置,D表述为:
D
=
∣
C
⋅
X
r
a
n
d
(
i
)
−
X
(
i
)
∣
(6)
D=\left|C\cdot X_{rand}\left(i\right)-X\left(i\right)\right|\tag{6}
D=∣C⋅Xrand(i)−X(i)∣(6)
螺旋捕猎
当鲸鱼靠近全局最优解时,它们会以螺旋的方式在局部范围内进行搜索。螺旋行为的策略是在当前位置和全局最优解的位置之间生成一个螺旋路径,然后鲸鱼沿着这个路径进行移动:
X
(
i
+
1
)
=
D
⋅
e
b
l
⋅
cos
(
2
π
l
)
+
X
b
e
s
t
(
i
)
(7)
X\left(i+1\right)=D\cdot e^{bl}\cdot\cos\left(2\pi l\right)+X_{best}\left(i\right)\tag{7}
X(i+1)=D⋅ebl⋅cos(2πl)+Xbest(i)(7)
其中,b 为定义螺旋捕猎的常量系数,l为在[-1,1]随机数,D更新为:
D
=
∣
X
b
e
s
t
(
i
)
−
X
(
i
)
∣
(8)
D=\begin{vmatrix}X_{best}\begin{pmatrix}i\end{pmatrix}-X\begin{pmatrix}i\end{pmatrix}\end{vmatrix}\tag{8}
D=
Xbest(i)−X(i)
(8)
2.Q-learning算法原理
【智能算法应用】基于Q-learning求解机器人路径规划问题
Q-learning算法是一种基于强化学习的动态规划方法,用于求解马尔可夫决
策过程中的最优策略。基本思想是智能体在环境中以试错的方式学习,尝试通过采取不同的行动来最大化长期回报。Q-learning 算法使用 Q 值来表示在某个状态下采取某个动作所能获得的长期回报,通过不断地更新 Q 值,找到最优的Q 值和策略。
算法流程
1.初始化状态 s,并且将 Q-table 设置为空;
2.将已知状态下的 Q 值记录在 Q-table 中,Q-table 中查询当前状态 s 对应
的 Q 值。若在表格中找不到该状态 s,则在表中添加一条新数据;若查询到状态 s 对应的 Q 值,就以指定的策略选择动作;
3.执行步骤 2 选取的动作 a,得到环境给予的即时反馈 r,并进入下一个
状态s’;
4.更新Q值:
Q
(
s
,
a
)
=
Q
(
s
,
a
)
+
α
[
r
+
γ
max
a
′
Q
(
s
′
,
a
′
)
−
Q
(
s
,
a
)
]
Q(s,a)=Q(s,a)+\alpha[r+\gamma\max_{a^{\prime}}Q(s^{\prime},a^{\prime})-Q(s,a)]
Q(s,a)=Q(s,a)+α[r+γa′maxQ(s′,a′)−Q(s,a)]
5.如果达到最大迭代次数亦或找到目标点,则算法流程结束,如果两者
都没有满足,则回到步骤 3。
其中,Q(s,a)是在状态 s 下采取动作 a 的 Q 值; α \alpha α为学习率,控制新旧经验之间的权重。
3.多任务点路径规划模型
基于融合Q-learning-鲸鱼优化算法生成所有目标点之间的距离矩阵U:
U
=
[
d
1
−
1
d
1
−
2
d
1
−
3
⋯
d
1
−
i
d
2
−
1
d
2
−
2
d
2
−
3
⋯
d
2
−
i
d
3
−
1
d
3
−
2
d
3
−
3
⋯
d
3
−
i
⋮
⋮
⋮
⋱
⋮
d
j
−
1
d
j
−
2
d
j
−
3
⋯
d
j
−
i
]
U=\begin{bmatrix}d_{1-1}&d_{1-2}&d_{1-3}&\cdots&d_{1-i}\\d_{2-1}&d_{2-2}&d_{2-3}&\cdots&d_{2-i}\\d_{3-1}&d_{3-2}&d_{3-3}&\cdots&d_{3-i}\\\vdots&\vdots&\vdots&\ddots&\vdots\\d_{j-1}&d_{j-2}&d_{j-3}&\cdots&d_{j-i}\end{bmatrix}
U=
d1−1d2−1d3−1⋮dj−1d1−2d2−2d3−2⋮dj−2d1−3d2−3d3−3⋮dj−3⋯⋯⋯⋱⋯d1−id2−id3−i⋮dj−i
其中,
d
i
j
d_{ij}
dij为第i个目标点到第j个目标点 Q-learning算法所规划路径的实际距离。
多目标点路径规划问题可表述为:清洁机器人需要遍历n个目标点,且每个目标仅被遍历一次,目的是求一条经过所有目标点的最短路径。
V
=
∑
i
=
1
,
i
=
1
n
x
(
l
i
,
l
j
)
V=\sum_{i=1, i=1}^nx\Big(l_i,l_j\Big)
V=i=1,i=1∑nx(li,lj)
4.结果展示