开发研究与设计技术
本栏目责任编辑:谢媛媛
遗传算法求解函数极值的应用
周丽
1,2
,张智顺
3
(1.湖南农业大学理学院信息科学系,湖南长沙410128;2.湖南师范大学数学与计算机科学学院,湖南长沙410081;
3.贵州大学电子科学与信息技术学院,贵州贵阳550003)摘要:通过用遗传算法求高等数学中的函数极值问题,说明了遗传算法对连续、可导等条件的放宽,同时,也体现了遗传算法在求解高等数学中函数极值的良好应用。
关键词:遗传算法;编码;选择;杂交;变异中图分类号:TP18
文献标识码:A
文章编号:1009-3044(2007)21-40802-02
GeneticAlgorithmsfortheApplicationFunctionExtremum
ZHOULi1,2,ZHANGZhi-shun3
(1.Hu'nanAgriculturalUniversityCollegeofInformationScience,Changsha410128,China;2.Hu'nanNormalUniversityMathematicsandComputerScience,ChangSha410081;
3.GuizhouUniversityofElectronicScienceandInformationTechnologyInstitute,Guiyang550003,China)
Abstract:Byusinggeneticalgorithmsforhighermathematicsoffunctionoptimization,thegeneticalgorithmtocontinuous,derivativeandotherconditionsrelaxed.italsodemonstratedthegeneticalgorithmfortheHigherMathematicsfunctionextremumgoodapplication.
keywords:GeneticAlgorithms;Coding;Choice;Hybrid;Variation
遗传算法(geneticalgorithms,简称GA)是根据自然
现象而提出来的一种随机搜界的“物竞天择,适者生存”索算法,是霍兰德(Holland)于1975年在他的著作
中首次提出来《AdaptioninNaturalandartificialSystems》
的。此算法将优化问题看作是自然界中生物的进化过程,通过模拟大自然中生物进化过程中的遗传规律,来达到寻优的目的。
根据达尔文的进化论,在生物进化的过程中,生物的发展进化主要有3个原因,即遗传、变异、和选择。遗传是指子代总是和亲代相似,变异却是指那些不相似的现象,选择是指具有精选的能力,它决定生物进化的方向,适者生存,不适者淘汰。
下面我们用一个实例来说明遗传算法的选择、杂交、变异的三个生物进化过程。
设函数f(X)=18X-X^2其中X为[0,15]间的整数,求
此函数的最大值。
如果此问题用数学知识求解,很容易,如果把此函数看作是[0,15]的连续函数的话,
此函数的图象就是一条开口向下的抛物线,对称轴为
如果是不连续,又不可导呢?那样,我数,十分容易解出。
们就可以用遗传达算法来解决,为了方便演示遗传算法的如果编码、作出适应函数、选择初始种群、选择、杂交、变异等过程,为方便起见,我现在还是以上面那个函数为例:
现在我们用遗传算法来解答:
1遗传编码
由于X的定义域是[0,15]的整数,15<2^4,所以可以用四位的二进制来表示此问题。如:0000表示X=0,1111表示
X=15,其中0,1为基因,而此四位的二进制串就是染色体。
2做出适应函数
这里因为是求f(X)的最大值,所以可以直接用f(X)作为适应函数。
3选择初始种群
假设群体的规模N=4,交配概率P=100%,变异概率P=1%,且设初始群体为:1110、1001、0101、0011,则第为代群体的总体情况由下表1可知:
表1第0代情况表
X=-b/2a=9,因此,最大值在X=9处。
当然,也可以用求导的方法,先可出此函数的导数,再令导数为O,确定函数的极值点,但如果用求导的方法,须要求此函数可导。当然,这里因为是给出的初等函
收稿日期:2007-08-20
作者简介:周丽(1980-),女,湖南郴州人,硕士研究生,研究方向为数理统计;张智顺(1980-),男,湖南郴州人,硕士研究生,研究方向为信息系统的研究与开发。
802
电脑知识与技术
本栏目责任编辑:谢媛媛
从上表中可知:最大适应值为80,最小适应值为45,平均值为59.25,适应值总和为237。
开发研究与设计技术
表3第0代变异情况表
4选择
根据生物进化论,适应度越强的,适应值越大,选择概率越大,越可能被选上,期望次数也越大,而选择概率越小的就越有可能被淘汰,所以表1的群体经选择后,染色体
1110被选择一次,染色体1000被选择两次,染色体0100被选择一次,而染色体0011却被淘汰了。因此,得到第0代的种群为:1110、1000、1000、0100
这样就可以得到新群体(第1代群体)。第1代群体为:在此群体下的选择情况如表4所示:
1100、1010、1001、0100。
表4第1代情况表
5杂交
由于假定了交配概率是100%,所以种群中所有的染色体都参与杂交。假定种群中的染色体是按顺序两两配对杂交。可得下表2:
表2第0代种群的交配情况表
从上表中可知:最大适应值为81,最小适应值为56,平均值为59.25,适应值总和为289。
此时,刚好是问题的适应函数的最大值,对应染色体为
1001,故得到最优解为
X=(1001)的二进制为9。所以函数的最大值为81。
经过交配后,新群体为:1100、1010、1000、0100,其中最大的适应值仍为80,没有发生变化,但平均适应值为72,适应值总和为288。与第0代相比,最大适应值没有提高,平均适应值由61.5提高到了72,适应值总和由237提高到了
上述的交配到何时才能停止呢?一般可以通过规定的最大代数来定义,在达到了指定的进化代后,算法停止。或是如果经过连续进化后,得到的最优解没有任何变化,此时也可以停止交配。
通过上例求函数的极大值问题,说明了遗传算法是一种很好的方法,它可以不需要适应函数的连续性,可导性。放宽了高等数学中求极值时的条件。同时,经过编码后,只可见,遗传算法,在高数求解需做适应值的计算,操作简单。极值问题中发挥了良好的作用。
288。
我们可以发现,上面的群体:1100、1010、1000、0100,不管怎么杂交都无法得到最后最后一位基因为1。因此,已经不可能通过交配达到最优解了。这种过早的陷入局部最优解的早熟现象。
6变异
扩大群体的规模可以防止早熟现象的发生,因此遗传算法一般要求具有一定的群体规模。变异也可以提高群体的多样性,从而为防止出现早熟起到一定的作用。比如:我们在表2所示的子代中染色体1000的第四位基因发生变
异,变成为1001,如表3所示:
(上接第801页)
参考文献:
[1]马少平,朱小燕.人工智能[M].清华大学出版社,2004.[2]曹承志.智能技术[M].清华大学出版社,2004.
[3]蔡自兴,徐光佑.人工智能及其应用[M].清华大学出版社,2004.
[4]朱福喜,杜友福.人工智能引论[M].武汉大学出版社,2006.
6结束语
本文给出了Timer控件的几种用法,起抛砖引玉的作用。Timer控件的作用还有待进一步挖掘。
Case4,5,6
P1.Picture=LoadPicture("绿灯.ico")fbThenTimer2.Enabled=bEndSelect
(10)设置Timer2的Timer事件代码如下:
If(a<4)And(P2.Left>P1.LeftAndP2.Left<P1.Left+P1.Width)OrP2.Left<=100Then
Timer2.Enabled=FalseElse
P2.MoveP2.Left-10,P2.Top,P2.Width,P2.HeightEndIf
运行程序即可完成信号灯指挥交通的功能。
参考文献:
[1]刘瑞新,文成林,汪远征.VisualFoxPro程序设计教程[M].机械工业出版社,2004.86-89.
[2]龚沛曾,陆尉民,杨志强.VisualBasic程序设计简明教程[M].高等教育出版社,2001.154-156.
[3]张毅,王晓强,等.VisualBasic应用技巧与常见问题你问我答[M].北京机械工业出版社,2003.206-210.
[4]申石磊,张东生.VisualBasic程序设计[M].中国科学技术出版社,2007.31-32.
803
开发研究与设计技术
本栏目责任编辑:谢媛媛
遗传算法求解函数极值的应用
周丽
1,2
,张智顺
3
(1.湖南农业大学理学院信息科学系,湖南长沙410128;2.湖南师范大学数学与计算机科学学院,湖南长沙410081;
3.贵州大学电子科学与信息技术学院,贵州贵阳550003)摘要:通过用遗传算法求高等数学中的函数极值问题,说明了遗传算法对连续、可导等条件的放宽,同时,也体现了遗传算法在求解高等数学中函数极值的良好应用。
关键词:遗传算法;编码;选择;杂交;变异中图分类号:TP18
文献标识码:A
文章编号:1009-3044(2007)21-40802-02
GeneticAlgorithmsfortheApplicationFunctionExtremum
ZHOULi1,2,ZHANGZhi-shun3
(1.Hu'nanAgriculturalUniversityCollegeofInformationScience,Changsha410128,China;2.Hu'nanNormalUniversityMathematicsandComputerScience,ChangSha410081;
3.GuizhouUniversityofElectronicScienceandInformationTechnologyInstitute,Guiyang550003,China)
Abstract:Byusinggeneticalgorithmsforhighermathematicsoffunctionoptimization,thegeneticalgorithmtocontinuous,derivativeandotherconditionsrelaxed.italsodemonstratedthegeneticalgorithmfortheHigherMathematicsfunctionextremumgoodapplication.
keywords:GeneticAlgorithms;Coding;Choice;Hybrid;Variation
遗传算法(geneticalgorithms,简称GA)是根据自然
现象而提出来的一种随机搜界的“物竞天择,适者生存”索算法,是霍兰德(Holland)于1975年在他的著作
中首次提出来《AdaptioninNaturalandartificialSystems》
的。此算法将优化问题看作是自然界中生物的进化过程,通过模拟大自然中生物进化过程中的遗传规律,来达到寻优的目的。
根据达尔文的进化论,在生物进化的过程中,生物的发展进化主要有3个原因,即遗传、变异、和选择。遗传是指子代总是和亲代相似,变异却是指那些不相似的现象,选择是指具有精选的能力,它决定生物进化的方向,适者生存,不适者淘汰。
下面我们用一个实例来说明遗传算法的选择、杂交、变异的三个生物进化过程。
设函数f(X)=18X-X^2其中X为[0,15]间的整数,求
此函数的最大值。
如果此问题用数学知识求解,很容易,如果把此函数看作是[0,15]的连续函数的话,
此函数的图象就是一条开口向下的抛物线,对称轴为
如果是不连续,又不可导呢?那样,我数,十分容易解出。
们就可以用遗传达算法来解决,为了方便演示遗传算法的如果编码、作出适应函数、选择初始种群、选择、杂交、变异等过程,为方便起见,我现在还是以上面那个函数为例:
现在我们用遗传算法来解答:
1遗传编码
由于X的定义域是[0,15]的整数,15<2^4,所以可以用四位的二进制来表示此问题。如:0000表示X=0,1111表示
X=15,其中0,1为基因,而此四位的二进制串就是染色体。
2做出适应函数
这里因为是求f(X)的最大值,所以可以直接用f(X)作为适应函数。
3选择初始种群
假设群体的规模N=4,交配概率P=100%,变异概率P=1%,且设初始群体为:1110、1001、0101、0011,则第为代群体的总体情况由下表1可知:
表1第0代情况表
X=-b/2a=9,因此,最大值在X=9处。
当然,也可以用求导的方法,先可出此函数的导数,再令导数为O,确定函数的极值点,但如果用求导的方法,须要求此函数可导。当然,这里因为是给出的初等函
收稿日期:2007-08-20
作者简介:周丽(1980-),女,湖南郴州人,硕士研究生,研究方向为数理统计;张智顺(1980-),男,湖南郴州人,硕士研究生,研究方向为信息系统的研究与开发。
802
电脑知识与技术
本栏目责任编辑:谢媛媛
从上表中可知:最大适应值为80,最小适应值为45,平均值为59.25,适应值总和为237。
开发研究与设计技术
表3第0代变异情况表
4选择
根据生物进化论,适应度越强的,适应值越大,选择概率越大,越可能被选上,期望次数也越大,而选择概率越小的就越有可能被淘汰,所以表1的群体经选择后,染色体
1110被选择一次,染色体1000被选择两次,染色体0100被选择一次,而染色体0011却被淘汰了。因此,得到第0代的种群为:1110、1000、1000、0100
这样就可以得到新群体(第1代群体)。第1代群体为:在此群体下的选择情况如表4所示:
1100、1010、1001、0100。
表4第1代情况表
5杂交
由于假定了交配概率是100%,所以种群中所有的染色体都参与杂交。假定种群中的染色体是按顺序两两配对杂交。可得下表2:
表2第0代种群的交配情况表
从上表中可知:最大适应值为81,最小适应值为56,平均值为59.25,适应值总和为289。
此时,刚好是问题的适应函数的最大值,对应染色体为
1001,故得到最优解为
X=(1001)的二进制为9。所以函数的最大值为81。
经过交配后,新群体为:1100、1010、1000、0100,其中最大的适应值仍为80,没有发生变化,但平均适应值为72,适应值总和为288。与第0代相比,最大适应值没有提高,平均适应值由61.5提高到了72,适应值总和由237提高到了
上述的交配到何时才能停止呢?一般可以通过规定的最大代数来定义,在达到了指定的进化代后,算法停止。或是如果经过连续进化后,得到的最优解没有任何变化,此时也可以停止交配。
通过上例求函数的极大值问题,说明了遗传算法是一种很好的方法,它可以不需要适应函数的连续性,可导性。放宽了高等数学中求极值时的条件。同时,经过编码后,只可见,遗传算法,在高数求解需做适应值的计算,操作简单。极值问题中发挥了良好的作用。
288。
我们可以发现,上面的群体:1100、1010、1000、0100,不管怎么杂交都无法得到最后最后一位基因为1。因此,已经不可能通过交配达到最优解了。这种过早的陷入局部最优解的早熟现象。
6变异
扩大群体的规模可以防止早熟现象的发生,因此遗传算法一般要求具有一定的群体规模。变异也可以提高群体的多样性,从而为防止出现早熟起到一定的作用。比如:我们在表2所示的子代中染色体1000的第四位基因发生变
异,变成为1001,如表3所示:
(上接第801页)
参考文献:
[1]马少平,朱小燕.人工智能[M].清华大学出版社,2004.[2]曹承志.智能技术[M].清华大学出版社,2004.
[3]蔡自兴,徐光佑.人工智能及其应用[M].清华大学出版社,2004.
[4]朱福喜,杜友福.人工智能引论[M].武汉大学出版社,2006.
6结束语
本文给出了Timer控件的几种用法,起抛砖引玉的作用。Timer控件的作用还有待进一步挖掘。
Case4,5,6
P1.Picture=LoadPicture("绿灯.ico")fbThenTimer2.Enabled=bEndSelect
(10)设置Timer2的Timer事件代码如下:
If(a<4)And(P2.Left>P1.LeftAndP2.Left<P1.Left+P1.Width)OrP2.Left<=100Then
Timer2.Enabled=FalseElse
P2.MoveP2.Left-10,P2.Top,P2.Width,P2.HeightEndIf
运行程序即可完成信号灯指挥交通的功能。
参考文献:
[1]刘瑞新,文成林,汪远征.VisualFoxPro程序设计教程[M].机械工业出版社,2004.86-89.
[2]龚沛曾,陆尉民,杨志强.VisualBasic程序设计简明教程[M].高等教育出版社,2001.154-156.
[3]张毅,王晓强,等.VisualBasic应用技巧与常见问题你问我答[M].北京机械工业出版社,2003.206-210.
[4]申石磊,张东生.VisualBasic程序设计[M].中国科学技术出版社,2007.31-32.
803