一种基于种群进化过程的自适应遗传算法的制作方法

文档序号:12825704阅读:280来源:国知局
一种基于种群进化过程的自适应遗传算法的制作方法与工艺

【技术领域】

本发明涉及一种基于种群进化过程的自适应遗传算法。



背景技术:

遗传算法(geneticalgorithm-ga)是生命科学与工程科学相互交叉、互相渗透的产物,效法于自然选择的生物进化,是一种模仿生物进化过程的随机方法。其本质是一种求解问题的高度并行性全局搜索算法,它能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最优解。

越来越多的实践表明,遗传算法在解决一些复杂的问题方面显示出越来越多的优越性,但是在一些方面,比如:算法的早熟问题以及收敛性等方面还存在一些不足之处;针对sga的这些缺点,近几年已经提出了多种改进的方法,在这些改进的遗传算法中,自适应遗传算法改进效果明显,已得到广泛的应用。但是这些自适应遗传算法虽然在一定程度上改善了算法的性能,提高了算法的收敛性,但是对于较复杂的函数,特别对于多峰函数,还是容易陷入局部最优。



技术实现要素:

本发明的目的是针对现有自适应遗传算法中中存在的问题,提出一种基于种群进化过程的自适应遗传算法(balancedadaptivegeneticalgorithm-baga),通过定义种群进化度和种群聚合度,来表征种群进化速度和种群集中情况,再将种群进化度和种群聚合度构成平衡因子通过sigmoid函数来非线性调整交叉概率和变异概率,同时采用精英保留策略,单变量交叉操作,保证算法收敛。

为达到上述目的,本发明采用以下技术方案予以实现:

一种基于种群进化过程的自适应遗传算法,包括以下步骤:

1)baga算法的参数设定,设定算法的迭代次数,每代种群个数,自变量离散精度,总共打靶次数,常数k1,k2;

2)采用二进制编码产生初始种群;在函数定义域内,根据设定的精度计算每个个体染色体的长度,然后随机产生n个初始种群;根据实际问题建立目标函数与适应度之间的关系,然后计算每个个体适应度;

3)判断是否满足最大迭代次数,是则输出最后一代的最优个体,即为找到的最优值,否则转入步骤4);

4)建立目标函数与适应度函数的关系,然后计算每个个体的适应度、当代个体的平均适应度,保存当代适应度最大的个体,根据定义计算当代种群进化度、种群聚合度、平衡因子、交叉概率和变异概率;

5)选择、交叉和变异操作产生新种群,选择算子采用轮盘赌技术,交叉操作采用单变量交叉,变异操作采用基本位变异;

6)找出当代种群中最优个体,保留下来,然后转入步骤2)。

本发明进一步的改进在于:

步骤1)中,设定常数k1,k2的取值范围为[110]。

步骤2)中,对于最小值和最大值的问题建立目标函数与适应度函数的惯性,具体方法如下:

2-1)对最小值问题,建立如下适应度函数f(x)与目标函数g(x)的映射关系:

其中,cmax是一个输入值或是理论上的最大值;

2-2)对最大值问题,采用下述方法:

其中,cmin是一个输入值或是理论上的最小值。

步骤4)中,计算第t代种群的种群进化度、种群聚合度、平衡因子、交叉概率和变异概率,具体方法如下:

第t代种群的种群进化度定义为,

其中,fbest(t)为第t代种群中适应度全局极值,fbest(t-1)第t-1代种群适应度全局极值;

第t代种群的种群聚合度定义为,

其中,favg(t)为第t代种群中平均适应度;

第t代种群的平衡因子t定义为:

第t代种群的交叉概率为:

第t代种群的变异概率为:

其中,k1和k2为常数,取值范围为[110]。

步骤5)中,单变量交叉过程如下:

交叉采用单自变量交叉,在进行交叉操作时,整个染色体上的单个自变量的染色体独自进行单点交叉,然后每个变量交叉完后再拼接在一起。

与现有技术相比,本发明具有以下有益效果:

