全局优化算法SCE-UA:重组复合形演化算法


在这里插入图片描述

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(p1),每个复合形所包含的顶点数目 m ( m ≥ n + 1 ) \begin{aligned}m(m\geq n+1)\end{aligned} m(mn+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(k1),fjk=fk+p(k1),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.

5.代码获取

SCE-UA算法是Qingyun Duan(段青云)、Soroosh Sorooshian 和Vijai Gupta等开发的一个具有复合优化策略的优化算法(Duan等,1992)。具体原理可以参考文献。笔者用C++实现了SCE-UA算法,并用常见的测试函数进行了测试! 可以访问本人的两篇博客,内有详细介绍: 【算法】02 SCE-UA简介及源代码 https://blog.csdn.net/weixin_43012724/article/details/121401083 【算法】03 SCE-UA算法C++实现 https://blog.csdn.net/weixin_43012724/article/details/121862991 作者: 卢家波 邮箱:lujiabo@hhu.edu.cn 版本:2021.11 创建 V1.0 版权: MIT 引用格式:卢家波,SCEUA算法C++实现. 南京:河海大学,2021. LU Jiabo, Shuffled Complex Evolution in C++. Nanjing:Hohai University, 2021. 参考文献:[1]段青云,SCEUA的原始Fortran代码,1992, https://shxy.hhu.edu.cn/2019/0904/c12296a195177/page.htm [2]L. Shawn Matott改编的C++代码,2009, https://github.com/MESH-Model/MESH_Project_Baker_Creek/blob/7e0a7e588213916deb2b6c11589df0d132d9b310/Model/Ostrich/SCEUA.h [3]Van Hoey S改编的Python代码,2011 [4]Mostapha Kalami Heris, Shuffled Complex Evolution in MATLAB (URL: https://yarpiz.com/80/ypea110-shuffled-complex-evolution), Yarpiz, 2015. [5]Duan, Q.Y., Gupta, V.K. & Sorooshian, S. Shuffled complex evolution approach for effective and efficient global minimization. J Optim Theory Appl 76, 501–521 (1993). https://doi.org/10.1007/BF00939380. [6]Duan, Q., Sorooshian, S., and Gupta, V. (1992), Effective and efficient global optimization for conceptual rainfall-runoff models, Water Resour. Res., 28( 4), 1015– 1031, https://doi.org/10.1029/91WR02985. [7]Duan, Q., Sorooshian, S., & Gupta, V. K. (1994). Optimal use of the SCE-UA global optimization method for calibrating watershed models. Journal of Hydrology, 158(3-4), 265-284. https://doi.org/10.1016/0022-1694(94)90057-4. [8]王书功. 水文模型参数估计方法及参数估计不确定性研究[M]. 河南:黄河水利出版社,2010.(https://book.douban.com/subject/5377630/) [9]王书功. 水文模型参数估计方法及参数估计不确定性研究[D]. 北京:中国科学院研究生院,2006.(https://jz.docin.com/p-87849994.html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小O的算法实验室

谢谢大佬的肯定!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值