基于A星算法的最优路径规划系统

合集下载

基于A星算法的移动机器人路径规划应用研究

基于A星算法的移动机器人路径规划应用研究

基于A星算法的移动机器人路径规划应用研究作者:周宇杭王文明李泽彬代宇浩徐宇豪柳晨阳来源:《电脑知识与技术》2020年第13期摘要:移动机器人路径规划一直是一个比较热门的话题,A星算法以及其扩展性算法被广范地应用于求解移动机器人的最优路径。

该文在研究机器人路径规划算法中,详细阐述了传统A星算法的基本原理,并通过栅格法分割了机器人路径规划区域,利用MATLAB仿真平台生成了机器人二维路径仿真地图对其进行仿真实验,并对结果进行分析和研究,为今后进一步的研究提供经验。

关键词:移动机器人;路径规划;A星算法;栅格法;MATLAB中图分类号:TP18 文献标识码:A文章编号:1009-3044(2020)13-0001-031背景路径规划是指在依靠特定的策略方法,符合一定的性能指标的前提下,从预先设定的起始点到达指定的目标点所形成的最佳路径。

随着科技水平的不断提高,路径规划技术得以在很多领域中广泛应用。

如小到游戏程序设计,大到巡航导弹的轨道路径;从农业中的田地精确测绘,到工业机器人设计;车辆道路行驶的GPS定位,室内扫地机器人路径规划,无人机的无障碍自主飞行和城市道路精准网格规划。

至此,随之衍生出各种路径规划方法,其中包括传统算法和智能算法。

由于传统算法所需的内存比较大,储存的空间也比较大,随着数目增加,实施难度将会逐步增大。

为了更好地研究路径规划问题,专注于智能算法,对其进行不断研究和改进,从而能够催生出新的智能算法。

比较常见的智能算法有遗传算法、人工势场法、蚁群算法等。

路径规划也有多种分类,可以根据机器人对当前环境信息掌握以及障碍物的情况,可以分为如下几种情况:1)机器人已经提前被告知周围的环境信息以及障碍物随机放置,处于静止不动的情况下,移动机器人做出相应的路径规划;2)机器人了解了当前的环境信息以及障碍物不断更新的情况下,做出合理的判断;3)机器人对于构建的环境信息处于未知但已知障碍点的情况下,进行合理的路径探索过程;4)机器人对于障碍物以及环境信息都未了解情况下,对结果进行精确的规划。

基于改进A星算法的无人车路径规划研究

基于改进A星算法的无人车路径规划研究

基于改进A星算法的无人车路径规划研究
缪殷俊;施卫
【期刊名称】《电脑知识与技术》
【年(卷),期】2024(20)3
【摘要】为了让无人车能够在复杂多变的环境中安全高效地行驶,现设计一种路径规划算法。

即对A星算法进行改进优化并应用到路径规划中,使其符合设计要求。

首先,通过对h(n)进行改进加入权重系数,然后,对搜索邻域进行优化,剔除多余的方向;其次,使用关键点提取策略去除冗余节点;最后,设置障碍物安全距离,避免无人车在路径规划中过度靠近障碍物产生碰撞风险。

对改进优化后的A星算法进行路径规划并与优化前的传统A星算法进行对比,实验结果表明,提出的改进算法可以明显提升整体效率。

【总页数】4页(P4-7)
【作者】缪殷俊;施卫
【作者单位】江苏理工学院机械学院
【正文语种】中文
【中图分类】TP301
【相关文献】
1.基于A星算法的无人机路径规划优化模型研究
2.基于改进A星算法对自动导引小车路径规划研究
3.基于改进D*Lite算法的无人车避障路径规划研究
4.基于改进
粒子群算法的多无人车协同侦察路径规划5.基于改进A星算法的无人机自主避障路径规划
因版权原因,仅展示原文概要,查看原文内容请购买。

利用Python实现A星算法路径规划

