资源简介
粒子群 模拟退火 蚁群算法MATLAB实现,采用了TSP数据进行实验。
代码片段和文件信息
clc;clear;close all; %% 初始化种群
f= @(x)x .* sin(x) .* cos(2 * x) - 2 * x .* sin(3 * x); % 函数表达式
figure(1);
ezplot(f[00.0120]);
N = 50; % 初始种群个数
d = 1; % 空间维数
ger = 100; % 最大迭代次数
limit = [0 20]; % 设置位置参数限制
vlimit = [-1 1]; % 设置速度限制
w = 0.8; % 惯性权重
c1 = 0.5; % 自我学习因子
c2 = 0.5; % 群体学习因子
for i = 1:d
x = limit(i 1) + (limit(i 2) - limit(i 1)) * rand(N d);%初始种群的位置
end
v = rand(N d); % 初始种群的速度
xm = x; % 每个个体的历史最佳位置
ym = zeros(1 d); % 种群的历史最佳位置
fxm = zeros(N 1); % 每个个体的历史最佳适应度
fym = -inf; % 种群历史最佳适应度
hold on
plot(xm f(xm) ‘ro‘);
title(‘初始状态图‘);
figure(2) %% 群体更新
iter = 1;
record = zeros(ger 1); % 记录器
while iter <= ger
fx = f(x) ; % 个体当前适应度
for i = 1:N
if fxm(i) < fx(i)
fxm(i) = fx(i); % 更新个体历史最佳适应度
xm(i:) = x(i:); % 更新个体历史最佳位置
end
end
if fym < max(fxm)
[fym nmax] = max(fxm); % 更新群体历史最佳适应度
ym = xm(nmax :); % 更新群体历史最佳位置
end
v = v * w + c1 * rand * (xm - x) + c2 * rand * (repmat(ym N 1) - x);% 速度更新
% 边界速度处理
v(v > vlimit(2)) = vlimit(2);
v(v < vlimit(1)) = vlimit(1); x = x + v;% 位置更新
% 边界位置处理
x(x > limit(2)) = limit(2);
x(x < limit(1)) = limit(1);
record(iter) = fym;%最大值记录
% x0 = 0 : 0.01 : 20;
% plot(x0 f(x0) ‘b-‘ x f(x) ‘ro‘);title(‘状态位置变化‘)
% pause(0.1)
iter = iter+1;
end
figure(3);
plot(record);
title(‘收敛过程‘)
x0 = 0 : 0.01 : 20;
figure(4);
plot(x0 f(x0) ‘b-‘ x f(x) ‘ro‘);
title(‘最终状态位置‘)
disp([‘最大值:‘num2str(fym)]);
disp([‘变量取值:‘num2str(ym)]);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1842 2018-11-27 19:59 suanfa\liziqun.m
文件 2549 2018-11-27 20:06 suanfa\liziqun2.m
文件 4141 2018-11-27 18:44 suanfa\tuihuo.m
文件 6412 2018-11-27 18:52 suanfa\yiqun.m
目录 0 2018-11-27 20:06 suanfa
----------- --------- ---------- ----- ----
14944 5
- 上一篇:matlab实现BP神经网络
- 下一篇:单模光纤的场分布
相关资源
- 单模光纤的场分布
- matlab实现BP神经网络
- MATLAB解决游梁式抽油机.slx
- matlab经纬度距离计算及数据分类合并
- 利用MATLAB计算分形维数
- matlabUDP丢包率及成功概率
- matlab 随机模拟
-
boost单电压换闭环仿真Simuli
nk.slx - SIRP和ZMNL杂波仿真matlab程序
- 车牌识别定位分割matlab
- KPCA算法实现代码,MATLAB
- PCA算法MATLAB实现,附原始数据
- 道路障碍物识别
- matlab仿真MAC
- matlab的PCA实现
- 典型PI控制器
- Matlab仿真CV、CA、CT三种运动模型的轨
- VSB调制—matlab
- 倒立摆LQR控制程序
- ADRC自抗扰控制
- MATLAB求解偏微分方程扩散方程有限差
- 迈克尔逊实验matlab仿真
- LEACH多跳传输协议matlab实现
- 基于MATLAB仿真的LEACH协议代码
-
汽车防抱死制动系统Simuli
nk建模仿真 - MATLAB多目标遗传算法
- Matlab实现K-Means算法
- CLEAN算法详解与matlab仿真
- 多线性规划MatLab代码与数据全
- kalman匀速直线目标跟踪matlab程序
评论
共有 条评论