智能优化算法:基于驾驶训练的优化算法-附代码

智能优化算法:基于驾驶训练的优化算法


摘要:基于驾驶训练的优化算法(Driving Training-Based Optimization (DTBO)),是于2022年提出的一种基于驾驶训练行为的优化算法,该算法通过模拟学习驾驶行为来进行寻优,具有寻优能力强,收敛速度快等特点

1. 基于驾驶训练优化算法

1.1 初始化

与其他优化算法类似,在寻优空间里随机初始化种群:
x i , j = l b j + r ⋅ ( u b j − l b j ) , (2) x_{i, j}=l b_j+r \cdot\left(u b_j-l b_j\right), \tag{2} xi,j=lbj+r(ubjlbj),(2)
其中 x i , j x_{i,j} xi,j为个体, l b j lb_j lbj为寻优下边界, u b j ub_j ubj为寻优上边界, r r r为[0,1]之间的随机数。

1.2 阶段一:驾驶教练培训(探索阶段)

DTBO更新的第一阶段是基于学习驾驶员对驾驶教练的选择,然后是所选教练对学习驾驶员的驾驶训练。在DTBO人群中,一部分最优秀的成员被视为驾驶教练,其余成员则被视为学习驾驶。选择驾驶教练并学习该教练的技能将导致人群成员在搜索空间中的不同区域移动。这将提高DTBO在全球搜索和发现最佳区域方面的勘探能力。因此,DTBO更新的这一阶段证明了该算法的探索能力。在每次迭代中,基于目标函数值的比较,选择DTBO的N个成员作为驾驶教练,如等式所示。(4)。
D I = [ D I 1 ⋮ D I i ⋮ D I N D I ] N D I × m = [ D I 11 ⋯ D I 1 j ⋯ D I 1 m ⋮ ⋱ ⋮ ⋱ ⋮ D I i 1 ⋯ D I i j ⋯ D I i m ⋮ ⋱ ⋮ ⋱ ⋮ D I N D I 1 ⋯ D I N D I j ⋯ D I N D I m ] N D I × m , (4) D I=\left[\begin{array}{c} D I_1 \\ \vdots \\ D I_i \\ \vdots \\ D I_{N_{D I}} \end{array}\right]_{N_{D I} \times m}=\left[\begin{array}{ccccc} D I_{11} & \cdots & D I_{1 j} & \cdots & D I_{1 m} \\ \vdots & \ddots & \vdots & \ddots & \vdots \\ D I_{i 1} & \cdots & D I_{i j} & \cdots & D I_{i m} \\ \vdots & \ddots & \vdots & \ddots & \vdots \\ D I_{N_{D I} 1} & \cdots & D I_{N_{D I j}} & \cdots & D I_{N_{D I} m} \end{array}\right]_{N_{D I} \times m},\tag{4} DI= DI1DIiDINDI NDI×m= DI11DIi1DINDI1DI1jDIijDINDIjDI1mDIimDINDIm NDI×m,(4)
其中 D I DI DI是教练集合, N D I N_{DI} NDI是教练的数量,其中 N D I = f l o o r ( 0.1 ∗ N ∗ ( 1 − t / T ) ) N_{DI}=floor(0.1*N*(1-t/T)) NDI=floor(0.1N(1t/T)) t t t是当前迭代次数, T T T是最大迭代次数。

该DTBO阶段的数学建模是这样的,即,首先,使用等式(5)计算每个成员的新位置。然后,根据等式(6),如果该新位置更优,则该新位置将取代先前位置
x i , j P 1 = { x i , j + r ⋅ ( D I k i , j − I ⋅ x i , j ) , F D I k i < F i ; x i , j + r ⋅ ( x i , j − D I k i , j ) ,  otherwise  , (5) x_{i, j}^{P_1}= \begin{cases}x_{i, j}+r \cdot\left(D I_{k_i, j}-I \cdot x_{i, j}\right), & F_{D I_{k_i}}<F_i ; \\ x_{i, j}+r \cdot\left(x_{i, j}-D I_{k_{i, j}}\right), & \text { otherwise },\end{cases} \tag{5} xi,jP1={ xi,j+r(DIki,jIxi,j),xi,j+r(xi,jDIki,j),FDIki<Fi; otherwise ,(5)

X i = { X i P 1 , F i p 1 < F i X i ,  otherwise  (6) X_i= \begin{cases}X_i^{P_1}, & F_i^{p_1}<F_i \\ X_i, & \text { otherwise }\end{cases} \tag{6} Xi={ XiP1,Xi,Fip1<Fi otherwise (6)

1.3 阶段二:学员学习(探索阶段)

DTBO更新的第二阶段是基于学习型驾驶员模仿教练,也就是说,学习型驾驶员试图对教练的所有动作和技能进行建模。这个过程将DTBO成员移动到搜索空间中的不同位置,从而增加了DTBO的探索能力。为了在数学上模拟这一概念,根据等式(7),基于每个成员与教练的线性组合来生成新的位置。如果这个新位置更优,则它将根据等式(8)替换先前的位置。
x i , j P 2 = P ⋅ x i , j + ( 1 − P ) ⋅ D I k i , j , (7) x_{i, j}^{P 2}=P \cdot x_{i, j}+(1-P) \cdot D I_{k_{i, j}}, \tag{7} xi,jP2=Pxi,j+(1P)DIki,j,(7)

X i = { X i P 2 , F i p 2 < F i X i ,  otherwise  (8) X_i= \begin{cases}X_i^{P 2}, & F_i^{p 2}<F_i \\ X_i, & \text { otherwise }\end{cases} \tag{8} Xi={ XiP2,Xi,Fip2<Fi otherwise (8)

其中 P P P的计算如下:
P = 0.01 + 0.9 ( 1 − t T ) (9) P=0.01+0.9\left(1-\frac{t}{T}\right) \tag{9} P=0.01+0.9(1Tt)(9)

1.4 阶段三:个人练习(开发阶段)

DTBO更新的第三阶段基于每位学习驾驶者的个人实践,以提高驾驶技能。在这一阶段,每位学习型驾驶员都会努力接近自己的最佳技能。该阶段允许每个成员基于其当前位置的本地搜索来发现更好的位置。这个阶段展示了DTBO利用本地搜索的能力。对该DTBO阶段进行数学建模,使得首先根据等式(10)在每个种群成员附近生成随机位置。然后,根据等式(11),如果该位置更优,则该位置将取代先前的位置。
x i , j P 3 = x i , j + ( 1 − 2 r ) ⋅ R ⋅ ( 1 − t T ) ⋅ x i , j , (10) x_{i, j}^{P 3}=x_{i, j}+(1-2 r) \cdot R \cdot\left(1-\frac{t}{T}\right) \cdot x_{i, j}, \tag{10} xi,jP3=xi,j+(12r)R(1Tt)xi,j,(10)

X i = { X i P 3 , F i P 3 < F i X i ,  otherwise  (11) X_i= \begin{cases}X_i^{P 3}, & F_i^{P 3}<F_i \\ X_i, & \text { otherwise }\end{cases} \tag{11} Xi={ XiP3,Xi,FiP3<Fi otherwise (11)

其中R是一个等于0.05的常量,r为[0,1]之间的随机数。

流程图如下:

在这里插入图片描述

2.实验结果

在这里插入图片描述

3.参考文献

[1] Dehghani, M., Trojovská, E. & Trojovský, P. A new human-based metaheuristic algorithm for solving optimization problems on the base of simulation of driving training process. Sci Rep 12, 9924 (2022). https://doi.org/10.1038/s41598-022-14225-7

4.Matlab

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/130538785