%% 学习目标:免疫算法在旅行商问题中的解决方法
%% 清空命令窗口和内存
clear
clc
N=10;
%% 城市的个数
M=N-1;
%% 种群的个数
pos=randn(N,2);
%% 生成城市的坐标
global D;
%% 城市距离数据
D=zeros(N,N);
for i=1:N
for j=i+1:N
dis=(pos(i,1)-pos(j,1)).^2+(pos(i,2)-pos(j,2)).^2;
D(i,j)=dis^(0.5);
D(j,i)=D(i,j);
end
end
%% 中间结果保存
global TmpResult;
TmpResult = [];
global TmpResult1;
TmpResult1 = [];
%% 参数设定
[M, N] = size(D);%集群规模
pCharChange = 1;%字符换位概率
pStrChange = 0.4;%字符串移位概率
pStrReverse = 0.4;%字符串逆转概率
pCharReCompose = 0.4;%字符重组概率
MaxIterateNum = 100;%最大迭代次数
%% 数据初始化
mPopulation = zeros(N-1,N);
mRandM = randperm(N-1);%最优路径
mRandM = mRandM + 1;
for rol = 1:N-1
mPopulation(rol,:) = randperm(N);%产生初始抗体
mPopulation(rol,:) = DisplaceInit(mPopulation(rol,:));%预处理
end
%% 迭代
count = 0;
figure(2);
while count < MaxIterateNum
%产生新抗体
B = Mutation(mPopulation, [pCharChange pStrChange pStrReverse pCharReCompose]);
%计算所有抗体的亲和力和所有抗体和最优抗体的排斥力
mPopulation = SelectAntigen(mPopulation,B);
hold on
plot(count,TmpResult(end),'o');
drawnow
display(TmpResult(end));
display(TmpResult1(end));
count = count + 1;
end
hold on
plot(TmpResult,'-r');
title('最佳适应度变化趋势')
xlabel('迭代数')
ylabel('最佳适应度')
% mRandM
%% 大仙QQ:1960009019
%% 在线教育微信公众号:大仙一品堂
matlab神经网络和优化算法:35免疫算法在旅行商问题中的解决方法.zip
版权申诉
51 浏览量
2023-08-17
16:39:54
上传
评论
收藏 15.5MB ZIP 举报
JGiser
- 粉丝: 7556
- 资源: 5112
最新资源
- 华硕B250 PLUS支持6789代BIOS
- 基于javaScript开发的图书管理系统+数据库+源码+项目展示+开发文档(毕业设计&课程设计&项目开发)
- HTML+CSS制作的个人博客网页 2.zip
- 华硕B250M-PIXIU支持6789代BIOS
- c# winfrom 音量控制 静音
- 【OpenHarmony】 ArkTS 语法基础 ② ( ArkTS 自定义组件 )
- 前言(完整版):.zip
- 基于java开发最受欢迎的电影购票系统+源码+数据库+项目文档+项目展示(毕业设计&课程设计&项目开发)
- 基于STM32输液监测系统-源程序,LABVIEW上位机,HMI串口屏
- ESG评分与企业绩效之间的关系
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