ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:169.43KB ,
资源ID:6181636      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6181636.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(算法设计原则.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

算法设计原则.docx

1、算法设计原则算法设计原则:1)与任何障碍物不发生碰撞;2)路径尽可能短,运行时间尽可能少;3)应与障碍物保持一定的安全距离;4)路径曲线尽可能平滑。1.环境信息与编码:为了模拟机器人的工作环境,需要对其工作空间建立模型来表示。只考虑机器人工作空间的平面状况,不考虑高度问题,本论文采用栅格法划分机器人的工作空间,将机器人工作环境分解成一系列具有二值信息的网格单元。假设机器人的工作空间可以用二维平面图形表示,而且障碍物的尺寸、大小和位置己知,在机器人运动过程中障碍物的位置不发生变化。为了方便起见,机器人的工作空间用正方形表示(不是正方形时,可以扩大障碍物,将工作空间填充成正方形),用尺寸相同的栅格

2、将工作空间划分(栅格的大小以机器人通过为准)。在二维空间中采用栅格法来建立机器人的工作空间模型,按照机器人及工作空间的大小来确定栅格的数目,以保证机器人可以在其中自由移动。栅格的标识也就是栅格的编码方法有下述两种方法:直角坐标法。如图所示,以栅格阵左下角为坐标原点,水平向右为x轴正方向,竖直向上为y轴正方向,每一栅格区间对应坐标轴上的一个单位长度。任一栅格均可用直角坐标(x,y)唯一标识。序号法。如图1所示,按从左到右,从下到上的顺序,从栅格阵左下角第一个栅格开始,给每一个栅格一个序号p(从零开始计),则序号p与栅格块 图1 用直角坐标系建立的栅格用序号法对每个小栅格进行编号,其中每个编号P都

3、与其直角坐标一一对应,其映射关系为p=x+10y (1-1)而在MATLAB语言中,x和y与P的关系为x=rem (p,10) (1-2)y=fix (P,10) (1-3)其中,rem表示取余操作,fix表示取整操作。对已建立的栅格加入序号编码后的图形见图1。因为遗传算法在搜索和优化上具有的优势,所以采用遗传算法来进行机器人路径的规划。用遗传算法对机器人的路径进行规划时,可将直角坐标法同序号法相结合使用,根据条件的不同按照映射关系进行变换。这样既减少了个体长度及编码的复杂度,又可以保证机器人处于栅格中心位置,避免了与其周围障碍物的碰撞。为了使每次的路径寻优都尽量向接近目标点的方向运动,当前栅

4、格邻接方位的位置显得极为重要。对于8个邻接方位,8个方位分别为:右下,右,右上,上,左上,左,左下,下。方位距离表示当前栅格到它的邻接栅格的距离,定义为两个栅格之间的中心距离。可以看出,当前栅格和它相邻的8个方位的距离为定义为 (1-4)由于地图的表示有两种方式,有序号法,如上所述,和直角坐标法。因此,在机器人地图的表示中,需要一个结构来表示这两种表示方法的对应关系。typedef struct GridDPOINT m_left_up;DPOINT m_left_down;DPOINT m_right_up;DPOINT m_right_down;DPOINT m_center;int pr

5、operty;int serial_ number;GRID ,*PGRID;在结构GRID中,以栅格的四个顶点,一个中心点栅格属性以及栅格序号表示一个栅格的信息。其中,栅格的四个顶点为:左上点m_left_up,左下点m_left_down,右上点 m_right_up,右下点m_right_down ,DPOINT也是一个结构表示地图中点的坐标double s_X;double s_Y;栅格中心点为m_center,整数property表示此栅格为自由栅格还是障碍栅格。如果是自由栅格property=0,否则property=1。整数serial_ number表示每个栅格的序号。图1中,

6、灰色格为障碍栅格。 2.算法流程2.1改进的初始种群遗传算法与传统搜索算法不同,遗传算法在运算开始需要随机产生一组初始解,称作初始种群。结合本章的机器人路径规划考虑,初始种群中的每个解,必须满足两个条件:一是栅格的连续性,它确保了种群的可行性;二是随机性,它保证了初始种群尽可能分布在搜索空间中每一个区域,体现遗传算法的全局最优性。本算法中初始种群的产生方法主要有以下特点:(1)采用不等长染色体,每条染色体都是“起点”和“终点”之间的一条连续栅格代码,因此,采用不等长染色体比较合理。(2)采用A*算法产生初始种群。在“起点”和“终点”之间随机插入一个或多个中间点,然后,采用A*算法在这些点之间填

