资源简介
运用matlab编程实现蚁群算法的低压电力线设计

代码片段和文件信息
clear all;
clc;
%%第一步:变量初始化
m=40;Alpha=1;Beta=1;Rho=0.1;NC_max=75;Q=100;q0=0.2;s=2;d=23;
C =[ 37 129
94 424
361 5
91 14
380 373
200 288
163 217
21 211
155 389
430 439
104 40
298 0
489 275
488 461
25 282
316 426
451 258
319 222
127 217
289 313
31 380
135 212
424 266
297 156
421 156
33 432
330 389
351 124
352 253
325 142
221 239
26 423
282 326
43 30
386 150
186 156
374 259
377 270
84 437
305 212
371 83
499 277
487 368
52 266
432 243
277 410
77 327
180 308
222 151
371 354
221 490
274 11
324 454
70 341
66 305
150 314
309 372
197 74
112 350
471 29
];
%scatter(C(:1)C(:2));
%hold on;
n=size(C1);%n表示问题的规模(城市个数)结果:n=40 得到第一列维数。即40个城市。
D=ones(nn);%D表示完全图的赋权邻接矩阵 31*31矩阵
%%%%%%%%求距离
for i=1:n
for j=1:n
if i D(ij)=sqrt((C(i1)-C(j1))^2+(C(i2)-C(j2))^2);
end
D(ji)=D(ij);
end
end
%D
%%%%%%%分布时延
delay=zeros(nn);
for i=1:n
for j=1:n
if D(ij)==1
delay(ij)=0;
elseif D(ij)>=1&D(ij)<100
delay(ij)=0.002;
elseif D(ij)>=100 & D(ij)<200
delay(ij)=0.004;
elseif D(ij)>=200 & D(ij)<300
delay(ij)=0.006;
elseif D(ij)>=300 & D(ij)<400
delay(ij)=0.008;
elseif D(ij)>=400 & D(ij)<500
delay(ij)=0.01;
elseif D(ij)>=500 & D(ij)<600
delay(ij)=0.012;
end
end
end
%delay
Eta=1./D;%Eta为启发因子,这里设为距离的倒数
Tau=ones(nn);%Tau为信息素矩阵
Tabu=zeros(mn);%存储并记录路径的生成
NC=1;%迭代计数器
R_best=zeros(NC_maxn);%各代最佳路线
L_best=inf.*ones(NC_max1);%各次最佳路线的时延 inf表示正无穷大
while NC<=NC_max%停止条件之一:达到最大迭代次数
%%%第二步:放在初始位置
Tabu(:1)=s;
%%%%第三步:建立路由表
R=zeros(nn);
for i=1:n
for j=1:n
if D(ij)<350
R(ij)=1;
else
R(ij)=0;
end
end
end
R(ij)=R(ij);
%%%%第四步:蚂蚁按概率计算下一跳
for i=1:m%蚂蚁依次循环
for j=2:n%城市
visited=Tabu(i1:(j-1));%已访问的城市,是个1行j-1列的向量,纪录了第i只蚂蚁走过的城市号 避免环路
J=zeros(1(n-j+1));%待访问的城市,是个1行n-j+1列的向量
P=J;%待访问城市的选择概率分布
Jc=1;%Jc在这里是什么意思呢?没什么意思,只是为Jc赋初值
for k=1:n %寻找第i只蚂蚁未走过的城市编号
if(length(find(visited==k))==0)&(R(visited(end)k)==1)
J(Jc)=k;%将未走过的城市编号依次赋给J中第Jc个元素
Jc=Jc+1;%通过循环,进行下一个未走过城市的查找
end
% end %这个循环又是什么作用?
end
if J(1)==0
break;
end
%%%%%下面计算待选城市的概率分布
for k=1:length(J)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7522 2010-05-12 17:55 jiandan40.m
----------- --------- ---------- ----- ----
7522 1
- 上一篇:MATLAB神经网络工具箱中的神经网络模型
- 下一篇:BP神经网络MATLAB实现
相关资源
- 用蚁群算法求解TSP问题的matlab程序
- 蚁群算法论文+源代码
- 针对栅格路径规划的蚁群算法MATLAB
- 蚁群算法实现三维路径规划Matlab源码
- matlab蚁群算法.zip
- 论文研究-基于改进蚁群算法的车辆路
- 基于蚁群算法和神经网络匹配算法的
- matlab蚁群算法各种经典蚁群算法for
- 基于栅格地图的蚁群算法路径规划
- 基于蚁群算法和神经网络匹配算法的
- 基于蚁群算法和神经网络匹配算法的
- 多种蚁群算法在机器人路径规划中的
- 机器人避障航路规划蚁群算法MATLAB仿
- 蚁群算法进行二维路径规划.zip
- 蚁群算法MATLAB代码287131
- 蚁群算法路径规划避障MATLAB源程序
- 蚁群算法无人机路径规划
- 粒子群 模拟退火 蚁群算法MATLAB实现
- 基本蚁群聚类算法及其改进算法带M
- 基于蚁群算法和神经网络匹配算法的
- 蚁群算法算法的路径规划MATLAB实现
- 利用蚁群算法对PID参数自整定程序源
- 蚁群算法最短路径matlab程序
- 蚁群算法求最短路径1
- 蚁群算法最短路径万能matlab源代码
- MATLAB蚁群算法ACA最短路径-注释完整
- 路径规划蚁群算法
- 蚁群算法粗糙集matlab代码
- 基于Matlab解决TSP问题的蚁群算法
- 蚁群算法采用matlab开发的仿真平台
评论
共有 条评论