利用Python实现A星算法路径规划

利用Python实现A*算法路径规划一、A*算法介绍A*算法实际上是一种启发式算法,也是路径规划中应用最为普遍的算法之一。

A*算法并不是只用于路径规划,同时,路径规划中也不只有A*一种启发式方法。

A*算法相比其他路径规划算法,如遗传算法、蚁群算法等,其算法过程较为简单、易于理解,运行速度快。

而且,应用A*的路径规划结果也还不错。

因此,总体来说,A*算法应该是性价比较高的一种路径规划算法。

A*算法的基本思想是,对于当前的搜索点CNode,首先找到节点CNode的所有邻居节点,如四方向移动就有4个邻居节点,而八方向移动就有8个邻居节点;然后计算所有邻居节点的目标函数值f(x),路径规划中的目标函数即为从起点出发,经过当前节点到达终点的距离大小;最后,从所有邻居节点中选择f(x)值最小的节点,并重复上述过程,直到搜索到达终点。

下面,我们用伪代码将A*算法大体过程描述如下:step1:设置起点S,终点E,地图大小mapsize,障碍物集合Blockliststep2:将起点S添加到开放列表Openlist中step3:计算S的目标函数f(x)step4:查找Openlist中f(x)最小的节点,记为Nminstep5:将Nmin从Openlist中删除,并添加Nmin到封闭列表Closelist中step6:查找Nmin的所有邻居节点,得到集合Nliststep7:对于Nlist中的每个元素N,进行如下循环:step8: if N 属于 Closelist 或者 N 属于 Blocklist:step9:跳过该节点step10: if N不属于Openlist:step11:添加N到Openliststep12:设置节点N的父节点为Nminstep13:计算节点N的目标函数f(x)step14: else if N属于Openlist:step15:节点N以前计算过f(x),记原有的f(x)为f(x)_oldstep16:计算节点N以Nmin为父节点的新的目标函数f(x)_newstep17: if f(x)_new < f(x)_old:step18:设置节点N的父节点为Nminstep19:并且更新节点N的目标函数f(x) = f(x)_newstep20:转入step7,循环遍历列表Nlist中的所有邻居节点step21:转入step4,直到Openlist为空或者Nmin等于终点E这里着重说明一下A*算法中目标函数f(x)的计算。

a星算法预处理路径

a星算法预处理路径

a星算法预处理路径1. 引言a星算法(A* algorithm)是一种常用的路径搜索算法,广泛应用于人工智能、游戏开发等领域。

在进行路径搜索时,为了提高搜索效率和准确性,预处理路径是一种常用的优化方法。

本文将详细介绍a星算法以及预处理路径的概念和原理,并探讨预处理路径在路径搜索中的应用。

2. a星算法简介2.1 原理a星算法是一种启发式搜索算法,借助估算函数(称为启发函数)确定搜索方向和顺序。

它通过评估节点的代价函数来估计从起始节点到目标节点的最短路径,并逐步探索潜在的最优路径。

其主要思想是将节点划分为开放列表(存储待考虑的节点)和关闭列表(存储已考虑的节点),不断选择开放列表中代价最小的节点进行拓展直到找到目标节点或开放列表为空。

2.2 估算函数估算函数是a星算法的核心,用于评估节点的优先级。

常用的估算函数包括曼哈顿距离、欧几里得距离和切比雪夫距离等。

估算函数应该能够高效地估计节点到目标节点的代价,以提高搜索效率和准确性。

3. 预处理路径3.1 定义预处理路径是指在路径搜索之前,通过预先计算和存储节点之间的最短路径信息,以加速实际路径搜索过程。

它可以理解为对路径搜索问题的离线处理,通过空间换取时间,提高路径搜索的效率。

3.2 实现预处理路径的实现需要基于已有的地图信息,可以利用传统的图论算法,如Dijkstra算法或Floyd-Warshall算法,计算出任意两个节点之间的最短路径。