7、充连续栅格,使之成为可行的初始解;这种方法产生的初始解更接近于最优解,大大提高了收敛速度。在讨论初始种群前,首先给出连续的相邻栅格定义:定义1 连续的相邻栅格 如图2.1所示,地图中与栅格N相邻的有八个栅格,分别是N-Nraw-1 ,N-Nraw ,,N-Nraw+1, N -1 ,N +1 ,N +Nraw-1 ,N +Nraw,N +Nraw+1,其中Nraw为每行中的最大栅格数目。若满足公式(2-1) ,N-Nraw-1 称为N 的连续栅格;式中(N-Nraw-1)N表示N-Nraw-1 是N 的连续的相邻栅格,其条件是N- Nraw和N-1 至少有一个为自由栅格,即它们的属性为0,且N

8、-Nraw-1 必须为自由栅格。同理,式(2-2) (2-3) (2-4) (2-5)表明其它相邻的七个栅格称为N 的连续的相邻栅格的条件。图2.1 连续的相邻栅格定义 (2-1) (2-2) (2-3) (2-4) (2-5)设栅格环境为,栅格总数为n,假定种群中个体数目为pop_size。第t代的第i 条染色体表示为,;每条染色体由m个实数构成,染色体可以表示成m维的行向量即;这样第t代的种群Xt可以表示为一个向量集。机器人的起点“Nstart” , 终点“Ngoal”,“Nstart”和“Ngoal”为整数。分别代表起点和目标所在栅格的代码。下面讨论初始种群产生步骤:Step1: 确定染

9、色体的条数即确定种群大小pop_sizeStep2: 确定染色体的起始和末尾基因:由于机器人路径规划的任务是从确定的起点到确定的终点。因此,可以将机器人的起点Nstart 始终作为染色体的第一个基因,终点Ngoal 始终作为染色体的最后一个基因,即=Nstart, =Ngoal这样可以缩小遗传算法的搜索空间。Step3: 确定起点到终点的一组染色体大小为pop_size:Step3-1: 确定起点到终点的第一条染色体:从Nstart 开始,根据连续的相邻栅格原则,从与之相邻的八个栅格中,选取一个自由栅格作为此染色体的第二个基因;然后从围绕第二个基因的八个基因中,选取一个自由栅格作为此染色体的第

10、三个基因;依此类推,直到Ngoal 为止;选取原则有两个:一是该栅格的代码与已有的代码不重复(不重复原则),见公式(2-6);二是即将选取的栅格到目标栅格的距离d(Nnew, Ngoal)最短,见公式(2-7): (2-6)(2-7)Step3-2: 确定起点到终点的第i条染色体(1i pop_size)。在起点“Nstart ”到终点“Ngoal ”之间,随机插入i -1个“1n-1”之间的整数(不包含起点Nstart 和终点Ngoal ),将这i-1 个整数按距离起点Nstart 的远近排序,距Nstart 越近,排名越靠前,得到,因此,得到包括起点和终点在内的不连续栅格序列为; 然后将这

11、些不连续的栅格变为连续的栅格,每两个不连续栅格和变为连续栅格的方法是满足公式(2-8) 所示的A*算法,即栅格Nj,i 到所选栅格N 的距离,与栅格N 到栅格的距离和最短;另外还要考虑Step3-1 的不重复原则,将序列中的断点补齐。到此为止,第i 条染色体形成; (2-8)Step3-3: 以此类推共得到pop_size 条染色体。Step4 :在产生染色体过程中,还需要注意一些细节问题。例如,由于要求基因的无重复性,在Step3-2 中产生初始种群时可能陷入死锁,即无法生成连续栅格序列,例如下图所示情况,判断生成种群的死锁方法:是当前栅格的周围无自由栅格点,而且当前点不是终点;解决方法是重

12、复执行Step3-2 直到成功产生新的染色体。 图2.2 无连续栅格情况2.2 适应度函数:在遗传算法中,个体适应度的大小决定该个体被遗传到下一代群体中的概率,适应度函数的选择在遗传算法中是相当重要的,它是引导遗传算法问题最优解逼近的关键因素。适应度函数的选取直接影响遗传算法的计算效率和计算时间。本文的适应度函数取路径长度的倒数。路径越长,适应度就越小;路径越短,适应度越大。这样,适应度越大(路径越短)的个体被淘汰的可能性就越小。 (2-9)式中eval(Pi)表示染色体的适应值。f(Pi)表示机器人的目标函数。机器人路径优化的目标函数可取为机器人行走路径的总长度最短。设机器人经过的路径为栅格

