matlab蚁群算法实现路径规划避开障碍物
Posted studyer_domi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab蚁群算法实现路径规划避开障碍物相关的知识,希望对你有一定的参考价值。
1、内容简介
略
652-可以交流、咨询、答疑
蚁群算法实现路径规划避开障碍物
2、内容说明
蚁群系统(Ant System或Ant Colony System)是由意大利学者Dorigo、Maniezzo等人于20世纪90年代首先提出来的。他们在研究蚂蚁觅食的过程中,发现单个蚂蚁的行为比较简单,但是蚁群整体却可以体现一些智能的行为。例如蚁群可以在不同的环境下,寻找最短到达食物源的路径。这是因为蚁群内的蚂蚁可以通过某种信息机制实现信息的传递。后又经进一步研究发现,蚂蚁会在其经过的路径上释放一种可以称之为“信息素”的物质,蚁群内的蚂蚁对“信息素”具有感知能力,它们会沿着“信息素”浓度较高路径行走,而每只路过的蚂蚁都会在路上留下“信息素”,这就形成一种类似正反馈的机制,这样经过一段时间后,整个蚁群就会沿着最短路径到达食物源了。
将蚁群算法应用于解决优化问题的基本思路为:用蚂蚁的行走路径表示待优化问题的可行解,整个蚂蚁群体的所有路径构成待优化问题的解空间。路径较短的蚂蚁释放的信息素量较多,随着时间的推进,较短的路径上累积的信息素浓度逐渐增高,选择该路径的蚂蚁个数也愈来愈多。最终,整个蚂蚁会在正反馈的作用下集中到最佳的路径上,此时对应的便是待优化问题的最优解。
3、仿真分析
略
clc;
clear;
close all;
rng default
%%
global obstacle target
obstacle_x = [41.25,39,37,36, 35];
obstacle_y = [82.9,84.2,84.8,84, 86];
obstacle = [obstacle_x obstacle_y];
target_x = [42.575 33.033]; % 两个目标站点的横坐标
target_y = [82.231 87.011]; %两个目标站点的纵坐标
target = [target_x target_y];
% 目标函数 point为优化的点坐标,target为两个站台位置,obstacle为障碍物固定的位置
point = length(obstacle_x)+1;
figure
plot(target_x,target_y,'h','MarkerSize',16,'MarkerFaceColor','g')
hold on
plot(obstacle_x,obstacle_y,'^','MarkerSize',16,'MarkerFaceColor','b');
hold off
xlabel x
ylabel y
title 位置坐标点分布图
grid on
%% 问题定义
CostFunction=@(x) distance(x); % 目标函数
point_num = length(obstacle_x)+1;
nVar=2*point_num; % 优化变量个数
VarSize=[1 nVar]; % 变量矩阵size
VarMin=min(min(target_x),min(target_y)); % 变量下限
VarMax=max(max(target_x),max(target_y)); % 变量上限
%% 蚁群算法参数 Parameters
MaxIt=1000; % 最大迭代次数
nPop=30; % 种群个数
nSample=80; % 蚂蚁数量
q=0.5; % 信息素选择阈值
zeta=1; % 信息素计算参数
4、参考论文
略
以上是关于matlab蚁群算法实现路径规划避开障碍物的主要内容,如果未能解决你的问题,请参考以下文章
路径规划基于matlab蚁群算法栅格地图路径规划及避障含Matlab源码 2088期
matlab基于蚁群算法的二维路径规划算法matlab优化算法二十二