matlab粒子群算法栅格路径规划_Matlab二维有障碍物 路径寻优 蚁群算法(ACO)

因为之前接了一个推广,所以想着抽个奖回馈一下大家。在视频页评论一下就成哦,现在中奖率还不到百分之一。

虽然钱不多,但是也是我的一点小心意吧~~

视频页网址:https://www.bilibili.com/video/BV1WZ4y1u7Xd

这次分享的代码其实很大一部分在之前的Dijkstra算法或者二维有障碍物的模拟退火算法都有。但是为了完整性还是全面复制在下面,一些文件应该保存成单独的m文件或者txt都会标注好。

我们先来看一下结果展示,比之前的模拟退火算法还是好上不少的。

b8a6ff3bd38598becfb94e4993228181.png

ad11d10035cf93a68b3bb5992262e1e8.png

NO.1  主程序

----------------------------------

%% 二维蚁群算法

clc;

clear all

%% 初始作图

position = load('barrier.txt'); %障碍物顶点和边界点

%描述起点和终点

S = [20,180];

T = [160,90];

scatter([S(1),T(1)],[S(2),T(2)],'filled','d','LineWidth',1.5);

set(gca,'xtick',0:20:200)   %横坐标刻度

title('Dijkstra算法演示','fontsize',12)

hold on

grid on

% 图形标注

text(S(1)+2,S(2),'S');

text(T(1)+2,T(2),'T');

%% 描绘障碍物图形填充

fill(position(1:4,1),position(1:4,2),[1,0.87059,0.67843]);  

fill(position(5:8,1),position(5:8,2),[1,0.87059,0.67843]);

fill(position(9:12,1),position(9:12,2),[1,0.87059,0.67843]);

fill(position(13:15,1),position(13:15,2),[1,0.87059,0.67843]);

% 下载链路端点数据

L = load('lines.txt');   

%L矩阵根据position里面的端点编号来,第一行是编号1和16坐标的点相连

%% 描绘线及中点,注意plot([x1,x2],[y1,y2])

v = zeros(size(L));

for i=1:size(L,1)

    plot([position(L(i,1),1),position(L(i,2),1)],[position(L(i,1),2)...

        ,position(L(i,2),2)],'color','black','LineStyle','--');

    v(i,:) = (position(L(i,1),:)+position(L(i,2),:))/2;

    plot(v(i,1),v(i,2),'*');

    text(v(i,1)+2,v(i,2),strcat('v',num2str(i)));  %标记中点

end

%% 计算路径距离(中点和起终点之间)

sign = load('matrix.txt');  %节点间是否可到达,所有中点加上起点和终点

[n,m]=size(sign);

c = zeros(size(sign));

position_all = [S;v;T];

for i = 1:n

    for j = 1:m

        if sign(i,j) == 1

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值