1.简介
SCE-UA 算法(Shuffled Complex Evolution-University of Arizona,重组复合形演化算法)是一种基于种群进化思想的算法。该方法基于四个概
念的综合:1、确定性和概率性方法的组合;2、朝着全局优化的方向,跨越参数空间的“复合形”点的系统演化;3、竞争演化;4、复合形重组。
SCE-UA融合了单纯形法、随机搜索和生物竞争进化等方法,能够有效解决全局优化问题。
2.算法步骤
a.初始化 SCE-UA 的相关参数
假定待优化问题是一个n维问题,需要设置参与进化的复合形(Complex)个数 p ( p ≥ 1 ) p(p\geq1) p(p≥1),每个复合形所包含的顶点数目 m ( m ≥ n + 1 ) \begin{aligned}m(m\geq n+1)\end{aligned} m(m≥n+1),计算样本点数目s为所有复合形包含的顶点数之和 s = p × m s=p\times m s=p×m。
b.生成样本点
在可行参数空间内随机采样获得s个样本点
x
i
x_{i}
xi并计算函数值
f
i
=
f
(
x
i
)
f_i=f(x_i)
fi=f(xi),当没有全局最优解先验信息下,使用均匀概率分布生成样本。
c.样本点排序
对s个样本点
(
x
i
,
f
i
)
(x_{i},f_{i})
(xi,fi)按函数值递增的顺序排列,记为
D
=
{
(
x
i
,
f
i
)
,
i
=
1
,
2
,
…
,
s
}
D=\{(x_{i},f_{i}), i=1,2,\ldots,s\}
D={(xi,fi),i=1,2,…,s}。
d.划分复合形
将取样获得的s个样本点划分为p个复合形
A
1
,
…
,
A
p
A_{1},\ldots,A_{p}
A1,…,Ap:
A
k
=
{
(
x
j
k
,
f
j
k
)
∣
x
j
k
=
x
k
+
p
(
k
−
1
)
,
f
j
k
=
f
k
+
p
(
k
−
1
)
,
j
=
1
,
2
,
…
,
m
}
,
k
=
1
,
2
,
…
,
p
A^{k}=\left\{\left(x_{j}^{k},f_{j}^{k}\right)\Big|x_{j}^{k}=x_{k+p(k-1)},f_{j}^{k}=f_{k+p(k-1)},j=1,2,\ldots,m\right\},k=1,2,\ldots,p
Ak={(xjk,fjk)
xjk=xk+p(k−1),fjk=fk+p(k−1),j=1,2,…,m},k=1,2,…,p
e.进化每个复合形
根据竞争复合形进化(CCE)算法,对每个复合体执行进化。
f.复合形混合
进化后的所有复合形的顶点组合成新的样本群,按函数值进行排序。
g.检查复合形的减少数量
如果群体中所需的最小复合形数量 p m i n < p p_{min}<p pmin<p,移除具有最低排名点的复合形(或随机移除复合形)。
3.结果展示
CEC2005
4.参考文献
[1] Duan Q, Sorooshian S, Gupta V. Effective and efficient global optimization for conceptual rainfall‐runoff models[J]. Water resources research, 1992, 28(4): 1015-1031.
[2] 李磊.白河上游流域洪水模拟及其模型参数优化研究[D].华北水利水电大学,2021.
[3] 宋星原,舒全英,王海波,等.SCE-UA、遗传算法和单纯形优化算法的应用[J].武汉大学学报(工学版),2009,42(01):6-9+15.