2024年5月20日发(作者:乐浩博)
贝叶斯阴阳协调算法
1.算法原理
该算法基于2个点集(P1 和P2),其中 P1设计为专注于开发变
量空间,P2设计为专注于探索变量空间,通过开发与探索2个矛盾
行为之间的相互协调、补充达到平衡,并利用分裂、存储2个阶段进
行迭代更新来求解最优化问题。
1.1设置待优化
设置待优化问题维度D DD ,随机初始化 2 个点集P 1 = { P 1
1 ,P12 , . . . ,P1D }P1={P1^1,P1^2,...,P1^D}P1={P11,P12,...,
和 P2={ P21 ,P22 , . . . ,P2D }P2={P2^1,P2^2,...,P2^D}P2
={P21,P22,...,P2D}。对点集 P1 和 P2 进行归一化处理,即 0 ≤
( P 1 j , P 2 j ) ≤ 1 0 ≤ (P1^j ,P2^j ) ≤10≤(P1j,P2j)≤1 ,
其中,j = 1 , 2 , 3 , … , D j = 1,2,3,…,Dj=1,2,3,…,
D 。
1.2 分裂阶段
a) 单向分裂:在 YYPO 算法中,点 P PP 的二维相同副本被存
储为 S SS,其可以被认为是尺寸为2 D × D 2D × D2D×D 的矩
阵。S SS 中每个点的一个变量用下面的公式修改:{ S j j = S j +
r δ
j=1 ,2 ,3 , . . . ,DSD+jj=Sj−rδ(1)Sjj=Sj+rδj=1,2,3,...,DS
jD+j=Sj−rδ(1)(1){Sjj=Sj+rδj=1,2,3,...,DSD+jj=Sj−rδSjj
=Sj+rδj=1,2,3,...,DSD+jj=Sj−rδ(1)式中 下标—点号;上标—正
被修改的决策变量号; r rr —在 0 和 1 之间的随机数,对于S SS
中任意点的每个变量产生新的r rr ,共 需2D ×D 个 0 和 1 之
间的随机数; δ deltaδ —搜索半径。
b) D 向分裂:在 YYPO 算法中,点 P PP 的2D相同副本被存
储为 S SS,其可以被认为是 2 D × D 2D × D2D×D 大小的矩
阵,生成包含长度为D DD的二维随机二进制矩阵B BB,使得每个二
进制串是唯一的。随后,使用以下等式来修改任意点的每个变量:{ S
k j = S j + r ( δ / 2 ) i f B k j = 1 j = 1 , 2 , 3 , . . . ,
D Skj=Sj−r( δ/2 ) else(2)Sjk=Sj+r(δ/2–
√)ifBjk=1j=1,2,3,...,DSjk=Sj−r(δ/2–
√)else(2)(2){Skj=Sj+r(δ/2)ifBkj=1j=1,2,3,...,DSkj=Sj−r(δ
/2)elseSkj=Sj+r(δ/2)ifBkj=1j=1,2,3,...,DSkj=Sj−r(δ/2)else
(2)式中 下标—点号(或行);上标—决策变量号(或列); r 、 δ r 、
δr、δ 意义同上;二进制矩阵 B BB 通过随机选择 0 ~ 2 D -
1 0 ~ 2 D -10~2D-1 之间的唯一整数并转换成长度为 D
DD 的二进制串来组成。
1.3 存储阶段
存储阶段是在满足所需数量的存储更新之后启动,且该存储阶段
包含 2 I 2 I2I 个点( I II 为存储阶段的更新次数大小),对
应于在分裂阶段前每个更新中添加的 2 个点 P 1 、 P 2 P1 、P2P1、
P2 。若存储中的最佳点比点 P 1 、 P 2 P1 、P2P1、P2更合适,
则与点 P 1 、 P 2 P1 、P2P1、P2 交换。存储阶段因此保持精英
主义并且确保算法的单调收敛(即在任何迭代中确定的最佳点不会丢
失)。在存储阶段结束时,存储矩阵设置为空,并且在其指定范
围 IminI_{min}Imin和 ImaxI_{max}Imax (I m i n I_{min}Imin
和 I m a x I_{max}Imax 分别为存储更新的最小数和最大数)
内随机生成存储更新 I II 的新值。搜索半径 δ 1 δ_1δ1
和 δ 2 δ_2δ2 的更新公式如下:{ δ 1 = δ 1 − ( δ
1/a )δ2=δ2+( δ2/a )(3){δ1=δ1−(δ1/a)δ2=δ2+(δ2/a)(3)
(3){δ1=δ1−(δ1/a)δ2=δ2+(δ2/a){δ1=δ1−(δ1/a)δ2=δ2
+(δ2/a)(3)式中 δ 1 、 δ 2 δ 1、δ2δ1、δ2 —点集 P 1 、
P 2 P1、P2P1、P2 的搜索半径; a aa —扩张/收缩因子。YYPO 算
法的特点在于随机生成的点集数量取决于问题维度,针对高维优化问
题将生成较多的点,这种自适应能力能有效解决不同维度问题并获得
待优化问题的最优解。
2.算法流程
step1 初始化YYPO相应参数
step2 初始化2个点集P1,P2;
step3 利用目标函数评估点集 P1、P2 的适应度值,若 P1 优于
P2,则 P1、P2 互换;存储 P1、P2,并令 i = i + 1 。
step4 分别执行 P1、P2 分裂和存储操作,并获得更新的 P1、
P2 以及对应的适应度值;若存储中的最佳点比点 P1、P2 更合适,则
与点 P1、P2 交换。
step5 更新点集 P1、P2 的搜索半径 δ 1 和 δ 2
step6 存储矩阵设置为空,并在其指定范围I min 和 I max 内
随机生成存储更新 I 的新值,存储阶段结束。
step7 断算法是否达到最大迭代次数 T ,若是,输出最佳点适
应度值及所处空间位置,即待优化问题最优解,算法结束;否则重复
Step3—7
2024年5月20日发(作者:乐浩博)
贝叶斯阴阳协调算法
1.算法原理
该算法基于2个点集(P1 和P2),其中 P1设计为专注于开发变
量空间,P2设计为专注于探索变量空间,通过开发与探索2个矛盾
行为之间的相互协调、补充达到平衡,并利用分裂、存储2个阶段进
行迭代更新来求解最优化问题。
1.1设置待优化
设置待优化问题维度D DD ,随机初始化 2 个点集P 1 = { P 1
1 ,P12 , . . . ,P1D }P1={P1^1,P1^2,...,P1^D}P1={P11,P12,...,
和 P2={ P21 ,P22 , . . . ,P2D }P2={P2^1,P2^2,...,P2^D}P2
={P21,P22,...,P2D}。对点集 P1 和 P2 进行归一化处理,即 0 ≤
( P 1 j , P 2 j ) ≤ 1 0 ≤ (P1^j ,P2^j ) ≤10≤(P1j,P2j)≤1 ,
其中,j = 1 , 2 , 3 , … , D j = 1,2,3,…,Dj=1,2,3,…,
D 。
1.2 分裂阶段
a) 单向分裂:在 YYPO 算法中,点 P PP 的二维相同副本被存
储为 S SS,其可以被认为是尺寸为2 D × D 2D × D2D×D 的矩
阵。S SS 中每个点的一个变量用下面的公式修改:{ S j j = S j +
r δ
j=1 ,2 ,3 , . . . ,DSD+jj=Sj−rδ(1)Sjj=Sj+rδj=1,2,3,...,DS
jD+j=Sj−rδ(1)(1){Sjj=Sj+rδj=1,2,3,...,DSD+jj=Sj−rδSjj
=Sj+rδj=1,2,3,...,DSD+jj=Sj−rδ(1)式中 下标—点号;上标—正
被修改的决策变量号; r rr —在 0 和 1 之间的随机数,对于S SS
中任意点的每个变量产生新的r rr ,共 需2D ×D 个 0 和 1 之
间的随机数; δ deltaδ —搜索半径。
b) D 向分裂:在 YYPO 算法中,点 P PP 的2D相同副本被存
储为 S SS,其可以被认为是 2 D × D 2D × D2D×D 大小的矩
阵,生成包含长度为D DD的二维随机二进制矩阵B BB,使得每个二
进制串是唯一的。随后,使用以下等式来修改任意点的每个变量:{ S
k j = S j + r ( δ / 2 ) i f B k j = 1 j = 1 , 2 , 3 , . . . ,
D Skj=Sj−r( δ/2 ) else(2)Sjk=Sj+r(δ/2–
√)ifBjk=1j=1,2,3,...,DSjk=Sj−r(δ/2–
√)else(2)(2){Skj=Sj+r(δ/2)ifBkj=1j=1,2,3,...,DSkj=Sj−r(δ
/2)elseSkj=Sj+r(δ/2)ifBkj=1j=1,2,3,...,DSkj=Sj−r(δ/2)else
(2)式中 下标—点号(或行);上标—决策变量号(或列); r 、 δ r 、
δr、δ 意义同上;二进制矩阵 B BB 通过随机选择 0 ~ 2 D -
1 0 ~ 2 D -10~2D-1 之间的唯一整数并转换成长度为 D
DD 的二进制串来组成。
1.3 存储阶段
存储阶段是在满足所需数量的存储更新之后启动,且该存储阶段
包含 2 I 2 I2I 个点( I II 为存储阶段的更新次数大小),对
应于在分裂阶段前每个更新中添加的 2 个点 P 1 、 P 2 P1 、P2P1、
P2 。若存储中的最佳点比点 P 1 、 P 2 P1 、P2P1、P2更合适,
则与点 P 1 、 P 2 P1 、P2P1、P2 交换。存储阶段因此保持精英
主义并且确保算法的单调收敛(即在任何迭代中确定的最佳点不会丢
失)。在存储阶段结束时,存储矩阵设置为空,并且在其指定范
围 IminI_{min}Imin和 ImaxI_{max}Imax (I m i n I_{min}Imin
和 I m a x I_{max}Imax 分别为存储更新的最小数和最大数)
内随机生成存储更新 I II 的新值。搜索半径 δ 1 δ_1δ1
和 δ 2 δ_2δ2 的更新公式如下:{ δ 1 = δ 1 − ( δ
1/a )δ2=δ2+( δ2/a )(3){δ1=δ1−(δ1/a)δ2=δ2+(δ2/a)(3)
(3){δ1=δ1−(δ1/a)δ2=δ2+(δ2/a){δ1=δ1−(δ1/a)δ2=δ2
+(δ2/a)(3)式中 δ 1 、 δ 2 δ 1、δ2δ1、δ2 —点集 P 1 、
P 2 P1、P2P1、P2 的搜索半径; a aa —扩张/收缩因子。YYPO 算
法的特点在于随机生成的点集数量取决于问题维度,针对高维优化问
题将生成较多的点,这种自适应能力能有效解决不同维度问题并获得
待优化问题的最优解。
2.算法流程
step1 初始化YYPO相应参数
step2 初始化2个点集P1,P2;
step3 利用目标函数评估点集 P1、P2 的适应度值,若 P1 优于
P2,则 P1、P2 互换;存储 P1、P2,并令 i = i + 1 。
step4 分别执行 P1、P2 分裂和存储操作,并获得更新的 P1、
P2 以及对应的适应度值;若存储中的最佳点比点 P1、P2 更合适,则
与点 P1、P2 交换。
step5 更新点集 P1、P2 的搜索半径 δ 1 和 δ 2
step6 存储矩阵设置为空,并在其指定范围I min 和 I max 内
随机生成存储更新 I 的新值,存储阶段结束。
step7 断算法是否达到最大迭代次数 T ,若是,输出最佳点适
应度值及所处空间位置,即待优化问题最优解,算法结束;否则重复
Step3—7