然后将计算结果存储在数据结构中,以便在路径搜索时进行快速查找。

预处理路径的时间复杂度较高,但由于只需执行一次,可以将计算结果保存以供多次使用,大大提高了实际路径搜索的效率。

3.3 应用预处理路径在实际路径搜索中有广泛的应用。

它可以用于快速寻找两个节点之间的最短路径,避免重复计算和重复查询的时间浪费。

预处理路径还可以用于路径规划、导航系统等领域,提高系统的响应速度和用户体验。

4. a星算法与预处理路径的结合4.1 思路将a星算法与预处理路径相结合,可以进一步提高路径搜索的效率。

一种基于改进A星算法的移动机器人路径规划方法[发明专利]

一种基于改进A星算法的移动机器人路径规划方法[发明专利]

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 201711374451.1(22)申请日 2017.12.19(71)申请人 昆明理工大学地址 650093 云南省昆明市五华区学府路253号(72)发明人 任玉洁 付丽霞 张勇 毛剑琳 (51)Int.Cl.G01C 21/34(2006.01)(54)发明名称一种基于改进A星算法的移动机器人路径规划方法(57)摘要本发明涉及一种基于改进A星算法的移动机器人路径规划方法,属于移动机器人路径规划领域。

本发明首先在静态障碍物环境中进行全局路径预规划;然后就全局路径预规划的路径点进行二次平滑处理,得到预规划路径;最后采用人工势场法与在静态障碍物环境中进行全局路径预规划的方法在遇到动态障碍物时进行局部路径规划。

本发明不再局限于栅格中点,在寻径过程中,连接当前节点与拓展节点,通过判断路径点连线与障碍物边线是否有交点检测障碍物。

权利要求书2页 说明书5页 附图4页CN 108253984 A 2018.07.06C N 108253984A1.一种基于改进A星算法的移动机器人路径规划方法,其特征在于:首先在静态障碍物环境中进行全局路径预规划;然后就全局路径预规划的路径点进行二次平滑处理,得到预规划路径;最后采用人工势场法与在静态障碍物环境中进行全局路径预规划的方法在遇到动态障碍物时进行局部路径规划。

2.根据权利要求1所述的基于改进A星算法的移动机器人路径规划方法,其特征在于:所述在静态障碍物环境中进行全局路径预规划具体为:步骤S1.1、首先进行初始化:创建open list和close list,pen list和close list初始值均为空,open list用来保存已经生成但是未使用的节点,close list用来保存障碍物和已经使用的节点;将障碍物加入close list;将起点设为当前节点;步骤S1.2、检测当前节点是否为目标点:如果是则根据父节点递推出路径,输出路径点;如果不是目标点则将当前节点的传统A星算法8个方向拓展节点加入open list,并将其与目标点方向步长为1个栅格的拓展节点加入open list;步骤S1.3、判断open list是否为空:如果为空,标记没有路径,结束算法;如果open list不为空,将计算出open list中总启发代价最小值点f(X)设为当前节点,将当前节点从open list移动到close list,记录其父节点,接着执行步骤s1.2,直到当前节点是目标点,输出路径点;f(X)= g(X)+ h(X);其中,X是当前节点,f(X)是当前节点的总启发代价;g(X)是起点到当前节点的实际路径代价,h(X)是当前节点到目标点的估计路径代价。

基于改进A星算法的仿生机器鱼全局路径规划

基于改进A星算法的仿生机器鱼全局路径规划

基于改进A*算法的仿生机器鱼全局路径规划摘要:针对传统A*算法搜索速度慢和规划路径不够优化的缺点,引入可扩展节点,对A*算法流程进行改进,以减少时间和空间复杂度,提高搜索效率,并对规划路径进行优化处理,以有效的缩短路径。

对存在凹形障碍物的地图,采用后退-尝试的方法解决路径规划的失败问题,使之绕过凹形障碍物取向目标点,达到输出最短路径的目标。

