资源简介
运用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实现
- 利用蚁群算法对PID参数自整定程序源
- 蚁群算法最短路径matlab程序
- 蚁群算法求最短路径1
- 蚁群算法最短路径万能matlab源代码
- MATLAB蚁群算法ACA最短路径-注释完整
- 路径规划蚁群算法
- 蚁群算法粗糙集matlab代码
- 基于Matlab解决TSP问题的蚁群算法
- 蚁群算法采用matlab开发的仿真平台
- 粒子群算法与蚁群算法混合解决旅行
- 物流配送路线matlab源程序
- 蚁群算法 matlab仿真程序,详细注释
- 基于蚁群算法的移动机器人三维路径
- 蚁群算法实现机器人避障和路径规划
- 蚁群聚类算法matlab实现
- 蚁群算法解决背包问题matlab
- 蚁群算法图像分割
- 带约束的蚁群算法模型解决TSP问题M
- 基于蚁群算法和Dijkstra算法的二维路径
- 蚁群算法matlab完整代码
- 蚁群算法求解最短路,详细,可用于
- 蚁群算法求解最短路径问题MATLAB代码
- 机器人障碍环境下路径规划改进的回
- 改进的蚁群算法求解TSP问题
- 蚁群算法解决TSP问题MATLAB程序
- 蚁群算法求解旅行商最优路径问题
- 蚁群算法的matlab源码.rar
- Matlab中蚁群算法求解连续函数优化的
- 基于蚁群算法和神经网络匹配算法的
评论
共有 条评论