✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,
代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
混合进化方法结合了从不同进化计算技术中提取的方法来构建单一优化方法。此类系统的设计代表了进化优化文献中的当前趋势。在混合算法中,目标是扩展集成方法的潜在优势并消除其主要缺点。在此实现中,提出了一种解决优化问题的混合方法。所提出的方法结合了(A)侵入性杂草优化方法的探索性特征,(B)估计分布算法的概率模型和(C)混合高斯-柯西分布的分散能力,以产生自己的搜索策略。有了这些机制,该方法根据概率模型和现有解的适应度值对值得特别关注的搜索区域进行优化策略。在所提出的方法中,种群中的每个个体在其自身位置周围生成新元素,并根据混合分布进行分散。新元素的数量取决于个体相对于整个种群的相对适应度值。在此过程之后,由(a)新元素和(b)原始个体从集合化合物中选择一组有前途的解决方案。根据选定的解决方案,建立一个概率模型,从中抽取一定数量的成员 (c)。然后,集合(a)、(b)和(c)中的所有个体被加入到一个组中,并根据它们的适应度值进行排名。最后,选择群体中最好的元素来替代原来的群体。重复该过程直到达到终止标准。为了测试我们方法的性能,我们与其他著名的元启发式方法进行了一些比较。比较包括分析统计框架内不同标准基准函数的优化结果。基于比较的结论展示了所提出方法的准确性、效率和稳健性。比较包括分析统计框架内不同标准基准函数的优化结果。基于比较的结论展示了所提出方法的准确性、效率和稳健性。比较包括分析统计框架内不同标准基准函数的优化结果。基于比较的结论展示了所提出方法的准确性、效率和稳健性。
📣 部分代码
function [BestFitt, BestCosts,BestSolu,GY] =IWO(CostFunction,nPop,nVar,MaxIt,VarMin,VarMax)%VarSize = [1 nVar]; % Decision Variables Matrix SizeVarSize = [1 nVar]; % Decision Variables Matrix Size%% IWO ParametersnPop0 = 10; % Initial Population SizeSmin = 0; % Minimum Number of SeedsSmax = 5; % Maximum Number of SeedsExponent = 2; % Variance Reduction Exponentsigma_initial = 0.5; % Initial Value of Standard Deviationsigma_final = 0.001; % Final Value of Standard Deviation%% Initialization% Empty Plant Structureempty_plant.Position = [];empty_plant.Cost = [];pop = repmat(empty_plant, nPop0, 1); % Initial Population Arrayfor i = 1:numel(pop)% Initialize Positionpop(i).Position = unifrnd(VarMin, VarMax, VarSize);% Evaluationpop(i).Cost = CostFunction(pop(i).Position);end% Initialize Best Cost HistoryBestCosts = zeros(MaxIt, 1);%---------------------------GY=ones(1,(nPop*MaxIt)+1);GY(1)=pop(1).Cost; %reference to comparefcl=1;%------------%% IWO Main Loopfor it = 1:MaxIt% Update Standard Deviationsigma = ((MaxIt - it)/(MaxIt - 1))^Exponent * (sigma_initial - sigma_final) + sigma_final;% Get Best and Worst Cost ValuesCosts = [pop.Cost];BestCost = min(Costs);WorstCost = max(Costs);% Initialize Offsprings Populationnewpop = [];% Reproductionfor i = 1:numel(pop)ratio = (pop(i).Cost - WorstCost)/(BestCost - WorstCost);S = floor(Smin + (Smax - Smin)*ratio);for j = 1:S% Initialize Offspringnewsol = empty_plant;% Generate Random Locationnewsol.Position = pop(i).Position + sigma * randn(VarSize);% Apply Lower/Upper Boundsnewsol.Position = max(newsol.Position, VarMin);newsol.Position = min(newsol.Position, VarMax);% Evaluate Offsringnewsol.Cost = CostFunction(newsol.Position);if newsol.Cost < GY(fcl)GY(fcl+1)=newsol.Cost;%if beter updateelseif fcl>=1GY(fcl+1)=GY(fcl);%otherwise last betterendendfcl=fcl+1;%CallFnctio counter% Add Offpsring to the Populationnewpop = [newpopnewsol]; %#okendend% Merge Populationspop = [popnewpop];% Sort Population[~, SortOrder]=sort([pop.Cost]);pop = pop(SortOrder);% Competitive Exclusion (Delete Extra Members)if numel(pop)>nPoppop = pop(1:nPop);end% Store Best Solution Ever FoundBestSol = pop(1);% Store Best Cost HistoryBestCosts(it) = BestSol.Cost;% Display Iteration Informationdisp(['Iteration ' num2str(it) ': Best Cost = ' num2str(BestCosts(it))]);endBestSolu=BestSol.Position;BestFitt=BestCosts(it);%% Resultsend
⛳️ 运行结果



🔗 参考文献
Cuevas, E., Rodríguez, A., Valdivia, A. et al. A hybrid evolutionary approach based on the invasive weed optimization and estimation distribution algorithms. Soft Computing (2019), In press.
https://link.springer.com/article/10.1007/s00500-019-03902-x
本文介绍了一种结合侵入性杂草优化、估计分布算法和混合高斯-柯西分布的混合进化方法,用于解决优化问题。该方法通过概率模型和适应度值指导搜索策略,经过与多种经典元启发式方法的比较,证明了其在精度、效率和稳健性方面的优点。
652

被折叠的 条评论
为什么被折叠?



