clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
rng('default');
%Problem Statement
Npar = 3;
VarLow=[-5.12 -5.12 -5.12];
VarHigh = [5.12 5.12 5.12];
% parameters
n=50;
MaxIter=50;
XBest = rand(1,Npar).* (VarHigh - VarLow) + VarLow;
XBestFit = fitnessFunc(XBest);
GB = XBestFit;
%Initialization of memory
X=repmat(struct('Position',zeros(1,Npar),'Velocity',zeros(1,Npar)),n,1);
t=cputime;
%Initialize Random ecosystem
for ii = 1:n
X(ii).Position = rand(1,Npar).* (VarHigh - VarLow) + VarLow;
X(ii).Position=limiter(X(ii).Position,VarHigh,VarLow);
X(ii).Fit = fitnessFunc(X(ii).Position);
if X(ii).Fit < XBestFit
XBest = X(ii).Position;
XBestFit = X(ii).Fit;
end
end
%Main Loop
for jj=1:MaxIter
rng(jj);
for ii=1:n
%MUTUALISM PHASE
j=randperm(n,1); %random organism to interact
Mutual_Vector=(X(ii).Position+X(j).Position)/2; % mutual vector
% new solutions
Xinew = X(ii).Position+rand(1,Npar).*(XBest-Mutual_Vector);
Xjnew = X(j).Position+rand(1,Npar).*(XBest-Mutual_Vector);
% limit solutions within search space
Xinew=limiter(Xinew,VarHigh,VarLow);
Xjnew=limiter(Xjnew,VarHigh,VarLow);
% find new fitness values
Xinewfit=fitnessFunc(Xinew);
Xjnewfit=fitnessFunc(Xjnew);
% update organisms if better
if Xinewfit<X(ii).Fit
X(ii).Position=Xinew;
X(ii).Fit=Xinewfit;
if X(ii).Fit < XBestFit
XBest = X(ii).Position;
XBestFit = X(ii).Fit;
end
end
if Xjnewfit<X(j).Fit
X(j).Position=Xjnew;
X(j).Fit=Xjnewfit;
if X(j).Fit < XBestFit
XBest = X(j).Position;
XBestFit = X(j).Fit;
end
end
%COMMENSALISM PHASE
j=randperm(n,1); %random organism to interact
Xinew = X(ii).Position+(rand).*(XBest-X(ii).Position);
Xinew=limiter(Xinew,VarHigh,VarLow); % limit within search space
Xinewfit=fitnessFunc(Xinew); % update fitness
% update organism if better
if Xinewfit<X(ii).Fit
X(ii).Position=Xinew;
X(ii).Fit=Xinewfit;
if X(ii).Fit < XBestFit
XBest = X(ii).Position;
XBestFit = X(ii).Fit;
end
end
%PARASITISM PHASE
j=randperm(n,1); %random organism to become parasite
Xpar=X(j).Position;
Xm=randperm(Npar,1); %random vector dimension
Xpar(Xm) = rand* (VarHigh(Xm) - VarLow(Xm)) + VarLow(Xm);
% limit within search space
Xpar=limiter(Xpar,VarHigh,VarLow);
Xparfit=fitnessFunc(Xpar); % update fitness
% update organism if better
if Xparfit<X(ii).Fit
X(ii).Position=Xpar;
X(ii).Fit=Xparfit;
if X(ii).Fit < XBestFit
XBest = X(ii).Position;
XBestFit = X(ii).Fit;
end
end
end
% store the best value in each iteration
GB = [GB XBestFit];
end
t1=cputime;
fprintf('The time taken is %3.2f seconds \n',t1-t);
fprintf('The best value is :');
XBest
XBestFit
figure
plot(0:MaxIter,GB, 'linewidth',1.2);
xlabel('Iterations');
ylabel('Objective Function (Cost)');
grid('on')
没有合适的资源?快使用搜索试试~ 我知道了~
含仿真操作录像,基于共生生物搜索算法(SOS)的目标优化matlab仿真
共5个文件
m:3个
jpg:1个
avi:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 23 浏览量
2022-11-28
18:22:44
上传
评论 1
收藏 900KB RAR 举报
温馨提示
1.版本:matlab2021a,包含仿真操作录像,操作录像使用windows media player播放。 2.领域:共生生物搜索算法 3.内容:基于共生生物搜索算法(SOS)的目标优化matlab仿真 4.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。
资源推荐
资源详情
资源评论
收起资源包目录
基于共生生物搜索算法(SOS)的目标优化matlab仿真.rar (5个子文件)
matlab
func
fitnessFunc.m 206B
limiter.m 210B
Runme.m 3KB
12.jpg 26KB
操作录像0039.avi 2.36MB
共 5 条
- 1
资源评论
fpga和matlab
- 粉丝: 15w+
- 资源: 2550
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 计算机毕业设计-Java+access综合测评系统毕业设计(源代码+论文+开题报告+任务书)
- 计算机毕业设计-JavaSmart系统-系统框架设计与开发(源代码+论文)
- 297418564246850加工中心宏计算.apk
- 基于Python实现对书旗小说网进行逆向,实现整本书的采集源代码 并使用tkinter做了GUI界面
- 基于Python实现对塔读小说的免费内容进行整本书的采集源代码,利用JS逆向对每章节中的文字广告进行去除
- Java将2个List集合合并到一个List里面并排序工具类
- 1123231321321321
- 基于Python的歌曲搜索播放器源代码,利用requests库对歌曲宝网站进行歌曲采集,并用tkinter做了UI
- kernel-devel-3.10.0-1062.21.1.el7.x86-64.rpm
- kernel-3.10.0-1062.21.1.el7.x86-64.rpm
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功