clc
clear all
% 鐢诲浘
x=0:0.1:20;
y=0:0.1:20;
[x,y]=meshgrid(x,y);
z= (x .* sin(x) .* cos(2 * x) - 2 * x .* sin(3 * x)).*(y .* sin(y) .* cos(2 * y) - 2 * y .* sin(3 * y));
surf(x,y,z);
set(gcf,'position',[0 0 1920 1080]);%閾烘弧灞忓箷
colormap winter;%鏀逛竴鏇查潰鐨勯鑹?
hold on
%鍙傛暟鍒濆鍖?
c1 = 1.49445;
c2 = 1.49445;
maxgen = 100; %杩涘寲娆℃暟
sizepop =100; %绉嶇兢瑙勬ā
Vmax = 10; %閫熷害鏈?澶у??
Vmin =-10; %閫熷害鏈?灏忓??
popmax =20;
popmin =0;
%浜х敓鍒濆绮掑瓙鍜岄?熷害
%rand鍑芥暟鏄?0-1锛岄偅涔堝浣曚骇鐢熷埌锛坅锛宐锛夌殑鍖洪棿鐨勯殢鏈烘暟鍛€?俽and*锛坆-a锛?+a
for i=1:sizepop
pop(i,:)=rand(1,2)*20;
V(i,:)=rand(1,2)*(Vmax-Vmin)+Vmin;
fitness(i)=fun(pop(i,1),pop(i,2));
end
%%%鎵惧埌閫傚簲搴︽渶寮虹殑
gbest=pop; %%
fitnessgbest=fitness; %%涓綋鏈?寮?
[bestfitness,bestindex] = max(fitness);%%缇や綋鏈?寮?
fitnesszbest=fitness(bestindex);
zbest=pop(bestindex,:);
%%杩唬瀵讳紭
%鎻忕偣
temp = plot3(pop(:,1),pop(:,2),fitness,'y.','markersize',40);
temp2 = plot3(zbest(1),zbest(2),fitnesszbest,'r.','markersize',40);
hold on
for i=1:maxgen
for j=1:sizepop
V(j,:) = V(j,:) + c1*rand*(gbest(j,:)-pop(j,:)) + c2*rand*(zbest-pop(j,:));
%妫?鏌ラ?熷害鏄惁瓒婄晫
if(V(j,1)>Vmax) V(j,1)=Vmax;end
if(V(j,2)>Vmax) V(j,2)=Vmax;end
if(V(j,1)<Vmin) V(j,1)=Vmin;end
if(V(j,2)<Vmin) V(j,2)=Vmin;end
pop(j,:)=pop(j,:)+V(j,:);
%妫?鏌ュ彉閲忔槸鍚﹁秺鐣?
if(pop(j,1)>popmax) pop(j,1)=popmax;end
if(pop(j,2)>popmax) pop(j,2)=popmax;end
if(pop(j,1)<popmin) pop(j,1)=popmin;end
if(pop(j,2)<popmin) pop(j,2)=popmin;end
%閫傚簲搴︽洿鏂?
fitness(j)=fun(pop(j,1),pop(j,2));
%%鏇存柊涓綋鏈?浼?
if(fitness(j)>fitnessgbest(j))
fitnessgbest(j)=fitness(j);
gbest(j,:)=pop(j,:);
end
end
%%鏇存柊缇や綋鏈?浼?
[bestfitness,bestindex] = max(fitnessgbest);%%缇や綋鏈?寮?
fitnesszbest=fitnessgbest(bestindex);
zbest=gbest(bestindex,:);
%%鍔ㄦ?佺敾鍥?
title(strcat('第',num2str(i),'代'),'fontsize',40)%鍔ㄦ?佹弿缁樻爣棰?
set(temp,'visible','off');
set(temp2,'visible','off');%%鎶婁箣鍓嶇敾鐨勭偣闅愯棌
temp = plot3(pop(:,1),pop(:,2),fitness,'y.','markersize',50);
temp2 = plot3(zbest(1),zbest(2),fitnesszbest,'r.','markersize',50);%% 閲嶆柊鐢荤偣
hold on
pause(0.3);
end
没有合适的资源?快使用搜索试试~ 我知道了~
PSO算法-三维空间展示
共2个文件
m:2个
需积分: 5 3 下载量 63 浏览量
2023-04-24
20:12:02
上传
评论
收藏 1KB ZIP 举报
温馨提示
粒子群优化算法 1.1 粒子群优化算法简介 粒子群优化算法(Particle Swarm Optimization,PSO)是进化计算的一个分支,是一种模拟自然界的生物活动的随机搜索算法。 PSO模拟了自然界鸟群捕食和鱼群捕食的过程。通过群体中的协作寻找到问题的全局最优解。它是1995年由美国学者Eberhart和Kennedy提出的,现在已经广泛应用于各种工程领域的优化问题之中。 粒子群优化算法 1.1 粒子群优化算法简介 粒子群优化算法(Particle Swarm Optimization,PSO)是进化计算的一个分支,是一种模拟自然界的生物活动的随机搜索算法。 PSO模拟了自然界鸟群捕食和鱼群捕食的过程。通过群体中的协作寻找到问题的全局最优解。它是1995年由美国学者Eberhart和Kennedy提出的,现在已经广泛应用于各种工程领域的优化问题之中。 粒子群优化算法 1.1 粒子群优化算法简介 粒子群优化算法(Particle Swarm Optimization,PSO)是进化计算的一个分支,是一种模拟自然界的生物活动的随机搜索算法。
资源推荐
资源详情
资源评论
收起资源包目录
PSO_DEMO3_DIM.zip (2个子文件)
main.m 2KB
fun.m 129B
共 2 条
- 1
资源评论
Lovecoldplay
- 粉丝: 3748
- 资源: 29
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功