【图像分割】基于混洗Shuffled Complex Evolution实现图像分割附matlab代码

本文探讨了全局优化问题的五个关键特征,并提出了一种名为Shuffled Complex Evolution (SCE)的优化策略。SCE结合了概率和确定性方法、聚类、复杂点的系统演变以及竞争进化思想。通过对比实验,展示了SCE方法在解决八个不同难度测试问题上的性能,优于Price的CRS2和Nelder-Mead的多启动算法。同时,提供了SCE算法的Matlab实现代码,用于图像阈值优化问题。

1 内容介绍

解决全局优化问题的难度一般取决于问题的维数和目标函数的某些特征。本文讨论了其中五个特征,并提出了一种称为 shuffled complex evolution (SCE) 方法的函数优化策略,该方法有望为广泛的问题提供稳健、有效和高效的方法。SCE 方法基于对已证明对全局优化成功的四个概念的综合: (a) 概率和确定性方法的组合;(b) 聚类;(c) 跨越空间的复杂点的系统演变,朝着全球改进的方向发展;(d) 竞争演变。提出了两种基于 SCE 方法的算法。这些算法通过对八个不同难度的测试问题运行 100 次随机启动的试验来进行测试。这两种算法的性能与 Price (1983, 1987) 提出的受控随机搜索 CRS2 方法以及 Nelder 和 Mead (1965) 提出的基于单纯形法的多启动算法的性能进行了比较。

2 部分代码

function [BestCost,x,f] = ShuffledComplexEvolution(img_gray, NS, itr, popl)

CostFunction=@(x,img_gray) imagethresh(x,img_gray);    % Cost Function

nVar=NS;            % Number of Decision Variables

VarSize = [1 nVar];       % Decision Variables Matrix Size

VarMin = 0;             % Decision Variables Lower Bound

VarMax = 254;             % Decision Variables Upper Bound

%% SCE-UA Parameters

MaxIt = itr;        % Maximum Number of Iterations

nPopComplex = popl;                       % Complex Size

nPopComplex = max(nPopComplex, nVar+1); % Nelder-Mead Standard

nComplex = 5;                   % Number of Complexes

nPop = nComplex*nPopComplex;    % Population Size

I = reshape(1:nPop, nComplex, []);

% CCE Parameters

cce_params.q = max(round(0.5*nPopComplex), 2);   % Number of Parents

cce_params.alpha = 3;   % Number of Offsprings

cce_params.beta = 5;    % Maximum Number of Iterations

cce_params.CostFunction = CostFunction;

cce_params.VarMin = VarMin;

cce_params.VarMax = VarMax;

empty_individual.Position = [];

empty_individual.Cost = [];

pop = repmat(empty_individual, nPop, 1);

% Initialize Population Members

for i = 1:nPop

pop(i).Position = unifrnd(VarMin, VarMax, VarSize);

pop(i).Cost = CostFunction(pop(i).Position,img_gray);

end

% Sort 

pop = SortPopulation(pop);

% Update

BestSol = pop(1);

BestCost = nan(MaxIt, 1);

%% Body

for it = 1:MaxIt

Complex = cell(nComplex, 1);

% Form Complexes and Run CCE

for j = 1:nComplex

% Complex Formation

Complex{j} = pop(I(j, :));

Complex{j} = CCE(Complex{j}, cce_params, img_gray);

% Insert Updated Complex into Population

pop(I(j, :)) = Complex{j};

end

% Sort 

pop = SortPopulation(pop);

% Update 

BestSol = pop(1);

% Store 

 BestCost(it) = BestSol.Cost;

end

f= BestCost(end);

x= BestSol.Position;

end

3 运行结果

4 参考文献

[1] Majeed K ,  Qyyum M A ,  Nawaz A , et al. Shuffled Complex Evolution-Based Performance Enhancement and Analysis of Cascade Liquefaction Process for Large-Scale LNG Production[J]. Energies, 2020, 13(10):2511.

博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

 

SCE-UA算法是Qingyun Duan(段青云)、Soroosh Sorooshian 和Vijai Gupta等开发的一个具有复合优化策略的优化算法(Duan等,1992)。具体原理可以参考文献。笔者用C++实现了SCE-UA算法,并用常见的测试函数进行了测试! 可以访问本人的两篇博客,内有详细介绍: 【算法】02 SCE-UA简介及源代码 https://blog.youkuaiyun.com/weixin_43012724/article/details/121401083 【算法】03 SCE-UA算法C++实现 https://blog.youkuaiyun.com/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)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值