【优化求解】基于缎蓝园丁鸟优化 (SBO)求解单目标问题matlab源码
1 简介
2 部分代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Satin Bowerbird Optimizer(SBO)
%%
clc;
clear;
close all;
tic
%% Problem Definition
Function_name='F1';
[lowerbound,upperbound,numbervar,costfcn]=cost_functions(Function_name);
% VarSize=[1 numbervar];
%% SBO Parameters
[MaxIt,nPop,alpha,pMutation,sigma]=SBO_parameters(lowerbound,upperbound);
%% Initialization
[pop,elite,BestCost]=Initialization(nPop,lowerbound,upperbound,numbervar,MaxIt,costfcn);
%% SBO Main Loop
for it=1:MaxIt
newpop=pop;
%Calculating the Fitness of each bower
F=zeros(nPop,1);
for i=1:nPop
if pop(i).Cost>=0
F(i)=1/(1+pop(i).Cost);
else
F(i)=1+abs(pop(i).Cost);
end
end
%Calculating the probability of each bower
P=F/sum(F);
%changes at any bower
for i=1:nPop
for k=1:numbervar
% Select target bower
j=RouletteWheelSelection(P);
% Calculating Step Size
lambda=alpha/(1+P(j));
newpop(i).Position(k)=pop(i).Position(k) ...
+lambda*(((pop(j).Position(k)+elite(k))/2)-pop(i).Position(k));
% Mutation
if rand<=pMutation
newpop(i).Position(k)=newpop(i).Position(k)+(sigma*randn);
end
end
% Evaluation
newpop(i).Cost=costfcn(newpop(i).Position);
end
pop=[pop
newpop
]; %#ok
% Sort Population
[~, SortOrder]=sort([pop.Cost]);
pop=pop(SortOrder);
pop=pop(1:nPop);
% Update Best Solution Ever Found
BestSol=pop(1);
elite=BestSol.Position;
% Store Best Cost Ever Found
BestCost(it)=BestSol.Cost;
% Show Iteration Information
disp(['SBO:: Iteration-> ' num2str(it) '<----->Best Cost = ' num2str(BestCost(it))]);
end
toc
%% Results
disp(['BestSol=' num2str(elite)]);
disp(['BestCost=' num2str(BestSol.Cost)]);
figure;
semilogy(BestCost,'LineWidth',2);
xlabel('Iteration');
ylabel('Best Cost');
img =gcf; %获取当前画图的句柄
print(img, '-dpng', '-r600', './img.png') %即可得到对应格式和期望dpi的图像
3 仿真结果
4 参考文献
[1]王依柔、张达敏、樊英. "非均匀变异的互利自适应缎蓝园丁鸟优化算法." 计算机工程与科学 v.42;No.312.12(2020):135-143.
部分理论引用网络文献,若有侵权联系博主删除。
5 MATLAB代码与数据下载地址
见博客主页
【优化求解】基于缎蓝园丁鸟优化 (SBO)求解单目标问题matlab源码相关推荐
- 基于缎蓝园丁鸟优化算法的无线传感器网络覆盖优化
文章目录 一.理论基础 1.节点覆盖模型 2.缎蓝园丁鸟优化算法 3.SBO算法伪代码 二.仿真实验与分析 三.参考文献 一.理论基础 1.节点覆盖模型 本文采取0/1覆盖模型,具体描述请参考这里. ...
- 【优化求解】基于缎蓝园丁鸟优化算法 (SBO)求解单目标问题附matlab代码
1 简介 2 部分代码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...
- 基于自适应权重的缎蓝园丁鸟优化算法-附代码
基于自适应权重的缎蓝园丁鸟优化算法 文章目录 基于自适应权重的缎蓝园丁鸟优化算法 1.缎蓝园丁鸟优化算法 2.改进的缎蓝园丁鸟优化算法 2.1 自适应权重 2.2 改进原高斯变异形式 3.实验结果 5 ...
- 非均匀变异的互利自适应缎蓝园丁鸟优化算法-附代码
非均匀变异的互利自适应缎蓝园丁鸟优化算法 文章目录 非均匀变异的互利自适应缎蓝园丁鸟优化算法 1.缎蓝园丁鸟优化算法 2.非均匀变异的互利自适应缎蓝园 2.1 非均匀变异 2.2 互利因子 2.3自适 ...
- 【优化求解】基于帝国主义竞争算法ICA求解单目标问题Matlab源码
1 简介 2 部分代码 function Empires=UniteSimilarEmpires(Empires,AlgorithmParams,ProblemParams) %联合相似的帝国,距离相 ...
- 【优化求解-单目标求解】基于黑猩猩算法求解单目标问题matlab源码
一.黑猩猩算法 This article proposes a novel metaheuristic algorithm called Chimp Optimization Algorithm (C ...
- 【优化求解】基于加权黑猩猩算法WCHoA求解单目标问题matlab源码
一.黑猩猩算法 These days, there are a sizable number of meta-heuristic algorithms that are utilized to add ...
- 【优化算法】莱维飞行和随机游动策略的灰狼算法【含Matlab源码 1500期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]莱维飞行和随机游动策略的灰狼算法[含Matlab源码 1500期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- [附源码]计算机毕业设计Python+uniapp基于android手机设计并实现在线点单系统APPo682z(程序+源码+LW+远程部署)
[附源码]计算机毕业设计Python+uniapp基于android手机设计并实现在线点单系统APPo682z(程序+源码+LW+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装 ...
最新文章
- 2022-2028年中国应急救援装备行业市场研究及前瞻分析报告
- 高并发下的redis击穿,你需要了解下布隆过滤器
- python中的insert函数_Python numpy.insert函数方法的使用
- 什么是事件冒泡?如何用jquery/js阻止事件冒泡?阻止冒泡有什么作用?小生来抛个砖。...
- 数据库连接配置tomcat_Tomcat到Wildfly:配置数据库连接
- Java多线程学习二十六:原子类是如何利用 CAS 保证线程安全的?
- viewer 获取当前显示的图片信息_通过这个 Runtime 统计信息可视化库学到了什么?...
- php数组堂each怎么保存变量,php – 数组和foreach循环可以更有效地处理输入变量...
- wxPython练习
- 虚幻引擎5 C++游戏开发教程
- Python植物大战僵尸源码分享
- 世界五百强面试题计算机,世界五百强IT企业最新C++经典面试题及答案
- 【Linux学习笔记04】Linux常用命令
- 对于幸福不是悖论的证明,在现代对于幸福探寻
- 砍掉3721 reg
- AT指令详解,错误代码详解
- 线段树——区间合并(模板题)
- JS调用window系统通知
- ViveInputUtility-手柄射线与3D物体交互(5)
- 科技业界10大最具争议成功决定:苹果iPhone