【Matlab WSN通信】A_Star改进LEACH多跳传输协议【含源码 487期】

news/2024/6/17 23:37:13 标签: matlab, 算法, 开发语言

一、代码运行视频(哔哩哔哩)

【Matlab路径规划】蚁群算法机器人大规模栅格地图最短路径规划【含源码 1860期】

二、蚁群算法及栅格地图简介

随着机器人技术在诸多领域的应用, 如机器人协作焊接、灾后搜救、军事、太空探索、深海勘探、家用和服务行业等, 机器人的发展正向智能化方向延伸, 要求其具有自组织、自学习、自适应等能力.机器人路径规划是指机器人从初始位置按某种法则避开障碍物、无碰撞地到达目标位置.目前国内外对路径规划的研究应用较多的方法主要有:人工势场法、概率路径图法[3]、可视图法、栅格法、神经网络算法、遗传算法、粒子群算法、蚁群算法.

栅格法是将机器人的搜索空间分解成若干个规格相等单元, 将复杂的环境问题分解成简单问题, 适用于静态环境的路径规划, 且算法计算量小, 便于实现, 但在复杂的环境中, 易使规划时间延长, 系统的实时性不够.蚁群算法是一种新型的仿生算法, 以蚂蚁觅食为模型, 通过前代蚂蚁在走过的路径上遗留信息素的强弱选择路径.该算法有较好的正反馈性、并行性及鲁棒性;但当遇到复杂问题时, 会导致搜索时间长、陷入局部最优、停滞和死锁等情况.因此, 结合栅格法和蚁群算法的优缺点, 将栅格法与蚁群算法相结合进行路径规划, 先建立栅格地图, 再利用蚁群算法进行全局搜索, 可提高算法性能.

1 栅格模型建立
1.1 栅格法应用于路径规划的简介

栅格法是由W.E.Howden于1968年提出, 主要是根据环境建立一个路径栅格地图 (map) .基本原理是将机器人工作环境分割成无数细小的具有二值信息的网格单元, 每个网格的规格由机器人的步长决定, 即一个步长代表一个网格大小.在进行网格划分时, 无论是障碍物栅格还是非障碍物栅格不满一个时, 将其填满, 按一个栅格计算.

环境信息由黑白网格表示.黑色网格代表障碍物 (barrier) , 表示不可行区域;白色网格代表可通行区域, 又称自由区域.栅格法将不可行区域和自由区域用一个二进制矩阵表示, 矩阵中1代表障碍物, 0代表自由栅格, 由此在环境中建立一个可描述环境的路径规划地图.

1.2 栅格地图的建立
假设SP为机器人在二维空间中的一个规则的凸多边形运动场地, 将场地分解成M×N个栅格, 由自由栅格和障碍物栅格组成, 其运动方式主要为八叉树型形式.自由栅格的集合P={P1, P2, …, Pm}, 障碍物栅格的集合B={B1, B2, …, Bn}, 设A为机器人工作场地的栅格集合, 其表达式为A=P∪B.

本文根据实验场地建立一个10×10栅格地图, 如图1所示.图中栅格的序号集合C={1, 2, 3, …, 100}.假设1号位为初始位置Gstart, 100号位为目标位置Ggoal, 机器人从初始位置通过n次迭代搜索找到最优路径, 其中初始位置Gstart∈A且, 目标位置Ggoal∈A且, 规定初始位置与目标位置不重合, 在进行路径搜索时主要以八叉树型形式搜索.

2 蚁群算法的路径规划问题描述
2.1 基本蚁群算法的描述

蚁群算法是一种模仿蚁群觅食的仿生学算法, 其基本原理是将每台机器人看作蚂蚁群体中的一只蚂蚁.蚂蚁在进行路径搜索时通过蚁群在路径上遗留的信息素强度, 向其它蚂蚁传递信息, 实现机器人之间的信息交换.通常情况下路径是未知的, 蚂蚁在选择路径时一般根据概率Pkij (t) 随机选择.
在这里插入图片描述
其中:α为启发式因子;β是期望启发式因子;τij为机器人k从位置i到位置j这段路径上所留信息素强度;allowedk表示机器人未访问过的栅格的集合;ηij (t) 为启发式函数, 启发式函数的大小与i、j之间的距离有关, dij值越小, i, j之间的关系越亲密, 反之则疏远, 其表达式为
在这里插入图片描述
式中 (xi, yi) 为点的位置坐标, (xj, yj) 为点的位置坐标.