关键词:仿生机器鱼;路径规划;A*算法;可扩展节点;凹形障碍物Improved A* Algorithm Based Global Path Planning for Bio-mimeticRobotic FishAbstract:A* algorithm is improved to solve its low efficiency and non-optimal path. Introducing successor, the improved algorithm is simplified in its time and space complexity, and the planned path is optimized to make it shorter than before. Considering the concavity obstacles, the planning path may get stuck in concavity traps.A back-try method is given to solve the problem, is make the planning path round the trap instead of getting into it.Key words:bio-mimetic robotic fish;path planning;A * algorithm ;developed -nodes; concavity obstacle仿生机器鱼是模仿鱼类的游动机理,并结合机械、电子等方面学科,实现能够进行水下推进的机器人。

基于a星算法航迹规划流程

基于a星算法航迹规划流程

基于a星算法航迹规划流程英文回答:A algorithm, also known as A-star algorithm, is a popular pathfinding algorithm used in computer science and robotics. It is widely used in various applications, including navigation systems, video games, and autonomous vehicles.The basic idea behind the A algorithm is to find the shortest path between two points on a graph. It combines the advantages of both Dijkstra's algorithm and the Greedy Best-First Search algorithm. The A algorithm evaluates nodes based on two factors: the cost of reaching a node from the start node, known as the "g-score", and the estimated cost of reaching the goal node from the current node, known as the "h-score". The sum of these two scores is used to determine the priority of exploring a node.The A algorithm uses a priority queue to keep track ofthe nodes to be explored. It starts by adding the startnode to the priority queue with a priority of 0. Then, it repeatedly selects the node with the highest priority from the queue and explores its neighbors. For each neighbor,the algorithm calculates the g-score and h-score, and updates the priority queue accordingly. The algorithm continues until it reaches the goal node or the priority queue becomes empty.One of the key features of the A algorithm is itsability to make use of heuristics to guide the search. Theh-score, also known as the heuristic function, provides an estimate of the cost from the current node to the goal node. This heuristic function can be admissible, meaning it never overestimates the actual cost, or it can be consistent, meaning it satisfies the triangle inequality. The choice of heuristic function can greatly influence the performance of the algorithm.Let me illustrate the A algorithm with an example. Suppose we have a grid representing a map, where each cell can be either empty or blocked. We want to find theshortest path from the start cell to the goal cell. We can assign a cost of 1 to each movement from one cell to an adjacent cell. Additionally, we can use the Euclidean distance as the heuristic function.Here's how the A algorithm works in this example:1. Initialize the start cell with a g-score of 0 and calculate the h-score for the start cell.2. Add the start cell to the priority queue with a priority of 0.3. While the priority queue is not empty:Select the cell with the highest priority from the queue.If the selected cell is the goal cell, the algorithm terminates.Otherwise, explore the neighbors of the selectedcell:Calculate the g-score for each neighbor by adding the cost of moving from the selected cell to the neighbor.Calculate the h-score for each neighbor using the Euclidean distance.Update the priority queue with the new g-score and h-score for each neighbor.4. If the priority queue becomes empty before reaching the goal cell, there is no path from the start cell to the goal cell.The A algorithm guarantees to find the shortest path if the heuristic function is admissible. It is efficient and widely used in practice due to its ability to guide the search based on both the cost and the estimated cost to reach the goal. It is a powerful tool for pathfinding and navigation problems.中文回答:A算法,也被称为A星算法,是一种在计算机科学和机器人学中广泛应用的路径规划算法。

基于A星算法的最优路径规划系统

基于A星算法的最优路径规划系统

基于A*算法的最优路径规划系统XXXXXXXXX摘要:人工智能(Artificial Intelligence)是当前科学技术发展的一门前沿学科,同时也是一门新思想,新观念,新理论,新技术不断出现的新兴学科以及正在发展的学科。