13、,则机器人目标函数为: (2-10)式中: Pi 为染色体。Num_Chromosome 为染色体长度,表示第i组染色体中的栅格到栅格的距离,可以认为是两栅格中心的距离。以适应度函数为评价指标,就可以从每代种群中选择优秀的染色体并将它们保存下来。2.3 遗传算子:2.3.1 选择操作:选择算子也称复制(reproduction)算子,它的作用在于根据个体的优劣程度,保留适应性好的染色体,淘汰适应性差的染色体。一般地说,通过选择,将保证当前种群中具有较高适应值的个体,以较大的概率通过复制和繁衍,生成新的种群,而适应度小的个体将被淘汰。本算法采用竞争策略,令交叉产生的子代染色体按适应度优劣进行竞争

14、,从中选出优胜个体进入下一代种群,直到种群充满为止。下面首先介绍一下转轮法,这是一种正比选择策略,能根据与适值成正比的概率选出新种群,步骤如下:Step1: 分别计算每一个染色体的累积概率 (2-11)式中eval(xk)为第k 个染色体适应值,分母为所有适应值的和。Step2:在0,1区间随机产生pop_size 个均匀分布的伪随机数riStep3:对每一个ri, 若ri 小于qi, 则从子代染色体中选染色体xi ,否则选第k个染色体,使成立,作为第i 对染色体中的第1个染色体。Step5:从第i对染色体中选取适应值高的染色体作为下一代种群的第i个染色体。Step6:重复Step3,直到充满

15、种群得到尺寸为pop_size 的新种群。2.3.2 交叉算子: 交叉操作是结合来自父代交配种群中的信息产生新的个体,通常有单点交叉、多点交叉、均匀交叉等几种方法。此处选择单点不等长交叉的方法。只要两条路径通过相同的栅格,就可以进行交叉。如果相同的栅格不止一个,则在这些相同的栅格中任选一个进行交叉;如果没有相同的栅格,则不进行交叉。用交叉后的子代个体代替原种群中的父代个体,产生新的种群。这样,有效地避免了染色体中出现新断点和重复栅格。交叉算子流程: 图2.3 交叉运算FOR cross_num = 1 TO Pcpop_size BEGIN /按交叉率Pc 确定交叉次数并作循环Pos1rand

16、%(pop_size) /在1 pop_size 中随机选一个数作为交叉染色体1 的位置Pos2rand%(pop_size) /在1 pop_size 中随机选一个数作为交叉染色体2 的位置Posi same grid /发现相同栅格将相同点位置存入posi,i=1,2, mirand%(m) /在m 个相同点中随机产生一个数作为交叉点Ppos1 Cross with Ppos2 at Nposi /位置在Pos1 和Pos2 的染色体在点Nposi进行交叉运算Replace the 2 worst chromosomes /新染色体取代两个适应值最差的旧染色体END FOR2.3.3 变异

17、操作:变异操作是通过随机改变染色体的某些基因来引入新个体,对于增加种群多样性起着关键作用,经过变异的解是否变得更好并不重要。路径规划中的变异算子,分三种操作方式,即从个体中随机删除一个序号(不包括起始点、终止点序号);或从个体中随机选取一点,插入一个新序号;或在个体中随机选取一个序号,用另一个随机产生的序号代替它。显然,这三种变异算子都有可能产生间断路径。通过实验,我们发现可行路径变异后所得到的新路径为不可行路径。本章提出一种新的变异算子,让系统不断增加新的染色体,并能保持与次优解接近。具体方法是按变异率Pm 从种群中选取pop_size*Pm个优秀染色体;在每一个染色体中,随机抽取k个不连续

18、基因,将这k个基因和染色体的起点和终点,构成一个染色体的基本构架。然后按照2.1节所述的距离最短原则和不重复原则,使之连续化,形成新的染色体,并以之取代种群中适应值最差的pop_size *Pm个染色体。图 3以k=1 为例描述了变异运算: 图2.4 变异运算2.4 终止条件:本章采取最佳适值过半原则,它的含义是当种群中一半以上的染色体达到相同的适应度,且种群的适应值不变,则可以确定染色体的发展方向并将之作为停止条件。2.5 流程综上所述,机器人在静态环境下路径规划的主要程序框架为:maing=draw(m,m) /将机器人工作空间画出栅格mark=number(m,m) /将栅格编号S=area(x,y) /将障碍物标识在机器人工作空间中oldpop=zeros(pop_size,lengthchromosome)/随机生成初始种群bestpath=ga(oldpath) /采用遗传算法优化生成的路径plot(x,y) /在机器人工作空间中画出最优路径图end 3 实验仿真路径规划是寻找满足安全和平滑条件下的最优路径,因此个体的适应度函数值越小,则该路径越好。为了获得最优路径,根据本文中给出的算法,利用MATLAB分别对交叉率、变异率等参数的不同取值进行了比较选择。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1