%============================================================================%
% %
%============================================================================%
function [OP_Cost,GOP]=MTOA(Fcn_Name,Par_Interval,No_GTs,No_LTs,RM,Rm,Max_Itr,Beta,Lambda,Theta,Graphic_on)
% initialization
%===============================================================
[Dim,m]=size(Par_Interval);
OP_Cost=zeros(1,Max_Itr);
LP=zeros(Dim,No_GTs);
LP_Cost=ones(1,No_GTs)*inf;
GTs=rand(Dim,No_GTs).*repmat(Par_Interval(:,2)-Par_Interval(:,1),1,No_GTs)+repmat(Par_Interval(:,1),1,No_GTs);
GTs_Cost=Ev_Fcn(GTs,Fcn_Name);
[Gts_Sorted,RKs]=sort(GTs_Cost);
GOP=GTs(:,RKs(1));
GOP_Cost=Gts_Sorted(1);
nop=No_GTs;
OP_Cost(1)=GOP_Cost;
%===============================================================
for Itr=1:Max_Itr
for i=1:nop
% Determin RSs and Search by LTs
%--------------------------------------------------------
Rf=((i-1)/(nop-1))*(RM-Rm)+Rm;
Rd=norm(GOP-GTs(:,RKs(i)));
Rs=Rf*(Rf>=Rd)+Rd*(Rd>Rf);
LTs_C=Create_LTs(No_LTs,Rs,Dim);
LTs=repmat(GTs(:,RKs(i)),1,No_LTs)+LTs_C;
LTs=SS(LTs,Par_Interval);
%----------------
if Graphic_on==1
subplot(2,2,1)
hold off
pause(0.000001);
plot(LTs(1,:),LTs(2,:),'x');
hold on
ezplot(['(x-' num2str(GTs(1,RKs(i))) ')^2 + (y-' num2str(GTs(2,RKs(i))) ')^2 -' num2str(Rs^2)],[0 10],[0 10]);
hold off
xlim([Par_Interval(1,1) Par_Interval(1,2)]);
ylim([Par_Interval(2,1) Par_Interval(2,2)]);
pbaspect([1 1 1])
title('Local Search')
xlabel('x_1')
ylabel('x_2')
end
%----------------
LTs_Cost=Ev_Fcn(LTs,Fcn_Name);
[L_min,L_inx]= min(LTs_Cost);
if L_min<=LP_Cost(RKs(i))
LP(:,RKs(i))=LTs(:,L_inx);
LP_Cost(RKs(i))=L_min;
end
if L_min<=GOP_Cost
GOP_Cost=L_min;
GOP=LTs(:,L_inx);
end
end
% Search by GTs
%--------------------------------------------------------
for i=1:nop
GTs(:,i)=New_GT(GTs(:,i),LP(:,i),GOP,Lambda,Theta,Beta);
GTs(:,i)=SS(GTs(:,i),Par_Interval);
GTs_Cost(i)=Ev_Fcn(GTs(:,i),Fcn_Name);
end
% Ranking
%--------------------------------------------------------
[Gts_Sorted,RKs]=sort(GTs_Cost);
GOP_B=GTs(:,RKs(1));
GOP_Cost_B=Gts_Sorted(1);
if GOP_Cost_B<=GOP_Cost
GOP_Cost=GOP_Cost_B;
GOP=GOP_B;
end
OP_Cost(Itr+1)=GOP_Cost;
%----------------
if Graphic_on==1
subplot(2,2,2)
hold off
pause(.000001)
plot(GTs(1,:),GTs(2,:),'*')
hold on
plot(GOP(1,:),GOP(2,:),'X','color','red')
xlim([Par_Interval(1,1) Par_Interval(1,2)]);
ylim([Par_Interval(2,1) Par_Interval(2,2)]);
hold off
pbaspect([1 1 1]*3)
title('Global Search')
xlabel('x_1')
ylabel('x_2')
end
%----------------
%----------------
if Graphic_on==1
subplot(2,2,3)
hold off
pause(.000001)
plot(OP_Cost(1:Itr+1))
pbaspect([2 1 1])
xlim([1 Max_Itr+1])
title(['Cost=' num2str(GOP_Cost,'%4.10f')])
xlabel('Iteration')
ylabel('Cost')
else
hold off
pause(.000001)
plot(0:Itr,OP_Cost(1:Itr+1),'.','MarkerSize',15,'LineStyle','-','Color',[214 30 0]/255,'MarkerEdgeColor',[3 93 118]/255)
pbaspect([2 1 1])
title(['Itr=' num2str(Itr) ', Cost=' num2str(GOP_Cost,'%4.10f')])
xlim([0 Max_Itr])
xlabel('Iteration')
ylabel('Cost')
end
%----------------
end
end
没有合适的资源?快使用搜索试试~ 我知道了~
多跟踪器优化算法 (MTOA)【含Matlab源码 1090期】.zip
共9个文件
m:8个
jpg:1个
需积分: 0 0 下载量 177 浏览量
2023-12-31
10:28:21
上传
评论
收藏 19KB ZIP 举报
温馨提示
CSDN海神之光上传的代码均可运行,亲测可用,直接替换数据即可,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
资源推荐
资源详情
资源评论
收起资源包目录
多跟踪器优化算法 (MTOA)【含Matlab源码 1090期】.zip (9个子文件)
多跟踪器优化算法 (MTOA)【含Matlab源码 1090期】
MTOA.m 4KB
Gs.m 318B
New_GT.m 626B
运行结果.jpg 19KB
Create_LTs.m 391B
Ev_Fcn.m 338B
SS.m 411B
TestFcn.m 286B
MTOA_Example_Run.m 1KB
共 9 条
- 1
资源评论
Matlab武动乾坤
- 粉丝: 1w+
- 资源: 49
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功