本文将主要介绍人工智能在搜索方法上的应用,即基于A*算法的最优路径规划问题的解决方法。

A*算法是一种求解最短路径的有效方法,也是人工智能算法中一种简单的启发式搜索方法。

本文介绍了A* 算法的原理及实现机制,以及在搜索出的结点解空间集中,用A* 算法如何选择最优结点,最终求解出最短路径的过程。

关键词:人工智能;研究报告;模板本组成员:xxxxxxx本人分工:A*算法设计及实现1 引言人工智能是在计算机科学,控制论,信息论,神经心理学,哲学,语言学等多种学科研究的基础发展起来的,因此又可把它看作是一门综合性的边缘学科[1]。

它的出现及所取得的成就引起了人们的高度重视,并取得了很高的评价。

有的人把它与空间技术,原子能技术一起并誉为20世纪的三大科学技术成就。

人工智能学科研究的主要内容包括:知识表示、自动推理和搜索方法、机器学习和知识获取、知识处理系统、自然语言理计算机视觉、智能机器人、自动程序设计等方面。

本文主要介绍在路径规划问题上使用A*搜索算法来找到最优路径的设计与实现。

路径规划是指在旅行前或旅行中为驾驶员提供参考行驶路线的过程,是车辆定位与导航系统的基本功能之一针对陆地车辆导航的不同要求,在路径规划中可采取多种优化标准,如最短距离、最少行驶时间或收费。

本实验中将使用最短距离来寻找最优路径。

2 算法原理与系统设计2.1 A*算法的基本思想A*算法在人工智能中是一种典型的启发式搜索算法,通过选择合适的估价函数,指导搜索朝着最有希望的方向前进, 以求得最优解[2]。

A*算法中,关键是求估价函数:f(n)=g(n)+h(n).其中,g(n)是从起点u 到当前节点n 己付出的代价,h(n)是从当前节点n 到目标节点v 的代价估计函数,必须保证h(n) <=h’(n),其中h’(n)是从当前点到目标点的实际最小代价。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于A*算法的最优路径规划系统XXXXXXXXX摘要:人工智能(Artificial Intelligence)是当前科学技术发展的一门前沿学科,同时也是一门新思想,新观念,新理论,新技术不断出现的新兴学科以及正在发展的学科。

本文将主要介绍人工智能在搜索方法上的应用,即基于A*算法的最优路径规划问题的解决方法。

A*算法是一种求解最短路径的有效方法,也是人工智能算法中一种简单的启发式搜索方法。

本文介绍了A* 算法的原理及实现机制,以及在搜索出的结点解空间集中,用A* 算法如何选择最优结点,最终求解出最短路径的过程。

关键词:人工智能;研究报告;模板本组成员:xxxxxxx本人分工:A*算法设计及实现1 引言人工智能是在计算机科学,控制论,信息论,神经心理学,哲学,语言学等多种学科研究的基础发展起来的,因此又可把它看作是一门综合性的边缘学科[1]。

它的出现及所取得的成就引起了人们的高度重视,并取得了很高的评价。

有的人把它与空间技术,原子能技术一起并誉为20世纪的三大科学技术成就。

人工智能学科研究的主要内容包括:知识表示、自动推理和搜索方法、机器学习和知识获取、知识处理系统、自然语言理计算机视觉、智能机器人、自动程序设计等方面。

本文主要介绍在路径规划问题上使用A*搜索算法来找到最优路径的设计与实现。

路径规划是指在旅行前或旅行中为驾驶员提供参考行驶路线的过程,是车辆定位与导航系统的基本功能之一针对陆地车辆导航的不同要求,在路径规划中可采取多种优化标准,如最短距离、最少行驶时间或收费。

本实验中将使用最短距离来寻找最优路径。

