IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【路径规划】基于反向粒子群算法求解栅格路径规划及避障matlab代码? -> 正文阅读

[数据结构与算法]【路径规划】基于反向粒子群算法求解栅格路径规划及避障matlab代码?

1 简介

基于改进粒子群算法的移动机器人路径规划,通过建立目标函数,变换坐标等对环境建模,再引入反向粒子群优化算法,得到全局最优路径.MATLAB仿真结果显示,此方法可有效地解决空间作业机器人路径规划及避障问题.与传统粒子群算法比,该法建模容易,计算快捷,可以在不同的障碍物环境下得到不同的优化轨迹?。

2 部分代码

clc;

close all

clear

load('data4.mat')

S=(S_coo(2)-0.5)*num_shange+(S_coo(1)+0.5);%起点对应的编号

E=(E_coo(2)-0.5)*num_shange+(E_coo(1)+0.5);%终点对应的编号

PopSize=20;%种群大小

OldBestFitness=0;%旧的最优适应度值

gen=0;%迭代次数

maxgen =200;%最大迭代次数

c1=0.5;%认知系数

c2=0.7;%社会学习系数

c3=0.2;%反向因子

w=0.96;%惯性系数

%%

%初始化路径

w_min=0.5;

w_max=1;

Group=ones(num_point,PopSize);? %种群初始化

flag=1;

%% 初始化粒子群位置

for i=1:PopSize

? ? p_lin=randperm(num_point)';%随机生成1*400不重复的行向量

? ? ?%% 将起点编号放在首位

? ? ? ? index=find(p_lin==S);

? ? ? ? lin=p_lin(1);

? ? ? ? p_lin(1)=p_lin(index);

? ? ? ? p_lin(index)=lin;

? ? ? ? Group(:,i)=p_lin;

? ? ? ? %%将每个个体进行合理化处理

? ? ? ? [Group(:,i),flag]=deal_fun(Group(:,i),num_point,liantong_point,E,num_shange);

? ? ? ? ?fangxiang_Group(:,i)=fangxiang(Group(:,i),c3);%方向粒子数量

? ? while flag==1%如处理不成功,则初始化个体,重新处理

? ? ? ? %% 将起点编号放在首位

? ? ? ? index=find(p_lin==S);

? ? ? ? lin=p_lin(1);

? ? ? ? p_lin(1)=p_lin(index);

? ? ? ? p_lin(index)=lin;

? ? ? ? Group(:,i)=p_lin;

? ? ? ? fangxiang_Group(:,i)=p_lin;

? ? ? ? %%将每个个体进行合理化处理

? ? ? ? [Group(:,i),flag]=deal_fun(Group(:,i),num_point,liantong_point,E,num_shange);

? ? ? ? ?[fangxiang_Group(:,i),flag]=deal_fun(fangxiang_Group(:,i),num_point,liantong_point,E,num_shange);

? ? end

? ?

end

%最优解

figure(3)

hold on

for i=1:num_shange

? ? for j=1:num_shange

? ? ? ? if sign(i,j)==1

? ? ? ? ? ? y=[i-1,i-1,i,i];

? ? ? ? ? ? x=[j-1,j,j,j-1];

? ? ? ? ? ? h=fill(x,y,'k');

? ? ? ? ? ? set(h,'facealpha',0.5)

? ? ? ? end

? ? ? ? s=(num2str((i-1)*num_shange+j));

? ? ? ? text(j-0.95,i-0.5,s,'fontsize',6)

? ? end

end

axis([0 num_shange 0 num_shange])%限制图的边界

plot(S_coo(2),S_coo(1), 'p','markersize', 10,'markerfacecolor','b','MarkerEdgeColor', 'm')%画起点

plot(E_coo(2),E_coo(1),'o','markersize', 10,'markerfacecolor','g','MarkerEdgeColor', 'c')%画终点

set(gca,'YDir','reverse');%图像翻转

for i=1:num_shange

? ? plot([0 num_shange],[i-1 i-1],'k-');

? ? plot([i i],[0 num_shange],'k-');%画网格线

end

for i=2:index1

? ? Q1=[mod(route_lin(i-1)-1,num_shange)+1-0.5,ceil(route_lin(i-1)/num_shange)-0.5];

? ? Q2=[mod(route_lin(i)-1,num_shange)+1-0.5,ceil(route_lin(i)/num_shange)-0.5];

? ? plot([Q1(1),Q2(1)],[Q1(2),Q2(2)],'r','LineWidth',3)

end

title('改进后的粒子群算法-最优路线');

%进化曲线

figure(4);

plot(BestFitness);

xlabel('迭代次数')

ylabel('适应度值')

grid on;

title('改进后的进化曲线');

disp('改进后的粒子群算法-最优路线方案:')

disp(num2str(route_lin))

disp(['起点到终点的距离:',num2str(BestFitness(end))]);

figure(5);

plot(BestFitness*100);

xlabel('迭代次数')

ylabel('适应度值')

grid on;

title('改进后的最佳个体适应度值变化趋势');

3 仿真结果

4 参考文献

[1]黄祎, 孙德宝, and 秦元庆. "基于粒子群算法的移动机器人路径规划." 兵工自动化 25.4(2006):3.

图片

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-07 12:17:52  更:2021-12-07 12:18:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 14:46:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码