• 【图像分割】基于混洗Shuffled Complex Evolution实现图像分割附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代码问题可私信交流。

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

     

  • 相关阅读:
    ELK 企业级日志分析系统
    源码分析:tb-core 的作用
    国产麒麟v10系统下打包electron+vue程序,报错unknown output format set
    【机器学习-周志华】学习笔记-第十三章
    Coelho2021_GMGCv1 计算丰度的方法
    大唐杯在仿真时出现的问题,是里面的参数配置有问题吗,还是别的方面出现了问题,求指导
    笔试强训Day3
    21天打卡挑战 - 经典算法之折半查找
    Django实现音乐网站 ⒃
    若依前后端分离项目部署
  • 原文地址:https://blog.csdn.net/matlab_dingdang/article/details/126754463