python蚁群算法 路径规划_FPGA代做-蚁群算法的二维路径规划算法matlab源码程序

python蚁群算法 路径规划_FPGA代做-蚁群算法的二维路径规划算法matlab源码程序phePara=ones(pathCount,10)*pheUpPara(2);%信息素qfzPara1=ones(10,1)*0.5;%启发信息参数qfzPara2=1.1;%启发信息参数m=10;%种群数量NC=500;…

python蚁群算法 路径规划_FPGA代做-蚁群算法的二维路径规划算法matlab源码程序

phePara = ones(pathCount,10)*pheUpPara(2);         %信息素

qfzPara1 = ones(10,1)*0.5;           %启发信息参数

qfzPara2 = 1.1;                      %启发信息参数

m=10;                                %种群数量

NC=500;                              %循环次数

pathk = zeros(pathCount,m);          %搜索结果记录

shortestpath = zeros(1,NC);          %进化过程记录

%% 初始最短路径

dijpathlen = 0;

vv = zeros(22,2);

vv(1,:) = S;

vv(22,:) = T;

vv(2:21,:) = v;

for i=1:pathCount-1

dijpathlen = dijpathlen + sqrt((vv(path(i),1)-vv(path(i+1),1))^2+(vv(path(i),2)-vv(path(i+1),2))^2);

end

LL = dijpathlen;

%% 经过的链接线

lines = zeros(pathCount,4);

for i = 1:pathCount

lines(i,1:2) = B(L(path(i+1)-1,1),:);

lines(i,3:4) = B(L(path(i+1)-1,2),:);

end

%% 循环搜索

for num = 1:NC

%% 蚂蚁迭代寻优一次

for i=1:pathCount

for k=1:m

q = rand();

qfz(i,:) = (qfzPara2-abs((1:10)’/10-qfzPara1))/qfzPara2; %启发信息

if q<=pheThres%选择信息素最大值

arg = phePara(i,:).*(qfz(i,:).^pheCacuPara);

j = find(arg == max(arg));

pathk(i,k) = j(1);

else  % 轮盘赌选择

arg = phePara(i,:).*(qfz(i,:).^pheCacuPara);

sumarg = sum(arg);

qq = (q-pheThres)/(1-pheThres);

qtemp = 0;

j = 1;

while qtemp < qq

qtemp = qtemp + (phePara(i,j)*(qfz(i,j)^pheCacuPara))/sumarg;

j=j+1;

end

j=j-1;

pathk(i,k) = j(1);

end

% 信息素更新

phePara(i,j) = (1-pheUpPara(1))*phePara(i,j)+pheUpPara(1)*pheUpPara(2);

end

end

%% 计算路径长度

len = zeros(1,k);

for k=1:m

Pstart = S;

Pend = lines(1,1:2) + (lines(1,3:4)-lines(1,1:2))*pathk(1,k)/10;

for l=1:pathCount

len(1,k) = len(1,k)+sqrt(sum((Pend-Pstart).^2));

Pstart = Pend;

if l

Pend = lines(l+1,1:2) + (lines(l+1,3:4)-lines(l+1,1:2))*pathk(l+1,k)/10;

end

end

Pend = T;

len(1,k) = len(1,k)+sqrt(sum((Pend-Pstart).^2));

end

%% 更新信息素

% 寻找最短路径

minlen = min(len);

minlen = minlen(1);

minant = find(len == minlen);

minant = minant(1);

% 更新全局最短路径

if minlen < LL

LL = minlen;

end

% 更新信息素

for i=1:pathCount

phePara(i,pathk(i,minant)) = (1-pheUpPara(1))* phePara(i,pathk(i,minant))+pheUpPara(1)*(1/minlen);

end

shortestpath(num) = minlen;

end

今天的文章python蚁群算法 路径规划_FPGA代做-蚁群算法的二维路径规划算法matlab源码程序分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/32882.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注