EDA365电子论坛网
标题:
基于matlab蚁群算法的三维路径规划
[打印本页]
作者:
ulppknot
时间:
2021-3-3 18:21
标题:
基于matlab蚁群算法的三维路径规划
- \) k6 Q- C0 N1 \- C# k
一、简介
$ d) f; f' Z' t6 Z* l* O- d4 L! R
基于matlab蚁群算法的三维路径规划
1 m& }2 x; J% P& _5 Q
1 s# d6 O/ J6 H8 u# [3 O
二、源代码
6 a; n; A; Y! i4 d
%% 该函数用于演示基于蚁群算法的三维路径规划算法
) D# T- a) I- n
P( P9 s# _8 G4 c/ F b
%% 清空环境
+ C. @8 k. t4 ~9 \3 F6 f
clc
8 j6 ~4 l* w5 b4 T; s& R7 O% w9 l
clear
$ s6 w2 i0 C r2 ~1 a9 |' Q0 E, L
1 h! b0 r+ L7 D5 ?
%% 数据初始化
! u% ^& b+ M' N
8 x! n$ t( k% _9 \
%下载数据
& {) q0 V# ~' W9 X3 D- Q$ _4 n4 I
load HeightData HeightData
0 b, @4 B8 z& B9 [- H* S% y
/ V; v0 k6 L. y. R/ F7 ]
%网格划分
; n6 n' P% z: {6 z+ m7 @/ g
LevelGrid=10;
7 {- h9 a5 H2 ]0 p$ |
PortGrid=21;
9 f' K: r& `+ ~7 K! Z+ y7 }& _
* W+ d4 S% s" B! a& \
%起点终点网格点
; y7 w& Z& P2 x
starty=10;starth=4;
( c# q) V+ {$ F' Q4 ~+ \
endy=8;endh=5;
; `) C# J. B I! D* |7 x7 g
m=1;
6 h( u3 f$ @' l: M- l
%算法参数
. O: [5 X! g4 x y) w
PopNumber=10; %种群个数
* I+ A% [8 @& d2 ?5 U/ v5 l
BestFitness=[]; %最佳个体
/ _, E% j% d i
4 J- c/ M' W8 \; K& X" q7 ^0 V2 O
%初始信息素
9 p) P; p; ?; W5 m- M @) O. \
pheromone=ones(21,21,21);
+ }+ _, A6 Y9 s& U2 P5 ^; X' t9 z
7 y1 ^8 I! t$ F
%% 初始搜索路径
- i$ y+ {. I* }9 H3 p+ s
[path,pheromone]=searchpath(PopNumber,LevelGrid,PortGrid,pheromone, ...
' y& K, m% D; y6 A
HeightData,starty,starth,endy,endh);
: R: ?# M' w( E7 I
fitness=CacuFit(path); %适应度计算
5 C0 r8 h) ]5 y1 C) ?2 o; ^
[bestfitness,bestindex]=min(fitness); %最佳适应度
g |5 L# c4 A3 O7 |" r
bestpath=path(bestindex,:); %最佳路径
5 S% m$ C( ?2 p2 v! k. t
BestFitness=[BestFitness;bestfitness]; %适应度值记录
* T' `6 m: j5 O1 j2 H+ \; c0 y( b! a
# g4 d1 |3 W7 Z% c7 I
%% 信息素更新
1 [. {) U5 q& r( Z* W& d4 Z4 X0 K
rou=0.2;
9 A/ ~6 W; ^4 F) y
cfit=100/bestfitness;
3 G( Z% v+ Y- {; K4 ^
for i=2:PortGrid-1
2 D4 n$ O4 {: n$ @$ w% z) r$ x
pheromone(i,bestpath(i*2-1),bestpath(i*2))= ...
~$ x6 O' G, u3 w* } d# x& F
(1-rou)*pheromone(i,bestpath(i*2-1),bestpath(i*2))+rou*cfit;
5 P6 `, H6 x8 k, N! I- y
end
9 @6 k3 \5 ]' ~/ p& o
# C5 f" h! W' j; f- C Z
%% 循环寻找最优路径
: i- Q0 m, D' S
for kk=1:100
H6 v! D: l( {# Q- k
" W# s- _* }5 }( t3 [# n
%% 路径搜索
j5 L* X/ m- M- D) `- ]) U
[path,pheromone]=searchpath(PopNumber,LevelGrid,PortGrid,...
0 R& R v- c6 E/ o/ g
pheromone,HeightData,starty,starth,endy,endh);
$ h. d9 q6 z) \9 [
; q0 ~5 K0 b0 N; g* ~
%% 适应度值计算更新
% m( E. E: O" \* @" \
fitness=CacuFit(path);
8 p0 v, F- a( I" {6 o/ O
[newbestfitness,newbestindex]=min(fitness);
/ }- G0 P# p! O3 f3 [; ~
if newbestfitness<bestfitness
4 w/ Y" |- a6 o/ W9 I& `
bestfitness=newbestfitness;
7 d8 a( c0 b2 g
bestpath=path(newbestindex,:);
[0 B' m/ m# |# p* Q$ w
end
6 a# j2 A, a3 l. E) [
BestFitness=[BestFitness;bestfitness];
/ W# `# L; @) E7 l6 C
( A8 l, Z4 G( z# T
%% 更新信息素
8 C* D2 I( S$ A# P; r# l; Y) {
cfit=100/bestfitness;
# K x# N) l8 {$ o$ V/ J Q6 Y
for i=2:PortGrid-1
, q1 _8 W: [+ x" Y4 G
pheromone(i,bestpath(i*2-1),bestpath(i*2))=(1-rou)* ...
" W) I/ ?' P6 t( d
pheromone(i,bestpath(i*2-1),bestpath(i*2))+rou*cfit;
?! R) L! D& _( y; T* `
end
6 r7 t2 }: K0 p5 ]
6 `7 C- w8 v* v% S7 T* f
end
) L9 m$ f4 }) O2 g' o( p+ k. k" p
. p n! b; L2 _- [
三、运行结果
- p0 u6 l1 X% f5 C' p1 G' Y* x
12.jpg
(24.67 KB, 下载次数: 9)
下载附件
保存到相册
2021-3-3 18:20 上传
作者:
ExxNEN
时间:
2021-3-3 18:31
基于matlab蚁群算法的三维路径规划
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2