资源简介
粒子群 模拟退火 蚁群算法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神经网络
- 下一篇:单模光纤的场分布
相关资源
- 串行级联cpm系统MATLAB仿真
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
评论
共有 条评论