2 算法原理与系统设计2.1 A*算法的基本思想A*算法在人工智能中是一种典型的启发式搜索算法,通过选择合适的估价函数,指导搜索朝着最有希望的方向前进, 以求得最优解[2]。

A*算法中,关键是求估价函数:f(n)=g(n)+h(n).其中,g(n)是从起点u 到当前节点n 己付出的代价,h(n)是从当前节点n 到目标节点v 的代价估计函数,必须保证h(n) <=h’(n),其中h’(n)是从当前点到目标点的实际最小代价。

2.2 A*算法的步骤A*算法的搜索步骤如下:(1)给起始节点标记,对它的没有标记过的子节点进行扩展;(2)对每一个子节点计算评价函数值,按评价值的大小进行排列,找出评价值最小的节点,并给它作标记,如果当前节点就是目标节点,则停止搜索。

(3)否则,对最新被标记的节点进行第(2)步处理,并记录最短路径。

2.3算法分析A*算法是利用对问题的了解和对问题求解过程和解的了解,寻求某种有利于问题求解的启发信息,从而利用这些启发信息去搜索最优路径它不用遍历整个地图,而是每一步搜索都根据启发函数朝着某个方向搜索当地图很大很复杂时,它的计算复杂度大大优于算法,是一种搜索速度非常快、效率非常高的算法。

但是,相应的A*算法也有它的缺点,启发性信息是人为加入的,有很大的主观性,直接取决于操作者的经验,对于不同的情形要用不同的启发信息和启发函数,且他们的选取难度比较大,很大程度上找不到最优路径。

2.4 系统设计系统的实现流程图如图2.1所示。

图2.1 系统的实现流程图首先判断初始结点的周围8个结点是否有障碍点,从除障碍点以外的结点中求解出代价最小的结点,并加入到结果列表中。

求解结点代价是根据A*算法的估价函数f(n)=g(n)+h(n)。

其中g(n)是从起始结点到当前节点n 己付出的代价,h(n)是从当前节点n 到目标节点的代价估计。

对于本实验中,设计的g(n)=10(当前结点与起始结点在同一水平线或者竖直线上。

如图2.2中,初始结点,即蓝结点与1、3、5、7结点之间的代价即为10。

)g(n)=14(当前结点与起始结点在同一对角线上时。

如图2.2中,初始结点,即蓝结点与0、2、4、6结点之间的代价即为14。

)对于本实验中,h(n) = (当前结点与目标结点之间横坐标格数+ 当前结点与目标结点之间纵坐标格数) * 10。

如图2.2中,当前结点依次为0、1、2、3、4、5、6、7,分别与红色目标结点求解h(n)。

图2.2 搜索图每次求解出的8个h(n),比较大小,选出最小的结点作为起始节点继续搜索。

直到遇到目标结点便结束搜索,画出求解出的最优路径。