根据种群进化度和种群聚合度的定义,可以很清楚地反映出种群的寻优过程。可根据种群进化度和种群聚合度来调整交叉概率和变异概率,交叉概率和变异概率根据种群的进化情况动态调整,交叉概率是表征算法的全局搜索能力,变异概率表征算法的局部搜索能力,根据种群进化情况动态调整交叉概率和变异概率,可以平衡算法的全局搜索能力和局部搜索能力,从而大大改善算法,使算法更加智能高效。当α(t)较小时,进化速度较快,可增大交叉和变异概率,增大种群的多样性,使其在较大范围内搜索;但α(t)较大时,表明进化速度较慢,可减小交叉和变异概率,减小搜索空间,从而更快地找到最优值。当β(t)较小时,种群比较分散,种群不易陷入局部最优,但随着β(t)的增大,算法容易陷入局部最优,此时应增大交叉和变异概率,提高算法全局搜索能力,防止其陷入局部最优。因此,交叉概率和变异概率随着种群聚合度β(t)的增大而增大,随着种群进化度α(t)的增大而减小,从而动态调整算法的全局搜索能力和局部搜索能力;同时采用单变量交叉操作,加快进化速度,使种群快速收敛到最优解,防止算法陷入局部最优。

【附图说明】

图1为本发明的baga算法流程图;

图2为第一个初始位置的目标函数值(k=0);

图3为第一个初始位置的目标函数值(k=0.01);

图4为第一个初始位置的目标函数值(k=0.1);

图5为第二个初始位置的目标函数值(k=0);

图6为第二个初始位置的目标函数(k=0.01);

图7为第二个初始位置的目标函数(k=0.1);

图8为第一个初始位置的目标函数值(k=0);

图9为第一个初始位置的目标函数值(k=0.01);

图10为第一个初始位置的目标函数值(k=0.1);

图11为第二个初始位置的目标函数值(k=0);

图12为第二个初始位置的目标函数值(k=0.01);

图13为第二个初始位置目标函数值(k=0.1);

图14为目标函数变化曲线(k=0);

图15为目标函数变化曲线(k=0.001);

图16为目标函数变化曲线(k=0.1);

图17为目标函数变化曲线(k=0);

图18为目标函数变化曲线(k=0.001);

图19为目标函数变化曲线(k=0.1)。

【具体实施方式】

下面结合附图对本发明做进一步详细描述:

为了验证算法的性能,采用了给出了13个测试函数,其中9个基准函数和4个多峰的测试函数,这些函数的最小值为0,通过算法寻找函数的最小值,并且与其他5种算法进行对比分析。

9个基准函数为:

表19个基准函数表达式

4个多峰的测试函数:

schaffer函数f10:

函数f10是二维的复杂函数,具有无数个局部极小点,但只有一个(0,0)点为全局最小点,最小值为0,该函数具有强烈震荡的性态,因此很难找到全局最优解。

rosenbrock函数f11:

函数f11是一个二维单极值的非二次函数,属于单峰值函数,但该函数却是病态的,在y=x2处有一条狭长深谷,极易陷入局部最优解,难以进行全局最优化,该函数的全局最小点在(1,1),最小值为0。

trigonometric函数f12:

函数f12是一个多峰的三角函数,在xi=x*时有全局最小值0,在最小值附件有大量的局部极小值,很容易陷入局部最优,令η=7,μ=1,

shubert函数f13:

函数f13存在760个局部极值点,寻优时极易陷入局部最优,在(-1.42513,0.80032)处取得最小值-186.7309。

根据具体的测试函数,该算法包括如下步骤。

第一步:算法的参数设定,设定算法的迭代次数为200代,每代种群个数为50个,自变量离散精度为1e-3,总共打靶100次,k1=2,k2=2,收敛标准为与最优值相差小于0.01即为收敛,其他5种算法的参数设定如下。

表26种算法的参数设置

第二步:采用二进制编码产生初始种群。在函数定义域内,根据设定的精度计算每个个体染色体的长度,然后随机产生50个初始种群;

第三步,判断是否满足最大迭代次数,是则输出最后一代的最优个体,即为找到的最小值,否则转入第四步;

第四步,建立目标函数与适应度函数的关系,该实施例为最小值问题,取其倒数变成适应度函数,然后计算每个个体的适应度、当代个体的平均适应度,保存当代适应度最大的个体,计算种群进化度和种群聚合度,然后计算当代平衡因子、交叉概率和变异概率;

第五步,选择、交叉和变异操作产生新种群,选择算子采用轮盘赌技术,交叉操作采用单变量交叉,变异操作采用单点变异。

第六步:找出当代种群中最优个体(适应度最大),保留下来,然后转入第二步;

表36种算法对9个测试函数的测试结果

表4各算法在测试函数f10下的收敛性能

表5各算法在测试函数f11下的收敛性能

表6各算法在测试函数f12下的收敛性能

表7各算法在测试函数f13下的收敛性能

过matlab编写的程序,从得到的结果分析可知,从13个测试函数的仿真结果可知,在算法收敛性方面,baga算法仿真结果均接近于最优值,并且收敛次数最多,表现出良好的收敛性能;在算法的稳定性方面,baga算法的期望和均方差均较小,表现出很好的稳定性,具有较高的鲁棒性;baga算法能在较短的进化时间内自适应地调整个体的交叉概率和变异概率,使算法能够平衡全局收敛性能和局部收敛性能,并且交叉操作采用单自变量交叉,能够及时的跳出局部最优,从而避免算法“早熟”。

航天器近距离相对运动轨迹规划对于航天器近距离的空间交会任务,一般对其燃料和时间具有一定的要求,希望燃料消耗越少越好,时间越短越好,因此在满足交会轨迹的各种约束下,使燃料或时间最优,则需要对航天器交会轨迹进行合理规划。相对运动轨迹规划与相对运动模型和发动机的推力模式密切相关。对航天器近距离相对运动而言,由于只是针对轨道进行规划,因此不采用姿轨耦合的动力学模型,而是采用忽略摄动影响的线性化动力学模型(c-w方程或t-h方程)。推力模式通常包括脉冲推力、继电型推力和连续推力三类,相应地也就有三类轨迹规划模型。脉冲推力假设有助于简化问题,常用于空间任务的初步分析与设计,因此采用baga算法在脉冲推力模型下对航天器近距离的相对运动进行轨迹规划。

实施例:

(1)二脉冲机动模型

当航天器之间的相对距离远小于它们之间的距离时,航天器之间的相对运动模型采用c-w方程,其状态方程如下所示:

其中,φ(t)为状态转移矩阵,其表达式为:

其各个分量在目标航天器轨道坐标下的分量为:

式中,n为目标航天器的轨道平均角速度。

记初始时刻追踪航天器相对运动状态为x(t0),终止时刻的相对运动状态为x(tf)。施加的脉冲分别为δv1,…,δvn,上标“—”表示脉冲作用前的状态,“+”表示脉冲作用后的状态,因此对第i次脉冲有:

对于完整n次脉冲有:

其中,令:

将式(0-9)改写成如下形式:

δx=fδv(0-10)

下面分情况讨论该矩阵方程。

当n=1时,一般情况下,这是一个矛盾方程组。判断方程组是否有解的条件为:若rank([f,δx])=rank(f),则方程组有解;否则方程组无解。

当n=2时,该方程组有唯一解:

δv=f-1δx(0-11)

当n>2时,一般情况下,方程组的解不唯一,其通解为:

δv=f+δx+(i-f+f)y(0-12)

其中,f+为f的任意广义逆矩阵,y为任意3n×1的矢量。

对于一般椭圆轨道的多脉冲相对机动,同样可以建立类似的数学模型,区别在于将c-w方程改成t-h方程,将状态方程进行相应转化即可。

1-1)圆轨道双脉冲最优相对机动

方程(0-8)建立了多脉冲相对机动的动力学模型,机动前后的运行状态决定了所需施加的脉冲。当n=2时,由方程(0-10)可写为:

若f满秩,则方程(0-13)有唯一解,可求得两次脉冲δv1和δv2;若f不满秩,则方程奇异,不能求得可行解。

由方程(0-14)可知,在初始和终端状态给定的情况下,两次脉冲大小只与两次脉冲的施加时刻有关,只要t1和t2确定,则两次脉冲即可确定,不存在最优机动问题;但如果两次脉冲施加时刻不确定,即:

t0≤t1<t2≤tf(0-15)

则存在脉冲最优机动,双脉冲最优相对机动可以描述为:在一定范围内(时间域或真近点角域)。追踪航天器施加两次脉冲,达到某一期望的最终状态,使控制代价(总燃料消耗或总燃料和时间综合指标)最小。

1-2)椭圆轨道双脉冲最优相对机动

建立椭圆轨道的相对机动模型,在流程和数学模型上和圆轨道类似。如果目标航天器位于一般椭圆轨道上,则采用t-h方程来描述相对运动,以目标航天器真近点角f,可以将其状态方程写成如下形式:

其中

其中,s=ηsinβ,c=ηcosβ,η=1+ecosβ,j=r2n(t-t0)/p2,p=a(1-e2),s'=cosβ+ecos2β,c'=-(sinβ+esin2β)。

此状态方程是以真近点角为自变量的方程,因此求得的状态变量还需转换到以时间t为自变量的状态,两者之间的转换如下:

其中,p,e,rt分别为目标航天器的半通径、偏心率和地心距。

同理,对于椭圆轨道的最优轨道机动转换成设计变量为真近点角即:

f0≤f1<f2≤ff(0-20)

初始时刻t0,对应目标航天器的真近点角为f0,追踪航天器的相对运动状态为x(t0),在真近点角f0~ff内,追踪航天器施加两次脉冲δv1,δv2,经过真近点角ff,到达期望的终止状态x(ff)。

令两次脉冲的施加时刻为t1,t2,所对应的目标航天器真近点角为f1,f2,则利用公式(0-8)可得:

其中为真近点角f域的“虚拟”脉冲。

将方程(0-21)展开,即可求得两次脉冲的表达式:

最后,将f域的状态变量转换到t域上,有:

可见航天器机动前后的相对状态确定后,脉冲速度的大小与脉冲施加的时刻f1,f2有关,因此可以优化脉冲施加的时刻,来找到控制代价(总燃料消耗或总燃料和时间综合指标)最小的最优机动策略。

(2)baga算法设计

baga算法主要包括编码方法的选择、适应度函数的设计、选择、交叉和变异操作的设计,下面针对飞行时间不固定的二脉冲机动模型,进行优化算法设计。

2-1)编码方法选择

针对二脉冲机动模型,设计变量只有两个,分别为:

式中,t1表示从起始到第一次脉冲作用的飞行时间;t2表示从第一次脉冲作用后到第二次脉冲(末端)作用的飞行时间。

由于变量较少,因此采用最原始的二进制编码方式,今后处理时,这两个设计变量将作为两个独立的基因分别对待。

2-2)适应度函数的设计

一般的脉冲机动模型的目标函数为燃料消耗或时间消耗,而工程中的交会优化问题一般不止单对时间或燃料消耗有要求;故本案例采用线性加权的方法,对于双冲量最优机动模型取如下能量—时间混合优化指标,将时间和燃料的加权作为目标函数,如下所示:

j=|δv1|+|δv2|+k(t1+t2)(0-25)

其中k是可调的权重系数,|ο|表示对向量取模。

由于给定t1,t2时,通过式(0-14)或(0-22)可以确定δv1,δv2的大小,故设计变量实际只有两个:t1和t2。

目标函数与适应度函数具有一一映射的关系,但是目标函数不一定就是适应度函数,因为适应度函数总是非负的,而且其值越大越好,因此需要把目标函数转换成适应度函数,这个过程称为适应度函数的标定。本案例的目标函数是时间和燃料,希望越小越好,故可以取目标函数的倒数转换成最大值问题,具体转换如下:

1.1.12-3)选择、交叉、变异操作设计

遗传算法的选择操作采用经典的轮盘赌策略,交叉概率和变异概率的计算如上所述,并且采用精英保留策略,由于变量个数只有两个,因此不采用单自变量交叉,而是采用常规的单点交叉,变异也采用单点变异操作。

(3)圆轨道最优机动策略

假设目标航天器运行在400km的圆轨道上,初始相对状态分别为(70000,-30000,0,-40,30,0)m和(100000,-20000,0,-20,0,0)m,交会终端相对状态为(0,0,0,0,0,0)m。改进的自适应遗传算法的参数设置为:迭代代数100代,群体规模50个,交叉和变异概率的调节系数k1=k2=2。根据上面设计的遗传算法和给出的交会模型,对于不同的初始条件,分别考虑第一次脉冲位置变化和不考虑第一次脉冲位置进行仿真对比分析,以验证该改进的自适应遗传算法的实用性。

表1考虑第一次脉冲位置的优化结果

表2不考虑第一次脉冲位置的优化结果

由表1的计算结果可知,均能找到一个较好的解,当考虑第一次脉冲的位置时,由第一个初始位置的仿真结果可知,但时间的权重k=0.01时,与不考虑时间指标的情况下所得结果基本一致,说明当时间的权重比较小时,对其结果影响不大,从三次的仿真结果可以看出,但任务时间较长时,所需的燃料消耗就较小,第二个初始位置的仿真结果也得到类似的结论;由

表2可知,在初始时刻施加脉冲时,终端时刻施加的时间越晚,则所需的脉冲就越小。另外,从两个表中可以看出,对于不同的权值k,计算的结果也不相同,当k值较大,则交会所需的总时间较小,相应的总燃料就呈增加趋势;当k值较小,即对燃料要求严格时,交会所需的总时间就呈变长趋势,这正是由时间和燃料的综合指标决定的。

另外,由两次的数值仿真的目标函数值可以看出,算法表现出较好的收敛性能和稳定性,不管对于考虑还是不考虑第一次脉冲位置变化,对于不同的k值,从图2到图19可以看出,算法均在40代之内就已经收敛,有的甚至20代就已经收敛,也再一次证明了算法的良好收敛性能,也说明了改进的自适应遗传算法良好的实用性。

(4)椭圆轨道最优机动策略

假设目标航天器在椭圆轨道上,其长半轴a=10000km,偏心率e=0.3,初始真近点角为0。在时间域下的初始相对状态为(-10000,-30000,-5000,0,20,0),交会终端状态为(0,0,0,0,0,0),改进的自适应遗传算法的参数设置为:迭代代数100代,群体规模50个,交叉和变异概率的调节系数k1=k2=2。分别考虑第一次脉冲位置变化和不考虑第一次脉冲位置进行仿真对比分析,其仿真结果如下。

表3考虑第一次脉冲位置的优化结果

表4不考虑第一次脉冲位置的优化结果

由表3的仿真结果可知,当考虑第一次脉冲位置时,不同的k值对应不同的目标函数,当k值较小时,对其结果影响不大,随着k值的增大,目标函数值也增大,由三次仿真结果可知,当任务时间缩短时,则所需脉冲变大。当不考虑第一次脉冲位置时,所得的结论与表3类似,在初始时刻施加脉冲时,终端时刻施加的时间越晚,则所需的脉冲就越小。

由表3和表4的仿真结果可知,考虑第一次脉冲位置变化和不考虑脉冲位置变化,优化指标值没有明显变化,因此不存在对一次脉冲位置进行优化问题,一般在起始时就施加脉冲;另外由两次工况的目标函数变化曲线可知,目标函数值均在20代左右就已经收敛,说明改进的自适应遗传算法具有良好的收敛性能和稳定性。

由圆轨道和椭圆轨道的相对运动轨迹规划可知,对于考虑时间和燃料综合指标时,对于不同的时间权值k,计算的结果并不相同,当k值较大,任务所需的时间则缩短,相应的总燃料就呈增加趋势;当k值较小,则对任务总时间变长,相应的总燃料就呈减少趋势,同时对于椭圆轨道而已,考虑第一次脉冲位置变化和不考虑脉冲位置变化,优化指标值没有明显变化,因此不存在对一次脉冲位置进行优化问题,一般在起始时刻就施加脉冲。通过两次工况可知,baga针对实际问题能够表现出良好的实用性能,并且所有仿真案例均在40代之前已经收敛,表明了baga具有良好的收敛性能。

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1