2.2 蚂蚁信息素更新
机器人在路径搜索的过程中会在路径上留下新的信息素, 随着时间推移留在路径上的信息素强度不断增加, 为避免在搜索路径上残留的信息素过多而淹没启发式信息, 因此, 当蚂蚁完成一次搜索时, 对所有路径上的信息素进行一次更新, 其表达式为
在这里插入图片描述
其中:1-ρ表示信息素残留因子, ρ表示信息素挥发系数;Δτij (t) 表示蚂蚁在本次循环中路径 (i, j) 上的信息素增量, Δτkij (t) 表示第k只蚂蚁经过路径 (i, j) 时在本次循环中的信息素增加量.根据信息素规则, 选择蚁周 (ant-cycle) 模型作为蚂蚁信息素更新模型.
在这里插入图片描述
式中, Q表示信息素强度, Lk表示第k只蚂蚁在本次循环中所有路径的总长度.

matlab_34">三、matlab版本及参考文献

1 matlab版本
2019b

2 参考文献
[1] 周东健,张兴国,马海波,李成浩,郭旭.基于栅格地图-蚁群算法的机器人最优路径规划[J].南通大学学报(自然科学版). 2013,12(04)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除


http://www.niftyadmin.cn/n/1018597.html

相关文章

二叉查找树 数组实现 ArrayBinarySearchTree

数组实现的二叉查找树 适用查找操作频繁,插入、删除操作较少的情况 代码 using System; namespace DataStructure {/*数组实现的二叉查找树输入一个数组,获得一颗二叉查找树找parent 和 child index的数值规律01,23,4,5,67,8,9,10,11,12,13,1415,16,1…

【Matlab VRP】模拟退火算法求解单中心多车辆路径规划问题【含源码 1072期】

一、代码运行视频(哔哩哔哩) 【Matlab VRP】模拟退火算法求解单中心多车辆路径规划问题【含源码 1072期】 二、模拟退火算法简介 1 模拟退火算法的原理 模拟退火算法(SA)是一种适用于大规模组合优化问题的有效近似算法&#xf…

SparkSQL 相关API

一、SQLContext.scala中的接口说明 大部分接口都是创建DataFrame 1、构造:SQLContext的构造只需要一个SparkContext参数 2、设置/获取 配置:setConf/getConf 3、isCached/cacheTable/uncacheTable/clearCache:数据缓存相关,提高查询速度&…

无向图 使用邻接表法 实现 LinkedUndigraph

实现 using System.Collections.Generic; namespace DataStructure {public class LinkedUndigraph : BaseSolution{HashSet<int> valueSet new HashSet<int>();Dictionary<int, Node> valToNode new Dictionary<int, Node>();List<Node> ver…

windows xcopy 复制文件夹命令 覆盖 或 跳过

xcopy 拓展的复制命令 复制目录和下面的文件&#xff0c;保持目录结构不能复制系统文件、隐藏文件xcopy 源路径 目标路径常用 复制并且覆盖 xcopy /y srcPath dstPath 复制目录和目录下文件并且对目录下的子目录和子目录的文件进行复制 xcopy /s srcPath dstPath 复合参数 xco…

spark core源码分析1 集群启动及任务提交过程

spark版本号&#xff1a;1.4.1 spark源码分析目的是在解读源码的过程中记录一些重要的步骤&#xff0c;加深自己的印象&#xff0c;或许也可以给别人提供一些帮助。 Standalone集群启动及任务提交过程详解 正常启动及job提交过程如下&#xff1a; 1. 启动master 2. 启动worker …

Unity Navigation 导航、寻路系统

Unity Navigation 导航、寻路系统 概述 了解Navigation的能力范围 Navication系统的构成 NavMesh 导航网格&#xff0c;是unity烘焙出来的数据 NavMesh Agents 帮助角色寻路 Off-Mesh Links 连接2点的组件&#xff0c;也可以用来跨越缝隙 NavMesh Obstacles 移动的或者不动…

Unity 固定渲染管线 shader (fixed function shader)

Unity 固定渲染管线 shader (fixed function shader) 指南 固定渲染管线无法编程计算&#xff0c;通过修改参数和配置进行渲染操作固定管线着色器已经过时学会unity shader的语法后主要借鉴OpenGL中的固定管线着色器来编写unity固定管线shader 掌握光照模型掌握各类渲染设置 …