3 系统实现void CAxingTestDlg::ExecuteCalculate(RectIndex RI[], RectIndex * resultRI, bool * find) {//判断8个相邻点里是否有障碍点for (int i = 0; i < 8; i++){for (int j = 0; j < blockPointNum; j++){if (RI[i].m == blockIndexM[j]&&RI[i].n == blockIndexN[j])//有障碍点{RI[i].weight = 10000;}}}//得到权值最小的点int minWeight=10000, minweightIndexM,minweightIndexN;for(int i = 0; i < 8; i++){minWeight = min(minWeight,RI[i].weight);}resultRI->weight = minWeight;for(int i = 0; i < 8; i++)//获得权值最小点的坐标{if (RI[i].weight == minWeight){minweightIndexM = RI[i].m;minweightIndexN = RI[i].n;}}resultRI->m = minweightIndexM;resultRI->n = minweightIndexN;pathPointIndex[pathPointIndexSub].m = resultRI->m;//存储路径pathPointIndex[pathPointIndexSub].n = resultRI->n;pathPointIndex[pathPointIndexSub].weight = resultRI->weight;//存储当前遍历点的权值totalWeigeht += pathPointIndex[pathPointIndexSub].weight;pathPointIndexSub++;//判断8个相邻点是否有目标点for (int i = 0; i < 8; i++){if (RI[i].m == endRectIndex.m&&RI[i].n == endRectIndex.n){*find = true;break;}}}void CAxingTestDlg:: GetAroundPoint(RectIndex RI0, RectIndex RI[])//获得邻接点坐标,同时计算权值{int i = RI0.m;int j = RI0.n;int postM,postN;RI[0].m = i-1;RI[0].n = j-1;postM = (i-1)>endRectIndex.m?(i-1-endRectIndex.m):(endRectIndex.m-(i-1));postN = (j-1)>endRectIndex.n?(j-1-endRectIndex.n):(endRectIndex.n-(j-1));RI[0].weight = (postM+postN)*10 + 14;RI[1].m = i-1;RI[1].n = j;postM = (i-1)>endRectIndex.m?(i-1-endRectIndex.m):(endRectIndex.m-(i-1)); postN = j>endRectIndex.n?(j-endRectIndex.n):(endRectIndex.n-j);RI[1].weight = (postM+postN)*10 + 10;RI[2].m = i-1;RI[2].n = j+1;postM = (i-1)>endRectIndex.m?(i-1-endRectIndex.m):(endRectIndex.m-(i-1)); postN = (j+1)>endRectIndex.n?(j+1-endRectIndex.n):(endRectIndex.n-(j+1)); RI[2].weight = (postM+postN)*10 + 14;RI[3].m = i;RI[3].n = j-1;postM = i>endRectIndex.m?(i-endRectIndex.m):(endRectIndex.m-i);postN = (j-1)>endRectIndex.n?(j-1-endRectIndex.n):(endRectIndex.n-(j-1)); RI[3].weight = (postM+postN)*10 + 10;RI[4].m = i;RI[4].n = j+1;postM = i>endRectIndex.m?(i-endRectIndex.m):(endRectIndex.m-i);postN = (j+1)>endRectIndex.n?(j+1-endRectIndex.n):(endRectIndex.n-(j+1)); RI[4].weight = (postM+postN)*10 + 10;RI[5].m = i+1;RI[5].n = j-1;postM = (i+1)>endRectIndex.m?(i+1-endRectIndex.m):(endRectIndex.m-(i+1)); postN = (j-1)>endRectIndex.n?(j-1-endRectIndex.n):(endRectIndex.n-(j-1)); RI[5].weight = (postM+postN)*10 + 14;RI[6].m = i+1;RI[6].n = j;postM = (i+1)>endRectIndex.m?(i+1-endRectIndex.m):(endRectIndex.m-(i+1)); postN = j>endRectIndex.n?(j-endRectIndex.n):(endRectIndex.n-j);RI[6].weight = (postM+postN)*10 + 10;RI[7].m = i+1;RI[7].n = j+1;postM = (i+1)>endRectIndex.m?(i+1-endRectIndex.m):(endRectIndex.m-(i+1)); postN = (j+1)>endRectIndex.n?(j+1-endRectIndex.n):(endRectIndex.n-(j+1)); RI[7].weight = (postM+postN)*10 + 14;if (i-1 < 0){RI[0].weight = 10000;RI[1].weight = 10000;RI[2].weight = 10000;}if (j-1 < 0){RI[0].weight = 10000;RI[3].weight = 10000;RI[5].weight = 10000;}if (i+1 > nRows-1){RI[5].weight = 10000;RI[6].weight = 10000;RI[7].weight = 10000;}if (j+1 > nCols-1){RI[2].weight = 10000;RI[4].weight = 10000;RI[7].weight = 10000;}}4 实验或测试结果在界面上设置初始节点(初始结点只能设置一个),设置若干障碍结点,设置终止结点(终止结点只能设置一个)。

相关文档
最新文档