最优化方法 第四章(遗传算法)
- 格式:pdf
- 大小:1.38 MB
- 文档页数:62
第四章遗传算法在经济活动中,很多实际优化问题涉及到大量参数的优化,或者寻找问题的全局最优解。
这些问题不仅仅涉及大量计算,而且往往难以给出精确的数学模型,或者有了数学模型,也难以求出解析解来。
有的搜索问题还面临着组合爆炸,常规算法无法应付。
这些困难使得一些学者们寻求一种适于大规模并行且具有某些智能特征如自组织、自适应、自学习等的算法。
遗传算法(Genetic Algorithm, GA)就是一种伴随解决此类复杂的、非线性问题而发展起来的广为应用的、高效的随机全局搜索与优化的自适应智能算法。
第一节引言一、遗传算法的生物学意义遗传算法的生物学基础是达尔文进化论和孟德尔遗传变异理论。
根据达尔文进化论,地球上的每一物种从诞生开始就进入了漫长的进化历程。
生物种群从低级、简单的类型逐渐发展成为高级、复杂的类型。
各种生物要生存下去就必须进行生存斗争,包括同一种群内部的斗争、不同种群之间的斗争,以及生物与自然界无机环境之间的斗争。
具有较强生存能力的生物个体容易存活下来,并有较多的机会产生后代;具有较低生存能力的个体则被淘汰,或者产生后代的机会越来越少,直至消亡。
达尔文把这一过程和现象叫做“自然选择、适者生存”。
按照孟德尔遗传学理论,遗传物质是作为一种指令密码封装在每个细胞中,并以基因的形式排列在染色体上,每个基因有特殊的位置并控制生物的某些特性。
不同的基因组合产生的个体对环境的适应性不一样,通过基因杂交和突变可以产生对环境适应性强的后代。
经过优胜劣汰的自然选择,适应值高的基因结构就得以保存下来,从而逐渐形成了经典的遗传学染色体理论,揭示了遗传和变异的基本规律。
现代遗传学则对基因的本质、功能、结构、突变和调控进行了深入探讨,开辟了遗传工程研究的新领域。
在一定的环境影响下,生物物种通过自然选择、基因交换和变异等过程进行繁殖生长,构成了生物的整个进化过程。
生物进化过程的发生需要四个基本条件:(1)存在由多个生物个体组成的种群;(2)生物个体之间存在着差异,或群体具有多样性;(3)生物能够自我繁殖;(4)不同个体具有不同的环境生存能力,具有优良基因结构的个体繁殖能力强,反之则弱。
遗传算法遗传算法是一种借鉴生物遗传和进化机制寻求最优解的计算方法。
该方法模拟生物进化中的复制、交换、变异等过程,并通过模拟自然选择压力的方式推动问题解集向最优解方向移动。
遗传算法为解决多种难以采用传统数学方法求解的复杂问题提供了新的思路。
1. 遗传算法的发展历史研究者采用计算机模拟生物进化过程并解决优化问题的尝试始于20世纪40至50年代。
20世纪60年代中期,美国密歇根大学的Holland教授提出了位串编码技术,这种编码技术适用于变异操作和交叉操作,他指出在研究和设计人工自适应系统时可借鉴生物遗传的机制,以群体的方式进行自适应搜索。
70年代中期,Holland提出遗传算法的模式定理(Schema Theorem),奠定了遗传算法的理论基础。
11967年,Holland教授的学生De Jong首次将遗传算法应用于函数优化中,2设计了遗传算法执行策略和性能评价指标。
他挑选的5个专门用于遗传算法数值实验的函数至今仍被频繁使用,而他提出的在线(on-line)和离线(off-line)指标则仍是目前衡量遗传算法优化性能的主要手段。
1989年,Goldberg出版专著“Genetic Algorithm in Search, Optimization, and Machine learning”3。
该书全面阐述了遗传算法的基本原理及应用,并系统总结了遗传算法的主要研究成果。
该书对遗传算法科学基础的奠定做出了重要贡献。
1991年,Davis编辑出版了专著“Handbook of Genetic Algorithms”,该书中介绍了遗传算法在工程技术和社会生活中的大量应用实例。
41992年,美国斯坦福大学的Koza出版专著“Genetic Programming, on the Programming of Computers by Means of Natural Selection”,在此书中,他将遗传算法应用于计算机程序的优化设计和自动生成,并在此基础上提出遗传编程(Genetic Programming, GP)的概念5。
遗传算法研究综述罗九晖统计学 132111059优化是科学研究、工程技术以及经济管理等等领域的重要研究对象。
优化问题广泛存在于各个领域中,学者对该问题的求解研究从未停止。
一、优化算法概述优化问题是个古老的课题,目前,对优化问题的求解研究主要有三个方向:(1)经典精确优化算法(数值最优化)该算法主要用来处理目标函数以及约束条件有具体的解析表达式且存在导数的情况。
它是先利用求导或者变分法得到极值点存在的必要条件(通常是一组方程或不等式),然后再求解细方程或不等式。
(2)经典近似优化算法(解析最优化)通过最优解的性质建立迭代公式求最优解。
(3)智能算法(仿生算法、演化算法、进化算法)数值优化算法和解析优化算法必须建立在目标函数存在导数的性质条件下进行,而在实际中碰到的很多优化问题的目标函数并不存在导数。
因此,近年来,学者们以模拟物质变化过程或模拟生命体而设计的搜索方式为基础,提出各种算法,这类算法就是智能算法。
二、智能算法概述智能是在任意给定的环境和目标条件下,正确制定决策和实现目标的能力。
智能优化算法则是将生物行为与计算机科学相结合,解决优化问题,制定最优化决策。
目前,智能算法有以下几类:(1)模拟退火算法模拟退火算法是基于蒙特卡洛迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性(即:退火过程中,固体最终达到能量最小的状态,对应于优化算法最终找到了最优解)而设计的一种智能优化算法,该算法将固体的退火过程与优化问题的求解过程有机的结合起来,因此该算法被称为模拟退火算法。
(2)禁忌搜索算法所谓禁忌就是禁止重复前面的工作。
为了回避局部邻域搜索陷入局部最优的主要不足,禁忌搜索算法用一个禁忌表来记录已经达到过的局部最优点,在下一次的搜索中,利用禁忌表中的信息不再或有选择地搜索这些点,以此来跳出局部最优点。
(3)蚁群算法蚂蚁在运动过程中,能够在它所经过的路径上留下该种物质,而且能够感知这种物质的存在及其强度, 并以此指导自己的运动方向。
最优化计算方法---遗传算法1 遗传算法的历史简介二十世纪六十年代,I.Rechenberg在他的《演化战略》中第一次引入了进化算法的思想(起初称之为Evolutionsstragegie)。
他的这一思想逐渐被其他一些研究者发展。
遗传算法(Genetic Algorithms)是John Holland发明的,后来他和他的学生及他的同事又不断发展了它。
终于,在1975年John Holland出版了专著《自然系统和人工系统中的自适应》(Adaptation In Natural and Artificial Systems)。
1992年,John Koza曾经使用遗传算法编出新的程序去做一些具体的工作。
他称他的这种方法为“进化规划”(Genetic Programming,简称GP)。
其中使用了LISP规划方法,这是因为这种语言中的程序被表示为“分析树”(Parse Tree),而这种遗传算法就是以这些分析树为对象的。
2 生物学与进化论背景1)基因所有的生物都是由细胞组成的。
在每一个细胞中都有想同序列的染色体。
染色体是一串DNA的片断,它为整个有机体提供了一种复制模式。
染色体是由基因组成的,或者说染色体就是一块块的基因。
每一个基因为一个特定的蛋白质编码。
或者更简单的说,每一个基因为生物体的某一特定特征编码,比如说眼睛的颜色。
所有可能的某一特定特征的属性(比如:蓝色,桔黄色等)被称之为等位基因。
每一个基因在染色体上都有其特定的位置,这个位置一般被称作位点(Locus)。
全部序列的基因物质(或者全部的染色体)称之为基因组(或染色体组)(Genome)。
基因组上特定序列的基因被称作基因型(Genotype)。
基因型和后天的表现型两者是有机体的显性、生理和心理特征。
比如说眼睛的颜色、智力的基础。
2)复制(Reproduction)在复制中,首先发生的是交叉(Crossover)。
来自于父代的基因按照一定的方式组成了新的基因。
遗传算法的基本原理和⽅法遗传算法的基本原理和⽅法⼀、编码编码:把⼀个问题的可⾏解从其解空间转换到遗传算法的搜索空间的转换⽅法。
解码(译码):遗传算法解空间向问题空间的转换。
⼆进制编码的缺点是汉明悬崖(Hamming Cliff),就是在某些相邻整数的⼆进制代码之间有很⼤的汉明距离,使得遗传算法的交叉和突变都难以跨越。
格雷码(Gray Code):在相邻整数之间汉明距离都为1。
(较好)有意义的积⽊块编码规则:所定编码应当易于⽣成与所求问题相关的短距和低阶的积⽊块;最⼩字符集编码规则,所定编码应采⽤最⼩字符集以使问题得到⾃然的表⽰或描述。
⼆进制编码⽐⼗进制编码搜索能⼒强,但不能保持群体稳定性。
动态参数编码(Dynamic Paremeter Coding):为了得到很⾼的精度,让遗传算法从很粗糙的精度开始收敛,当遗传算法找到⼀个区域后,就将搜索现在在这个区域,重新编码,重新启动,重复这⼀过程,直到达到要求的精度为⽌。
编码⽅法:1、⼆进制编码⽅法缺点:存在着连续函数离散化时的映射误差。
不能直接反映出所求问题的本⾝结构特征,不便于开发针对问题的专门知识的遗传运算算⼦,很难满⾜积⽊块编码原则2、格雷码编码:连续的两个整数所对应的编码之间仅仅只有⼀个码位是不同的,其余码位都相同。
3、浮点数编码⽅法:个体的每个基因值⽤某⼀范围内的某个浮点数来表⽰,个体的编码长度等于其决策变量的位数。
4、各参数级联编码:对含有多个变量的个体进⾏编码的⽅法。
通常将各个参数分别以某种编码⽅法进⾏编码,然后再将他们的编码按照⼀定顺序连接在⼀起就组成了表⽰全部参数的个体编码。
5、多参数交叉编码:将各个参数中起主要作⽤的码位集中在⼀起,这样它们就不易于被遗传算⼦破坏掉。
评估编码的三个规范:完备性、健全性、⾮冗余性。
⼆、选择遗传算法中的选择操作就是⽤来确定如何从⽗代群体中按某种⽅法选取那些个体遗传到下⼀代群体中的⼀种遗传运算,⽤来确定重组或交叉个体,以及被选个体将产⽣多少个⼦代个体。