著录项信息
专利名称 | 基于自适应变异遗传算法的动态飞行路径规划方法 |
申请号 | CN201110030221.X | 申请日期 | 2011-01-27 |
法律状态 | 权利终止 | 申报国家 | 暂无 |
公开/公告日 | 2011-06-01 | 公开/公告号 | CN102081752A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06N3/12 | IPC分类号 | G;0;6;N;3;/;1;2查看分类表>
|
申请人 | 西北工业大学 | 申请人地址 | 陕西省西安市友谊西路127号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 西北工业大学 | 当前权利人 | 西北工业大学 |
发明人 | 符小卫;高晓光;陈军;李波 |
代理机构 | 西北工业大学专利中心 | 代理人 | 顾潮琪 |
摘要
本发明公开了一种基于自适应变异遗传算法的动态飞行路径规划方法,随机生成初始种群并计算其适应度,统计种群中可行解E(t)并进行精英保留操作,对非可行解S(t)进行交叉、变异、插入、删除操作,计算操作过后的E(t)和S(t)组成的过渡种群的适应度;用E(t)单点随机变异得到的个体和随机生成的个体中的可行解,替换过渡种群的不可行解;判断是否进化到根据问题复杂程度选取的代数或者种群已收敛;若是,则种群中最优个体就是规划出来的飞行路径。本发明可以提高种群的多样性和收敛能力,可以为动态飞行路径规划这样的随时间变化的动态优化问题提供一种可行的解决途径。
1.一种基于自适应变异遗传算法的动态飞行路径规划方法,其特征在于包括下述步骤:
第一步:随机生成初始种群P(t),t=0;飞行路径的编码直接使用导航点编码方式,即一条染色体就对应于一条飞行路径,染色体基因位的取值就是空间一个点(xk,yk);在每一代种群中,每一条染色体的第一个基因位的取值都是飞行器初始位置(xs,ys),最后一个基因位的取值都是目标点位置(xg,yg);
第二步:计算初始种群适应度 其中,g(x,y)表示约束条
件,J(x,y)表示目标函数;在本发明中,把飞行路径与障碍物之间的碰撞代价看作是约束条件,把飞行路径长度当作目标函数;
第三步:统计种群P(t)中可行解的数量,记作nfeasible(t);P(t)中的可行解集合记为E(t),非可行解集合记为S(t);计算rei(t)和rri(t),分别表示第t代种群精英变异和随机变迁相对于种群规模的比率,取rei(0)=0和rri(0)=1;
rri(t)+rei(t)=(n-nfeasible(t))/n
t-1代种群中的精英变异和随机变迁得到的个体总数为第t代种群中不可行解的数量,把这些个体和第t代种群中不可行解比较,保留适应度小的n-nfeasible(t)个个体到t+1代种群,其中,nelitist(t)表示当代种群中有多少个可行解保留到下代种群,n表示种群规模;
第 四 步:对 E(t) 进 行 精 英 保 留 操 作, 精 英 保 留 算 子
第五步:对S(t)进行交叉、变异、插入、删除操作;
第六步:计算操作过后的E(t)和S(t)组成的过渡种群P'(t)的适应度;
第七步:通过E(t)单点随机变异得到rei(t)×n个个体,并计算它们的适应度;
第八步:随机生成rri(t)×n个个体,并计算它们的适应度;
第九步:用上述rei(t)×n加rri(t)×n个个体中的可行解,替换P'(t)中的不可行解;
第十步:令P(t+1)=P'(t),由第t代种群进入第t+1代种群;
第十一步:判断是否进化到根据问题复杂程度选取的代数,或者种群已收敛;如果是,结束运行,这时候种群中最优个体就是规划出来的飞行路径;如果不是,转到第三步。
2.根据权利要求1所述的基于自适应变异遗传算法的动态飞行路径规划方法,其特征在于:所述的交叉采用单点交叉的方法,在种群中随机选择两个个体,并选择一个交叉点,交换两个个体在交叉点后面的部分基因位,得到两个新个体。
3.根据权利要求1所述的基于自适应变异遗传算法的动态飞行路径规划方法,其特征在于:所述的变异采用单点随机变异,在种群中随机选择一个个体,并随机选择一个变异位,随机改变这个变异位的取值,得到一个新个体。
4.根据权利要求1所述的基于自适应变异遗传算法的动态飞行路径规划方法,其特征在于:所述的插入采用随机插入算法,在种群中随机选择一个个体,并随机选择一个插入点,在这一点插入一个基因位,这个基因位随机取值,得到一个新个体。
5.根据权利要求1所述的基于自适应变异遗传算法的动态飞行路径规划方法,其特征在于:所述的删除采用随机单基因位删除算子,在种群中随机选择一个个体,并随机选择一个基因位,删除这个基因位,得到一个新个体。
基于自适应变异遗传算法的动态飞行路径规划方法\n技术领域\n[0001] 本发明涉动态优化技术领域,以及飞行器路径规划技术领域。\n背景技术\n[0002] 动态飞行路径规划是指在环境中存在运动障碍,或者存在事先未知障碍情况下的实时飞行路径规划。由于外部环境随着时间在变化,因而动态飞行路径规划实际上是一个动态优化问题。用遗传算法解决动态优化问题是一项具有挑战性的工作。\n[0003] 现有基于遗传算法解决动态优化问题的方法中,很多都用到了随机变迁方法和精英变异方法。随机变迁方法是通过随机生成的个体,取代种群中原有的部分个体,以提高种群的多样性。精英变异方法是用上代种群中的精英个体通过变异取代种群中的最差个体的方法,这种变异的个体有更强的当前环境的适应性。\n[0004] 随机变迁方法和基本遗传算法初始种群的生成一样,由于个体也是随机产生的,虽然能在一定程度上增加种群的多样性,但不能利用现有种群的优良个体信息,会削弱算法的收敛能力,所以,基于随机变迁的遗传算法不适合于解决实时性要求强的动态飞行路径规划问题。\n[0005] 精英变异虽然可以提高个体对当前环境的适应性,但这种机制存在的问题一方面是可能降低种群多样性,使得种群有可能收敛于局部最优解,另一方面,对于有些优化问题,比如,动态飞行路径规划问题,可能在开始的几代种群中根本就不存在可行解,更不用说精英解了。所以,基于精英变异方法的遗传算法也不适合于解决动态飞行路径规划问题。\n发明内容\n[0006] 为了克服现有技术不适合解决动态飞行路径规划问题的不足,本发明提供一种基于自适应变异遗传算法的动态飞行路径规划方法,可以根据当前种群中可行解的数量,自适应地把随机变迁和精英变异动态相结合,提高种群的多样性和收敛能力,为动态飞行路径规划这样的随时间变化的动态优化问题提供一种可行的解决方案。\n[0007] 本发明解决其技术问题所采用的技术方案包括以下步骤:\n[0008] 第一步:随机生成初始种群P(t),t=0;飞行路径的编码直接使用导航点编码方式,即一条染色体就对应于一条飞行路径,染色体基因位的取值就是空间一个点(xk,yk)。在每一代种群中,每一条染色体的长度可以是不同的,但它们的第一个基因位的取值都是飞行器初始位置(xs,ys),最后一个基因位的取值都是目标点位置(xg,yg)。\n[0009] 第二步:计算初始种群适应度 其中,g(x,y)表示约束\n条件,J(x,y)表示目标函数;在本发明中,把飞行路径与障碍物之间的碰撞代价看作是约束条件,把飞行路径长度当作目标函数。\n[0010] 因此,当g(x,y)=0,即飞行路径与障碍物没有发生碰撞时,适应度函数的取值为飞行路径长度;对应的飞行路径称为可行路径,或称为动态优化问题的可行解;\n[0011] 当g(x,y)≠0,即飞行路径与障碍物发生碰撞时,适应度函数的取值为无穷大;对应的飞行路径称为不可行路径,或称为动态优化问题的不可行解。\n[0012] 对于动态飞行路径规划问题,需要求最小适应度对应的飞行路径(由第二步适应度函数定义可知,由于适应度为飞行路径长度,所以最小适应度就是最短飞行路径长度,对应的是路径长度最短的飞行路径。)。\n[0013] 第三步:统计种群P(t)中可行解的数量,记作nfeasible(t);P(t)中的可行解集合记为E(t),非可行解集合记为S(t);计算rei(t)和rri(t),分别表示第t代种群精英变异和随机变迁相对于种群规模的比率,取rei(0)=0和rri(0)=1。\n[0014] \n[0015] \n[0016] rri(t)+rei(t)=(n-nfeasible(t))/n\n[0017] t-1代种群中的精英变异和随机变迁得到的个体总数为第t代种群中不可行解的数量,把这些个体和第t代种群中不可行解比较,保留适应度小的n-nfeasible(t)个个体到t+1代种群。其中,nelitist(t)表示当代种群中有多少个可行解保留到下代种群。n表示种群规模。\n[0018] 第 四 步:对 E(t) 进 行 精 英 保 留 操 作,精 英 保 留 算 子[0019] 第五步:对S(t)进行交叉、变异、插入、删除操作;\n[0020] 所述的交叉采用单点交叉的方法,在种群中随机选择两个个体,并选择一个交叉点,交换两个个体在交叉点后面的部分基因位,得到两个新个体。\n[0021] 所述的变异采用单点随机变异,在种群中随机选择一个个体,并随机选择一个变异位,随机改变这个基因位的取值,得到一个新个体。\n[0022] 所述的插入采用随机插入算法,在种群中随机选择一个个体,并随机选择一个插入点,在这一点插入一个基因位,这个基因位随机取值,得到一个新个体。\n[0023] 所述的删除采用随机单基因位删除算子,在种群中随机选择一个个体,并随机选择一个基因位,删除这个基因位,得到一个新个体。\n[0024] 第六步:计算操作过后的E(t)和S(t)组成的过渡种群P′(t)的适应度;\n[0025] 第七步:通过E(t)单点随机变异得到rei(t)×n个个体,并计算它们的适应度;\n[0026] 第八步:随机生成rri(t)×n个个体,并计算它们的适应度;\n[0027] 第九步:用上述rei(t)×n加rri(t)×n个个体中的可行解,替换P′(t)中的不可行解;\n[0028] 第十步:令P(t+1)=P′(t),t=t+1;\n[0029] 第十一步:判断是否进化到一定代数(代数根据问题复杂程度选取。),即t>ng,或者种群已收敛;如果是,结束运行,这时候种群中最优个体就是规划出来的飞行路径;如果不是,转到第三步。\n[0030] 本发明的有益效果是:由于可以在上述第三步至第九步中根据当前种群中可行解的数量,自适应地把随机变迁和精英变异动态相结合,因此,本发明可以提高种群的多样性和收敛能力,可以为动态飞行路径规划这样的随时间变化的动态优化问题提供一种可行的解决途径。\n[0031] 下面结合附图和实施例对本发明进一步说明。\n附图说明\n[0032] 图1是本发明的流程图;\n[0033] 图2是交叉算子示意图;\n[0034] 图3是变异算子示意图;\n[0035] 图4是插入算子示意图;\n[0036] 图5是是删除算子示意图;\n[0037] 图6是规划问题算例示意图;\n[0038] 图7是约束条件示意图;\n[0039] 图8是静态环境下的飞行路径规划结果;\n[0040] 图9是静态环境下基本遗传算法和自适应变异遗传算法收敛性比较;\n[0041] 图10是不同种群规模下基本遗传算法和自适应变异遗传算法对于静态飞行路径规划问题的收敛时间比较;\n[0042] 图11是迭代30步时的动态环境下基于自适应变异遗传算法的飞行路径规划结果;\n[0043] 图12是当满足终止条件时的动态环境下基于自适应变异遗传算法的飞行路径规划结果;\n[0044] 图13动态环境下基本遗传算法和自适应变异遗传算法收敛性比较。\n具体实施方式\n[0045] 对于动态飞行路径规划这样的动态优化问题,由于用传统的基于随机变迁和精英变异的方法不能取得理想的效果;因此,我们提出基于自适应变异遗传算法的动态飞行路径规划方法。该方法主要由三部分组成,一是随机变迁,二是精英变异,三是自适应变异机制。方法的主要思想是采用自适应变异机制,也就是说,在精英变异和随机变迁间自适应,当前种群中可行解多时,精英变异占主导,可行解少的时候,随机变迁占主导;这样就可以做到,可行解较少的时候,本方法能够增加种群多样性;可行解较多时,本方法能够充分利用优良解信息快速收敛到最优解。该方法的流程如图1所示。\n[0046] 图中,nfeasible(t)、rei(t)和rri(t)表示第t代种群中的可行解数量、精英变异和随机变迁相对于种群规模的比率;\n[0047] E(t)=elitism(E(t),rei(t))表 示 对 种 群E(t)进 行 精 英 保 留 操 作,elitism(E(t),rei(t))为精英保留操作算子;\n[0048] S(t)=crossover(S(t),pc)表示对种群S(t)进行交叉操作,crossover(S(t),pc)为交叉操作算子;\n[0049] S(t)=mutate(S(t),pm)表示对种群S(t)进行变异操作,mutate(S(t),pm)为变异操作算子;\n[0050] S(t)=insert(S(t),pi)表示对种群S(t)进行插入操作,insert(S(t),pi)为插入操作算子;\n[0051] S(t)=delete(S(t),pd)表示对种群S(t)进行删除操作,delete(S(t),pd)为删除操作算子;\n[0052] pc、pm、pi、pd分别是交叉概率、变异概率、插入概率、以及删除概率,n为种群规模,ng为事先设定的进化代数。\n[0053] 具体实施步骤:\n[0054] 第一步:随机生成初始种群P(t),t=0;\n[0055] 飞行路径的编码直接使用导航点编码方式,即一条染色体就对应于一条飞行路径,染色体基因位的取值就是空间一个点(xk,yk)。在每一代种群中,每一条染色体的长度可以是不同的,但它们的第一个基因位的取值都是飞行器初始位置(xs,ys),最后一个基因位的取值都是目标点位置(xg,yg)。\n[0056] 第二步:计算初始种群适应度;\n[0057] 我们把适应度函数设计为如下形式:\n[0058] \n[0059] 其中,g(x,y)表示约束条件,J(x,y)表示目标函数。在本发明中,把飞行路径与障碍物之间的碰撞代价看作是约束条件,把飞行路径长度当作目标函数。\n[0060] 因此,当g(x,y)=0,即飞行路径与障碍物没有发生碰撞时,适应度函数的取值为飞行路径长度;对应的飞行路径称为可行路径,或称为动态优化问题的可行解;\n[0061] 当g(x,y)≠0,即飞行路径与障碍物发生碰撞时,适应度函数的取值为无穷大;对应的飞行路径称为不可行路径,或称为动态优化问题的不可行解。\n[0062] 对于动态飞行路径规划问题,需要求最小适应度对应的飞行路径。\n[0063] 第三步:统计种群P(t)中可行解的数量,记作nfeasible(t);P(t)中的可行解集合记为E(t),非可行解集合记为S(t);计算rei(t)和rri(t),分别表示第t代种群精英变异和随机变迁相对于种群规模的比率,我们取rei(0)=0和rri(0)=1。\n[0064] \n[0065] \n[0066] rri(t)+rei(t)=(n-nfeasible(t))/n (4)\n[0067] 由上面三个公式可以看出,当t-1代种群中的可行解越少时,根据其得到的精英变异个体越少,随机变迁得到的个体越多,精英变异和随机变迁得到的个体总数为第t代种群中不可行解的数量。把这些个体和第t代种群中不可行解比较,保留适应度高的个体到t+1代种群。\n[0068] 第四步:对E(t)进行精英保留操作,精英保留算子如下:\n[0069] 精英保留算子把当代种群中适应度高的个体保留到下一代种群,这样能够提高种群的平均质量。在本发明的算法中,我们根据当代种群中可行解的数量,来确定有多少个可行解保留到下一代,如下式所示:\n[0070] \n[0071] 其中,nelitist(t)表示当代种群中有多少个可行解保留到下代种群。\n[0072] 第五步:对S(t)进行交叉、变异、插入、删除操作;\n[0073] (1)交叉算子\n[0074] 我们采用单点交叉的方法,如图2所示。即,在种群中随机选择两个个体,并选择一个交叉点,交换两个个体在交叉点后面的部分基因位,得到两个新个体。\n[0075] (2)变异算子\n[0076] 我们采用单点随机变异,如图3所示。即,在种群中随机选择一个个体,并随机选择一个变异位,随机改变这个基因位的取值,得到一个新个体。\n[0077] (3)插入算子\n[0078] 我们采用随机插入算法,如图4所示。即,在种群中随机选择一个个体,并随机选择一个插入点,在这一点插入一个基因位,这个基因位随机取值,得到一个新个体。\n[0079] (4)删除算子\n[0080] 我们采用随机单基因位删除算子,如图5所示。即,在种群中随机选择一个个体,并随机选择一个基因位,删除这个基因位,得到一个新个体。\n[0081] 第六步:计算操作过后的E(t)和S(t)组成的过渡种群P′(t)的适应度;\n[0082] 第七步:通过E(t)单点随机变异得到rei(t)×n个个体,并计算它们的适应度;\n[0083] 第八步:随机生成rri(t)×n个个体,并计算它们的适应度;\n[0084] 第九步:用上述rei(t)×n加rri(t)×n个个体中的可行解,替换P′(t)中的不可行解;\n[0085] 第十步:P(t+1)=P′(t),t=t+1;\n[0086] 第十一步:判断是否进化到一定代数,即t>ng,或者种群已收敛;如果是,结束运行,这时候种群中最优个体就是规划出来的飞行路径;如果不是,转到第三步。\n[0087] 在这里,我们对基本遗传算法和本发明提出的自适应遗传算法应用在动态飞行路径规划问题的效果进行比较。\n[0088] 首先,对规划问题进行描述:\n[0089] 图6给出了待求解的规划问题的示意图。图中,飞行器为具有一定半径的圆,其半径为RAV;飞行器的起点位于(xs,ys),终点位于(xg,yg)。需要避开的障碍物的初始中心位置为 i=1,2,…,8,障碍物i的半径为 现在,要为飞行器规划一条飞行路径(x,y)={xk,yk)},k=0,1,…,N,在满足约束g(x,y)的条件下,使得目标函数J(x,y)最小。\n[0090] 其中,(x0,y0)=(xs,ys),(xN,yN)=(xg,yg);约束条件g(x,y)和目标函数J(x,y)各是一个标量函数,在本发明中,我们把飞行路径与障碍物之间的碰撞代价看作是约束条件,因此,有约束条件g(x,y)的定义如下。\n[0091] 如图7所示,由导航点(xk,yk)和(xk+1,yk+1)组成航路段k,障碍物i在t时刻的中心位置为\n[0092] 设Di,k为障碍物i的中心位置在t时刻到航路段k的距离,则有:\n[0093] \n[0094] 其中:\n[0095] A=(yk+1-yk)\n[0096] B=(xk-xk+1)\n[0097] C=(xk+1-xk)yk-xk(yk+1-yk)\n[0098] 定义:\n[0099] \n[0100] \n[0101] 可以看出,随着时间的变化, 发生改变,使得g(x,y)发生变化,因而,(x,y)={(xk,yk)},k=0,1,…,N,会发生变化。这是一个动态优化问题。\n[0102] 我们把目标函数处理为路径长度代价,因此,目标函数J(x,y)为:\n[0103] \n[0104] 其中,(xk+1,yk+1)和(xk,yk)是规划出路径上的导航点。\n[0105] 本实施例包括以下具体实施步骤:\n[0106] 第一步:随机生成初始种群P(t),t=0,种群规模为n=100,随机生成初始种群。\n[0107] 第二步:计算初始种群适应度;\n[0108] 适应度函数采用如下形式:\n[0109] \n[0110] 即,把可行路径的适应度取为路径长度,不可行路径的适应度惩罚为无穷大。对于动态飞行路径规划问题,需要求最小适应度对应的飞行路径。\n[0111] 第三步:统计种群P(t)中可行解的数量,记作nfeasible(t);我们取rei(0)=0和rri(0)=1,计算第t代种群精英变异和随机变迁相对于种群规模的比率rei(t)和rri(t):\n[0112] \n[0113] \n[0114] 第四步:对P(t)中的可行解集合E(t)进行精英保留操作,由nelitist(t)确定当代种群中有多少个可行解保留到下代种群:\n[0115] \n[0116] 第五步:对P(t)中的不可行解集合S(t)进行交叉、变异、插入、删除操作,其中pc=25%,pm=20%,pi=10%,pd=10%。\n[0117] 第六步:计算操作过后的E(t)和S(t)组成的过渡种群P′(t)的适应度;\n[0118] 第七步:通过E(t)单点随机变异得到rei(t)×n个个体,并计算它们的适应度;\n[0119] 第八步:随机生成rri(t)×n个个体,并计算它们的适应度;\n[0120] 第九步:用上述rei(t)×n加rri(t)×n个个体中的可行解,替换P′(t)中的不可行解;\n[0121] 第十步:P(t+1)=P′(t),t=t+1;\n[0122] 第十一步:选取算法终止条件为种群收敛于最优解。判断是否满足终止条件;如果是,结束运行,这时候种群中最优个体就是规划出来的飞行路径;如果不是,转到第三步。\n[0123] 图8是当所有障碍都是静止的时候,规划出的从起点到终点的飞行器飞行路径。\n图9是在这种情况下,基本遗传算法和自适应变异遗传算法收敛性的比较,从图中可以看出,本发明提出的自适应变异遗传算法有更好的收敛性。图10是不同种群规模下基本遗传算法和自适应变异遗传算法对于静态飞行路径规划问题的适应度评估次数的比较,从图中可以看出,本发明提出的自适应变异遗传算法有更少的评估次数。因此,本发明提出的自适应变异遗传算法比基本遗传算法在解决静态环境下的路径规划问题时有更好的收敛效果。\n[0124] 接下来,我们比较本发明提出的自适应变异遗传和基本遗传算法对于动态飞行路径规划问题的效果。现在,我们假设障碍 是一个运动障碍,它从其初始位置向着图中的右上角运动,运动速度设为每单位时间运动4个单位坐标。\n[0125] 图11和图12给出了在不同进化代数下的规划结果。图13给出了在此动态环境下基本遗传算法和自适应变异遗传算法收敛性的比较。从图中可以看出,本发明提出的自适应变异遗传算法有更好的收敛性。这是因为,当种群中可行解少时,自适应变异遗传算法可以利用更大的变异比率提高种群的多样性;而当种群中的可行解数量多的时候,自适应变异遗传算法可以利用这些可行解蕴含的信息,加快算法的收敛速度。因此,本发明提出的自适应变异遗传算法可以根据当前种群中可行解的数量,自适应地把随机变迁和精英变异动态相结合,提高种群的多样性和收敛能力。
法律信息
- 2021-01-08
未缴年费专利权终止
IPC(主分类): G06N 3/12
专利号: ZL 201110030221.X
申请日: 2011.01.27
授权公告日: 2014.04.16
- 2014-04-16
- 2011-07-20
实质审查的生效
IPC(主分类): G06N 3/12
专利申请号: 201110030221.X
申请日: 2011.01.27
- 2011-06-01
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-10-06
|
2010-05-21
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |