遗传算法讲义4_slides

更新时间:2023-07-25 06:34:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

遗传算法教案

第四章 遗传算法与函数优化

4.1 研究函数优化的必要性:

首先,对很多实际问题进行数学建模后,可将其抽象为一个数值函数的优化问题。由于问题种类的繁多,影响因素的复杂,这些数学函数会呈现出不同的数学特征。除了在函数是连续、可求导、低阶的简单情况下可解析地求出其最优解外,大部分情况下需要通过数值计算的方法来进行近似优化计算。

其次,如何评价一个遗传算法的性能优劣程度一直是一个比较难的问题。这主要是因为现实问题种类繁多,影响因素复杂,若对各种情况都加以考虑进行试算,其计算工作量势必太大。由于纯数值函数优化问题不包含有某一具体应用领域中的专门知识,它们便于不同应用领域中的研究人员能够进行相互理解和相互交流,并且能够较好地反映算法本身所具有的本质特征和实际应用能力。所以人们专门设计了一些具有复杂数学特征的纯数学函数,通过遗传算法对这些函数的优化计算情况来测试各种遗传算法的性能。

4.2 评价遗传算法性能的常用测试函数

在设计用于评价遗传算法性能的测试函数时,必须考虑实际应用问题的数学模型中所可能呈现出的各种数学特性,以及可能遇到的各种情况和影响因素。这里所说的数学特性主要包括:

●连续函数或离散函数; ●凹函数或凸函数; ●二次函数或非二次函数; ●低维函数或高维函数; ●确定性函数或随机性函数; ●单峰值函数或多峰值函数,等等。

下面是一些在评价遗传算法性能时经常用到的测试函数:

(1) De Jong函数F1:

这是一个简单的平方和函数,只有一个极小点f1(0, 0, 0)=0。

遗传算法教案

(2) De Jong函数F2:

这是一个二维函数,它具有一个全局极小点f2(1,1) = 0。该函数虽然是单峰值的函数,但它却是病态的,难以进行全局极小化。

(3) De Jong函数F3:

这是一个不连续函数,对于xi

f3(x1,x2,x3,x4,x5) 30

[ 5.12, 5.0]

区域内的每一个点,它都取全局极小值

遗传算法教案

(4) De Jong函数F4:

这是一个含有高斯噪声的4次函数,当不考虑噪声的影响时,它具有一个全局极小值f4(0,0, ,0)=0。

(5) De Jong函数F5:

这是一个多峰值函数,它总共有25个局部极小点,其中有一个是全局极小点,全局极小值为f5(-32,-32)=0.998。

(6) Shaffer函数F6:

该函数在其定义域内只具有一个全局极小点f6(0,0)=0。

遗传算法教案

(7) Shaffer函数F7:

该函数在其定义域内只具有一个全局极小点f7(0,0)=0。

(8) Goldstein-Price函数:

该函数在其定义域内只具有一个全局极小点f(0,-1)=3。

(9) Shubert函数:

这是一个多峰值函数,在其定义域内它总共有760个局部最小点,其中的18个点是全局最小点,全局最小值为f=-186.731。

(10) 六峰值驼背函数(Six-hump Camel Back Function):

该函数共有六个局部极小点,其中(-0.0898,0.7126)和(0.0898,-0.7126)为全局最小点,最小值为f(-0.0898,0.7126) = f(0.0898,-0.7126) = -1.031628。

(11) 带有复杂约束条件的函数(之一):

遗传算法教案

该函数的全局最小点为:f(1,1,1,1,1,1,1,1,3,3,3,1) = -15。

(12) 带有复杂约束条件的函数(之二):

该函数的全局最大点为:f(1,0,0) = 2.471428。

4.3 De Jong的研究结论

De Jong用来进行函数优化问题研究的研究对象是前面所介绍的De Jong测试函数F1~F5。他采用了下面的一些研究方法:

1.编码方法

用二进制编码符号串来表示个体。

2.算法的影响参数 ●群体大小M; ●交叉概率pc; ● 变异概率pm; ● 代沟G。

3.算法种类(子代群体复制策赂)

遗传算法教案

●R1:基本遗传算法(比例选择、单点交叉、基本位变异); ●R2:保留最佳个体模型; ●R3:期望值模型;

●R4:保留最佳期望值模型; ●R5:排挤因子模型; ●R6:广义交叉模型。

遗传算法教案

变异概率对离线性能的影响 (优化策略为 R1, , 测试函数为 F1) )

变异概率对在线性能的影响 (优化策略为 R1, , 测试函数为 F1) )

优化策略 R1,R2,R3 在基因 , , 损失方面的性能比较( 损失方面的性能比较( 测试函 数为 F1) )

优化策略 R1,R2,R3 的离线 , , 性能比较( 性能比较(测试函数为 F1) )

遗传算法教案

经过仔细分析和计算,De Jong得到了下述几条重要的结论: 结论1

群体的规模越大,遗传算法的离线性能越好,越容易收敛。 结论2

规模较大的群体,遗传算法的初始在线性能较差;而规模较小的群体,遗传算法的初始在线性能较好。

结论3

虽然变异概率的增大也会增加群体的多样性,但它却降低了遗传算法的离线性能相在线性能,并且随着变异概率的增大,遗传算法的性能越来越接近于随机搜索算法的性能。

结论4

使用保留最佳个体模型或期望值模型的遗传算法比基本遗传算法的性能有明显的改进。 结论5

对于广义交叉算子,随着交叉点数的增加会降低遗传算法的在线性能和离线性能。 这些结论在遗传算法的开发研究和实际应用中具有重要的指导意义。

4.4 多目标优化

多目标优化问题一般可描述为下面的数学模型:

遗传算法教案

式中,V-min表示向量极小化,即向量目标目标函数都尽可能地极小化的意思。

多目标优化问题的难点在于,在很多情况下,各个子目标有可能是相互冲突的,一个子目标的改善有可能会引起另一个子目标性能的降低,也就是说,要同时使这多个子目标都一起达到最优值是不可能的,而只能是在它们中间进行协调和折衷处理,使各个子目标函数都尽可能地达到最优。

多目标优化问题的最优解与单目标优化问题的最优解有着本质上的不同,所以为了正确地求解多目标优化问题,必须对其最优解的概念进行定义。

定义:设X数,x1

R

m

中的各个子

是多目标优化模型的约束集,

f(x) R

p

是多目标优化时的向量目标函

X,x2 X

( k 1,2, p)

fk(x1) fk(x2)

并且

fk(x1) fk(x2)

( k 1,2, p)

则称解x1比解x2优越。

定义:设X

R

m

是多目标优化模型的约束集,

f(x) R

p

是向量目标函数,若x*

X

并且x*比X中的所有其他点都优越,则称x*是多目标极小化模型的最优解。

由该定义可知,多目标优化问题的最优解x*就是使向量目标函数f(x)的每一个子目标函数都同时到达最优点的解,如图所示。显然,在大多数情况下*多目标优化问题的最优解是不存在的。

定义:设X

R

m

是多目标优化模型的约束集,f

(x) R

p

是向量目标函数,若~x

X

,并

遗传算法教案

且不存在比~x更优越的x,则称~x为多目标极小化模型的Pareto最优解,或称为非劣解。 由该定义可知,多目标优化问题的Pareto最优解仅仅只是它的一个可以接受的“不坏”的解,并且通常的多目标优化问题大多都具有很多个Pareto最优解,如图所示。

由上述三个定义可知,着一个多目标优化问题存在最优解的话、则这个最优解必定是Pareto最优解,并且Pareto最优解也只由这些最优解所组成,再不包含有其他解。所以可以这么说,Pareto最优解是多目标优化问题的合理的解集合。

求解多目标优化问题的遗传算法

对于如何求多目标优化问题的Pareto最优解,目前已经提出了多种基于遗传算法的求解方法。下面介绍其中几种主要的方法。

1.权重系数变化法

对于一个多目标优化问题,若给其各个子目标函数fi(x),(i=1,2, ,p),赋予不同的权重wi(i=1,2, ,p),其中各wi的大小代表相应子目标fi(x)在多目标优化问题中的重要程度。则各个子目标函数的线性加权和可表示为:

若以这个线性加权和作为多目标优化问题的评价函数,则多目标优化问题就可转化为单目标优化问题。权重系数变化法就是在这个评价函数的基础上,对每个个体取不同的权重系数,就可以利用通常的遗传算法来求出多目标优化问题的多个Pareto最优解。

2.并列选择法

并列选择法的基本思想是:先将群体中的全部个体按子目标函数的数目均等地划分为一些子群体,对每个子群体分配一个子目标函数.各个子目标函数在其相应的子群体中独立地进行选择运算,各自选锋出一些适应度较高的个体组成一个新的子群体,然后再将所有这些新生成的子群体合并为一个完整的群体,

在这个完整的群体中进行交叉运算和变异运算,从而生成下一代的完整群体,如此这样不断地进行“分割——并列选择——合并。过程,最终可求出多目标优化问题的Pareto最优解。

这种方法很容易产生个别子目标函数的极端最优解,而要找到所有目标函数在某种程度上较好的协调最优解却比较困难。

3.排序选择法

遗传算法教案

排序选择法的基本思想是:基于“Pareto最优个体”的概念来对群体中的各个个体进行排序,依据这个排列次序来进行进比过程中的选择运算.从而使得排在前面的Pareto最优个体将有更多的机会遗传到下一代群体中。如此这样经过一定代数的循环之后,最终就可求出多目标优化问题的Pareto最优解。

这里所谓的Pareto最优个体,是指群体中的这样一个或一些个体,群体中的其他个体都不比它或它们更优越。需要说明的是,在群体进化过程个所产生的Pareto最优个体并不一定就对应于多目标优化问题的Pareto最优解。当然,当遗传算法运行结束时,我们需要取排在前面的几个Pareto最优个体,以它们所对应的解来作为多目标优化问题的Pareto最优解。

对群体中的所有个体进行Pareto最优个体排序的算法是: 算法ParetoIndividual ①设置初始序号r = 1。

②求出群体中的Pareto最优个体,定义这些个体的序号为r ③从群体中去掉Pareto最优个体.并更改序号r = r+1。 ④转到第②步,直到处理完群体中的所有个体。

由上述Pareto最优个体排序算法可知,排序选择法仅仅度量了各个个体之间的优越次序,而未度量各个个体的分散程度,所以它易于生很多个相似的Pareto最优解,而难于生成分布较广的Pareto最优解。

4.共享函数法

求解多目标优化问题时,一般希望所得到的解能够尽可能地分散在整个Pareto最优解集合内,而不是集中在其Pareto最优解集合内的某一个较小的区域上。为达到这个要求,可以利用小生境遗传算法的技术来求解多目标优化问题。这种求解多目标优化问题的方法称为共享函数法,它将共享函数的概念引入求解多目标优化问题的遗传算法中。

在利用通常的遗传算法求解最优化问题时,算法并未限制相同个体或类似个体的数量。但当在遗传算法中引入小生境技术之后,算法对它们的数量就要加以限制,以便能够产生出种类较多的不同的最优解。对于某一个个体X而言,在它的附近还存在有多少种、多大程度相似的个体,这是可以度量的,这种度量值称之为小生境数(Niche Count)。小生境数有很多种不同的度量计算方法,一般可定义为:

式中,s(d)为共享函数,它是个体之间距离d的单调递减函数。 例如,共享函数s(d)的一种定义是:

式中,d(X, Y)是两个个体X、Y之间的海明距离,σ>0是预先指定的一个表示小生境范围的参数。

在计算出各个个体的小生境数之后.可以使小生境数较小的个体能够有更多的机会被选

遗传算法教案

中遗传到下一代群体中,即相似个体较少的个体能够有更多的机会被遗传到下一代群体中.这样也就增加了群体的多样性,相应地也会增加解的多样性。

下面描述一种遗传算法中的选择操作方法,它综合运用联赛选择和共享函数的思想来选择当前群体中的优良个体遗传到下一代群体中。

算法TournamentSharingSelection

①从群体中随机选取k个个体组成个体比较集合C,其中k是预先指定的一个表示比较集合规模的常数。

⑦从群体中随机选择2个个体组成个体联赛集合T。

③分别比较个体联赛集合T中的2个个体与个体比较集合C中各个个体之间的优越关系,根据这个比较结果,按下述方法从个体联赛集合T中选择出一个个体遗传到下一代群体中。 a. 如果集合T中的一个个体(记为X)比集合C中的所有个体都优越,而集合T中的另一个

个体都不比集合C中的所有个体优越,则将个体X遗传到下一代群体中; b. 如果由上面的一种情况未能选择出一个个体,则利用共享函数的概念从集合T中选择出

一个小生境数较小的个体遗传到下一代群体中。

使用这个选择操作方法的遗传算法可用于求解多目标优化问题的Pareto最优解。该方法的优点是它能够得到多种不同的Pareto最优解,但另一方面,由于每次进行选择操作时都需要进行大量的个体之间优越关系的评价和比较运算,所以使得算法的搜索效率较低。

5.混合法

前面所介绍的几种求解多目标优化问题的遗传算法各有各的优点,也各有各的缺点。例如,并列选择法易于生成单个目标函数的极端最优解,而较难生成一种多个目标在某种程度上都比较满意的折衷解;共享函数法虽然易于生成分布较广的Pareto最优解集合,但其搜索效率却比较低。于是会很自然地意识到,如果混合使用上述几种求解多目标优化问题的方法,将有可能尽量地克服各自的缺点,而充分地发挥各自的优点。

下面介绍一种使用遗传算法求解多目标优化问题的混合方法。该方法的主要思想是:选择算子的主体使用并列选择法,然后通过引入保留最佳个体和共享函数的思想来弥补仅仅只使用并列选择法的不足之处。算法的主要过程如下:

算法Hybrid Selection ①并列选择过程:

按所求多目标优化问题的子目标函致的个数,将整个群体均等地划分为一些子群体,各个子目标函数在相应的于群体中产生其下一代子群体。

②保留Pareto最优个体过程:

对于各个子群体中的Pareto最优个体,不让其参与个体的交叉运算和变异运算,而是将这个或这些Pareto最优个体直接保留到下一代于群体中。

③共享函数处理过程:

遗传算法教案

若所得到的Pareto最优个体的数量已超过规定的群体规模,则需要利用共享函数的处理方法来对这些Pareto最优个体进行挑选,以形成规定规模的新一代群体。

算例:

考虑下述含有二个优化目标的多目标优化问题:

对于该多目标优化问题,分别用并列选择法、排序选择法、共享函数法和混合法进行了求解。各种方法的运行结果分别如图所示,在各个图中,表示出了在遗传算法运行结束时的最终群体中所含全部个体的分布情况。

在求解时所使用的遗传算法中,各个变量用8位长的二进制编码串来表示,交叉运算使用单点交叉其子,变异运算使用基本位变异算子,各个运行参数为:

{M, T, pc, pm

} = {100, 100, 0.8, 0.01}

并列选择法的运行结果 排序选择法的运行结果

共享函数法的运行结果 混合法的运行结果

本文来源:https://www.bwwdw.com/article/n3lm.html

Top