1、江西理工大学2010届本科生毕业设计(论文)摘 要随着科学技术的发展,各学科交叉渗透,利用遗传算法用于解决传统计算所遇到的寻找最优解或准优解显得尤为重要。因此,研究能在搜索过程中自动获得和积累有关搜索空间的知识,并能自适应地控制搜索过程,从而得到最优解或准有解的通用搜索算法一直是令人瞩目的课题。遗传算法经实践证明特别有效的算法。本课题将在对神经网络、遗传算法等进行基础理论研究的前提下,注重对遗传算法的C语言实现进行研究,同时对GA在优化和神经网络训练等方面的应用和实现进行较深入的探讨。本文阐述了将遗传算法用于神经网络权值学习和训练的原理和方法,并详述了神经网络权值学习和训练中遗传算法的具体实现
2、过程。关键词:遗传算法;神经网络;繁殖;交叉;变异;适应度ABSTRACTWith the development of science and technology, infiltrated the various disciplines, the traditional use of genetic algorithms for solving encountered calculation to find the optimal solution or quasi-optimal solution is very important. Therefore, the study can b
3、e automatically in the search process and the accumulation of knowledge of the search space, and can adaptively control the search process, thereby yielding the optimal solution or the quasi-solvability of the general search algorithm has been a remarkable subject. GA proven particularly effective m
4、ethod. This issue will be on neural networks, genetic algorithms and basic premise of theory, focusing on the C language implementation of genetic algorithm research, while GA optimization and neural network training in the areas of application and implementation of more in-depth . In this paper, ge
5、netic algorithm neural network weight learning and training principles and methods, and detailed study of neural network weights and training in the specific realization of genetic algorithmKey words: genetic algorithm; neural network; fitness; crossover ;mutation breeding;毕业设计(论文)原创性声明和使用授权说明原创性声明本
6、人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印
7、、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权
8、 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日目 录第一章 绪论41.1遗传算法的产生及特点41.2遗传算法的发展及其应用51.3本课题的选题背景51.5本课题研究目的与意义6第二章 神经元网络及BP算法72.1 神经网络概述72.2 神经元的数学模型72.3 BP学习算法92.4 BP算法的原理9第三章遗传算法1531遗传算法概述153.2遗传算法的步骤163.2.1编码问题163.2.3选择173.2.4交叉183.2.5变异193.2.
9、6全局最优收敛19第四章 遗传算法在神经网络中的应用214.1遗传算法与神经网络的结合214.2遗传算法训练神经网络C语言实现224.2.1用遗传算法训练神经网络的要求224.2.3遗传算法训练神经网络C语言实现244.3 结果分析35第五章 结束语38参考文献:39第一章 绪论BP网(Back Propagation Network)是目前应用最为广泛的神经网络,具有相当强的输入输出映射能力但是,由于BP算法的基本思想是最小二乘法,采用的是梯度搜索技术,难免存在收敛速度慢、局部极小等问题。神经网络和遗传算法都是比较先进的计算方法,它们已成功地应用于工业、经济管理、交通运输、工业设计等领域,解
10、决了许多问题。但是神经网络权值训练和学习过程的复杂和长期性,特别是神经网络易有训练过度的缺点,这些都大大影响了神经网络的更广泛普及和应用。遗传算法是一种高效和计算简单的优化算法,它完全可以应用于神经网络权值的训练和学习中,提高神经网络的学习效率和学习速度,减轻网络学习过度的问题,为神经网络的更广泛应用奠定基础。1.1遗传算法的产生及特点遗传算法是根据生物进化思想而启发得出的一种全局优化算法,并且遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型。它的思想源于生物遗传学和适者生存的自然规律,是具有“生存检测”的迭代过程的搜索算法。遗传算法以一种群体中的所有个体为对象,并利用随机化技
11、术指导对一个被编码的参数空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传操作;参数编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要素组成了遗传算法的核心内容。 作为一种新的全局优化搜索算法,遗传算法以其简单通用、鲁棒性强、适于并行处理以及高效、实用等显著特点,在各个领域得到了广泛应用,取得了良好效果,并逐渐成为重要的智能算法之一。遗传算法作为一种快捷、简便、容错性强的算法,在各类结构对象的优化过程中显示出明显的优势。与传统的搜索方法相比,遗传算法具有如下特点:搜索过程不直接作用在变量上,而是在参数集进行了编码的个体。此编码操作,使得遗传算法可直接对结构对象(
12、集合、序列、矩阵、树、图、链和表)进行操作。搜索过程是从一组解迭代到另一组解,采用同时处理群体中多个个体的方法,降低了陷入局部最优解的可能性,并易于并行化。采用概率的变迁规则来指导搜索方向,而不采用确定性搜索规则。对搜索空间没有任何特殊要求(如连通性、凸性等),只利用适应性信息,不需要导数等其它辅助信息,适应范围更广。遗传算法具有许多独特的优点:1遗传算法从问题解的中集开始嫂索,而不是从单个解开始。这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。2遗传算法求解时使用特定问题的信息极少,容易形成通
13、用算法程序。由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,几乎可处理任何问题。 3遗传算法有极强的容错能力遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。4遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的覆盖。5遗传算法具有隐含的并行性。遗传算法在操作上具有
14、高度的并行性,许多研究人员都在探索在并行机和分布式系统上高效执行遗传算法的策略。对分布并行遗传算法的研究表明,只要通过保持多个群体和恰当控制群体间的相互作用来模拟并行执行过程,即使不使用并行计算机,也能提高算法的执行效率。1.2遗传算法的发展及其应用遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地
15、调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术。 遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型。它的思想源于生物遗传学和适者生存的自然规律,是具有“生存检测”的迭代过程的搜索算法。遗传算法以一种群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传操作;参数编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要素组成了遗传算法的核心内容。 作为一种新的全局优化搜索算法,遗传算
16、法以其简单通用、鲁棒性强、适于并行处理以及高效、实用等显著特点,在各个领域得到了广泛应用,取得了良好效果,并逐渐成为重要的智能算法之一。1.3本课题的选题背景当前科学技术正进入多学科互相交叉、互相渗透、互相影响的时代,生命科学与工程科学的交叉、渗透和相互促进是其中一个典型例子,也是近代科学技术发展的一个显著特点。但是,近年来,随着人工智能应用领域的不断拓广,传统的基于符号处理机制的人工智能方法在知识表示、处理模式信息及解决组合爆炸等方面所碰到的问题已变得越来越突出,有不少问题需要在复杂而庞大的搜索空间中寻找最优解或准优解。在求解此类问题时,若不能利用问题的固有知识来缩小搜索空间则会产生搜索的组
17、合爆炸。因此,研究能在搜索过程中自动获得和积累有关搜索空间的知识,并能自适应地控制搜索过程,从而得到最优解或准有解的通用搜索算法一直是令人瞩目的课题。遗传算法就是在这种背景下产生并经实践证明特别有效的算法。1.4本课题主要研究内容学习是神经网络研究的一个重要内容,它的适应性是通过学习实现的。根据环境的变化,对权值进行调整,改善系统的行为。由Hebb提出的Hebb学习规则为神经网络的学习算法奠定了基础。Hebb规则认为学习过程最终发生在神经元之间的突触部位,突触的联系强度随着突触前后神经元的活动而变化。在此基础上,人们提出了各种学习规则和算法,以适应不同网络模型的需要。有效的学习算法,使得神经网
18、络能够通过连接权值的调整,构造客观世界的内在表示,形成具有特色的信息处理方法,信息存储和处理体现在网络的连接中。1.5本课题研究目的与意义本课题任务主要是在监督学习中,利用C语言编程,研究通过GA算法直接训练神经网络和训练初始权值的方法。将训练样本的数据加到网络输入端,同时将相应的期望输出与网络输出相比较,得到误差信号,以此控制权值连接强度的调整,经多次训练后收敛到一个确定的权值。当样本情况发生变化时,经学习可以修改权值以适应新的环境。第二章 神经元网络及BP算法2.1 神经网络概述神经网络是大量的简单神经元按一定规则连接构成的网络系统。网络能够模拟人类大脑的结构和功能,自1943年第一个神经
19、网络模型MP模型提出至今,神经网络发展非常迅速。特别是1982年提出的Hopfield 网络模型和1985年提出的BP算法,神经网络逐步得到更加广泛的应用。神经网络是由大量神经元广泛互连形成大规模并行处理和分布式的信息存储的复杂网络系统。单一神经元可以有许多输入、输出。神经元之间的相互作用通过连接的权重体现,神经元的输出是其输入的函数。单一简单的神经元,经过大规模的互联形成了复杂庞大的系统,可实现多种多样的日任务。神经网络计算的基本特征是大规模并行处理、容错性、自适应性和自组织性。大规模并行处理指能同时处理与决策有关的因素采用某种学习算法从训练样本中学习,并将获取的知识存储在网络各单元之间的连
20、接权中,神经网络和基于符号的传统K9技术相比,具有直观性、并行性和抗噪性。目前已出现了多种网络模型和学习算法,主要用于分类、优化、模式识别、预测和控制等领域。2.2 神经元的数学模型从神经元的特性和功能可以知道,神经元是一个多输入单输出的信息处理单元,而且它对信息的处理是非线性的。根据神经元的特性和功能,可以把神经元抽象为一个简单的数学模型。工程上用的人工神经元模型如图2-2所示。 图2-2 神经元的数学模型在图22中,是神经元的输入,即是来自前级n个神经元的轴突的信息W是i神经元的阀值;,分别是i神经元对,的权系数,也即突触的传递效率;是i神经元的输出;f是激发函数,它决定i神经元受到输人,
21、的共同刺激达到阀值时以何种方式输出。 从图2-2的神经元模型,可以得到神经元的数学模型表达式: (2-1)图2-3.典型激发函数对于激发函数f有多种形式,其中最常见的有阶跃型、线性型和S型三种形式,这三种形式如图23所示。 为了表达方便;令:= (2-2)则公式(2-1)可写成下式: =F ; (2-3)显然,对于阶跃型激发函数有: (2-4)对于线性型激发函数,有: f()=; (2-5)对于S型激发函数,有: (2-6)对于阶跃型激发函数,它的输出是单位脉冲,故而这种激发函数的神经元称离散输出模型。 对于线性激发函数,它的输出是随输入的激发总量成正比的;故这种神经元称线性连续型模型。对于用
22、s型激发函数,它的输出是非线性的;故这种神经元称非线性连续型模型。 阀值函数(Thresh0ld Function)阀值函数又叫阶跃函数,当激活函数仅用来实现判定神经元所获得的网络输入是否超过闭值时,使用此函数。 (2-7)其小,、均为非负实数。通常,人们都用公式(27)的二值形式: 有时候,还将公式(28)中的0改为1,此时就变成了双极形式: (2-8)上面所叙述的是最广泛应用而且人们最熟悉的神经元数学模型;也是历史最长的神经元模型。近若干年来,随着神经网络理论的发展,出现了不少新颖的神经元数学模型,这些模型包括逻辑神经元模型,模糊神经元模型等,并且渐渐也受到人们的关注和重视。2.3 BP学
23、习算法反向传播算法也称BP算法。由于这种算法在本质上是一种神经网络学习的数学模型,所以,有时也称为BP模型。BP(Back propagation)神经网络又称为多层前馈神经网络,这种神经网络模型的特点是:各层神经元仅与相邻层神经元之间有连接;各层内神经元之间无任何连接;各层神经元之间无反馈连接。BP算法是为了解决多层前向神经网络的权系数优化而提出来的;所以,BP算法也通常暗示着神经网络的拓扑结构是一种无反馈的多层前向网络。故而有时也称无反馈多层前向网络为BP模型。在这里,并不要求过于严格去争论和区分算法和模型两者的有关异同。感知机学习算法是一种单层网络的学习算法。在多层网络中它只能改变最后权
24、系数。因此,感知机学习算法不能用于多层神经网络的学习。1986年,Rumel hart提出了反向传播学习算法,即BP(back-propagation)算法。这种算法可以对网络中各层的权系数进行修正,故适用于多层网络的学习。BP算法是目前最广泛用的神经网络学习算法之一,在自动控制中是最有用的学习算法。2.4 BP算法的原理BP算法是用于前馈多层网络的学习算法,前馈多层网络的结构一般如图2-4所示图2-4 网络学习结构它含有输人层、输出层以及处于输入输出层之间的中间层。中间层有单层或多层,由于它们和外界没有直接的联系,故也称为隐层。在隐层中的神经元也称隐单元。隐层虽然和外界不连接但是,它们的状态
25、则影响输入输出之间的关系。这也是说,改变隐层的权系数,可以改变整个多层神经网络的性能。设有一个m层的神经网络,并在输入层加有样本X;设第k层的i神经元的输入总和表示为,输出;从第k1层的第j个神经元到第k层的第i个神经元的权系数为各个神经元的激发函数为f,则各个变量的关系可用下面有关数学式表示: (2-9) (2-10)反向传播算法分二步进行,即正向传播和反向传播。这两个过程的工作简述如下:1正向传播输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐层之后,则传向输出层;在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行
26、输出不等于期望输出,则进入反向传播过程。2反向传播反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以望误差信号趋向最小。2.5 BP算法的数学表达BP算法实质是求取误差函数的最小值问题。这种算法采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权系数。为了说明BP算法,首先定义误差函数e。取期望输出和实际输出之差的平方和为误差函数,则有: (2-11)其中:Yi是输出单元的期望值;它也在这里用作教师信号; 是实际输出;因为第m层是输出层。由于BP算法按误差函数e的负梯度方向修改权系数,故权系数的修改量A,和e - (2-12)也可写成- (
27、2-13)其中:为学习速率,即步长。 很明显,根据BP算法原则,求是最关键的。下面求;有 (2-14)由于 (2-15)故而 (2-16)从而有 (2-17)令 (2-18)则有学习公式: (2-19)从公式(2-9)可知在公式(2-17)中,有其中:为学习速率,即步长,一般取0-1间的数。从上面可知,实际仍末给出明显的算法公式,下面求的计算公式。 (2-20)从公式(2-9)可知在公式(2-20)中,有 (2-21)为了方便进行求导,取f为连续函数。一般取非线性连续函数,例如Sigmoid函数。当取f为非对称Sigmoid函数时,有: (2-22)则有 (2-23)再考虑式(2-20)中的偏
28、微分项e,有两种情况需考虑的:如果km,则是输出层,这时有是输出期望值,它是常数。由于公式(2-11)中有 (2-24)从而有= (1-)(-Yi) (2-25)2如果km,则该层是隐层。这时应考虑上一层对它的作用,故有: (2-26)从公式(2-18)中,可知有: (2-27)从公式(2-10)中,可知有: (2-28)故而有: (2-29)最后有: (2-30)从上述过程可知:多层网络的训练方法是把一个样本加到输入层,并根据向前传播的规则: (2-31)不断一层一层向输出层传递,最终在输出层可以得到输出。把和期望输出进行比较如果两者不等,则产生误差信号e,接着则按下面公式反向传播修改权系数
29、: (2-32)其中 (2-33) (2-34)上面公式中,求取本层时,要用到高一层的;可见,误差函数的求取是从输出层开始,到输入层的反向传播过程。在这个过程中不断进行递归求误差。 通过多个样本的反复训练,同时向误差渐渐减小的方向对权系数进行修正,以达最终消除误差。从上面公式也可以知道,如果网络的层数较多时,所用的计算量就相当可观,故而收敛速度不快。为了加快收敛速度,一般考虑上一次的权系数,并以它作为本次修正的依据之一,故而有修正公式: (2-35)其中:为学习速率,即步长,0.10.4左右 为权系数修正常数,取0.70.9左右。在上面,公式(2-32)也称为一般化的Delta法则。对于没有隐
30、层的神经网络,可取 (2-36)其中:为期望输出; 为输出层的实际输出;为输入层的输入。这显然是一种十分简单的情况,公式(2-36)也称为简单Delta法则。在实际应用中,只有一般化的Delta法则公式(2-36)或公式(2-35)才有意义。简单Delta法则式(2-36)只在理论推导上有用。第三章遗传算法31遗传算法概述遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些能适应环境的个体特征方能保留下来
31、。Mendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:注意以下格式问题!一、串(String) 它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)。二、群体(Population)个
32、体的集合称为群体,串是群体的元素三、群体大小(Population Size)在群体中个体的数量称为群体的大小。四、基因(Gene)基因是串中的元素,基因用于表示个体的特征。例如有一个串S1011,则其中的1,0,1,1这4个元素分别称为基因。它们的值称为等位基因(Alletes)。 五 、基因位置(Gene Position)一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)。六、基因特征值(Gene Feature) 在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1
33、011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。七、串结构空间SS 在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。八、参数空间SP这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。九、非线性它对应遗传学中的异位显性(Epistasis)十、适应度(Fitness)表示某一个体对于环境的适应程度。3.2遗传算法的步骤3.2.1编码问题标准遗传算法主要通过遗传操作(交叉与变异)对种群中的个体施加结构重组处理,通过选择操作不断优化群体中的个体结构,
34、从而搜索到最优结构的个体,达到逼近问题的最优解的目的。由此可见,标准遗传算法不能直接对问题空间进行操作,必须将问题空间的解变量转换成遗传空间,由基因按一定结构组成染色体,这一转换操作就叫做编码。(一)编码原则评价编码策略通常考虑一下三个方面:(1)完备性。问题空间中的所有点都能作为遗传空间中的点(染色体)来表现。(2)健全性。遗传空间中的染色体能对应所有问题空间中的候选解。(3)非冗余性。染色体和候选解一一对应。对于很多问题很难设计出同时满足上面三条要求的编码方案,但是完备性是必须满足的一项。这三个评价规范是独立于问题领域的普遍准则,具有普遍意义,但是缺乏具体的指导思想,特别是满足这些条件的编
35、码设计不一定能有效地提高遗传算法的搜索效率。相比之下,De Jong提出较为客观明确的编码评估准则,称之为编码原理,由于可操作性较强,又称之为编码规则。具体为:(1)有意义基因块的编码规则。所定编码应当易于生成与所求问题相关的短距和低阶的基因块。(2 )最小字符集编码规则。所定编码应采用最小字符集,以使问题得到自然的表示或描述。(二)编码方法下面介绍几种常用的遗传算法编码技术。(1)一维染色体编码。一维染色体编码是指问题空间的候选解转换到遗传空间后,其相应的染色体呈一维排列的基因链码。通常采用的一维染色体编码技术有:1)二进制编码。二进制编码是将问题空间的候选解转换为遗传空间的各位数值为“0”
36、或“1”的字符串。二进制编码方法是最为经典和常用的编码方法,它的优点有:符合最小字符集的编码原则;编码简单,便于进行交叉、变异等遗传操作,且物理概念清晰;便于用模式定理川进行分析与预测。但是对于多维、高精度问题,二进制编码就会显示出一些不足,主要有:二进制编码不能直接反映出所求问题的本身结构特征;二进制编码的染色体长度与问题空间的区域大小和精度要求直接相关,对于大区间、高精度的问题,染色体的长度会很长,搜索空间也会很大,这样的搜索相当困难;相邻的二进制编码可能会有较大的Hamming距离,从而降低了遗传算子的搜索效率。2)灰码编码。利用灰码编码方法可以在一定程度上克服上述缺点。灰码编码是将二进
37、制编码通过一个变换而得到的编码,其表现也为二进制的形式,所不同的是灰码编码技术保证了在遗传空间相互靠近的两个点也必须在问题空间里靠近,反之亦然。3)浮点编码。浮点编码是灰码转换,只是保证了问题空间相邻的点在遗传空间有数值为1的Hamming距离,但遗传空间还不是问题空间。如果采用浮点表达的编码方法,即每个染色体向量被编码成一个与解向量相同长度的浮点数向量,那么,在执行上,遗传空间就是问题空间,染色体直接反映了问题的规律与特性。浮点编码与二进制编码相比有以下优点:精度依赖于所使用的机器,与编码本身无关,比二进制要灵活、方便;浮点编码能够表达很大的区域,而二进制编码必须以牺牲精度来增加表达区域;容
38、易设计出封闭的、动态的遗传算子,容易处理非常规约束。一维编码的方法还有很多,如交叉编码、多参数编码、可变长编码等等。 二维染色体编码。在很多实际问题中,解本身就是以二维或多维的形式存在的,为了使问题的表达更直观,可直接采用多维染色体编码。选择一个群体,即选择一个串或个体的集合bi,i=1,2,.n。这个初始的群体也就是问题假设解的集合。一般取n30-160。通常以随机方法产生串或个体的集合bi, i1,2,.n。问题的最优解将通过这些初始假设解进化而求出。3.2.2适应度函数在遗传算法的进化过程中,对染色体的评价是由适应度函数来完成的,函数的函数值作为选择运算的依据。即遗传算法向着适应值增加的
39、方向进化适应度,所以目标函数的寻优方向与适应度函数值增加的方向一致,这是适应度函数设计的先决条件。另外,为了理论分析的方便,最好保证适应度函数非负。有时适应值为负的清况,要进行适当的转换。将目标函数转换成适应度一般要遵循下面两个基本原则。(1)优化过程中目标函数的优化方向(如寻求目标函数的最大值或最小值)与种群进化过程中适应度函数值增加的方向相一致。(2) 适应度函数值大于等于零。如果目标函数是求最小值问题,可通过适当转换,如:fit(x)=c-f(x), c fmax3.2.3选择 选择运算是推动进化的直接动力。如果选择压力过大,遗传算法会过早收敛,使搜索落入局部极小点;选择压力过小搜索过程
40、会非常缓慢。一般来讲,在进化的初始阶段,宜采用较小的选择压力,尽量保持种群个体的多样性;在进化的后期,宜采用较大的选择压力,以提高优良个体的竞争力,使搜索向着最优解的方向发展。选择可以通过以下三个方面进行描述:(1)采样空间。(2)采样机理。(3)选择概率。三者对于选择压力以至于遗传算法的性能都有很大的影响。1.采样空间采样空间可划分为规则的采样空间和扩大的采样空间两种。2.采样机理采样机理使如何从采样空间中选择染色体的理论,对种群个体的选择从原理上可分为三种:(1)随机采样;(2)确定采样;3)混合采样。随机采样方法首先根据各染色体个体的适应值评价出其生存概率,再由生存概率确定每个染色体的实
41、际繁殖数量。每个染色体的生存概率是确定性的,而染色体个体实际的繁殖数量是其生存概率随机产生的,是随机性的。整个选择过程可由两步完成:(1)确定种群中个体的生存概率。2)根据个体的生存概率进行随机选择。随机采样的基本思想是:适应值大的个体对应较高的生存概率,则被选择进入F1代的几率相对较高。但是,并不能保证最优的个体被选择。确定采样的基本思想是:保证最好的染色体被选择进入下一代。常用的方法有截断选择法、精英选择法和期望选择法等。混合采样同时具备随机采样和确定采样的特征。3.选择概率种群中的染色体的选择概率与选择压力直接相关。Holland的原始遗传算法所采用的轮盘算法是一种正比选择方法,选择概率
42、正比于染色体的适应值。正比选择的缺点是在进化的早期,一些超级染色体会充斥选择过程,容易失去种群染色体的多样性;而进化的后期,优良染色体的竞争能力减弱,使选择变得像随机搜索。标定法和排序法就是为解决上述问题而提出的。(1)标定法。标定法就是通过调整适应度函数来控制种群中染色体的生存概率。对适应度函数进行调整的意义在于:使种群中染色体的适应值之间保持合理的差距:限制某些超级染色体的繁殖速度,以满足早期限制竞争,后期鼓励竞争的要求。常用的标定方法有线性标定法、截断法、幂律标定法和指数标定法等等。 (2)排序法。排序法以种群中染色体适应值的大小顺序来确定各个染色体的生存概率,而不是以适应值的数值大小来
43、确定,该方法克服了基于适应值进行选择。常用的方法有;线性排序法和指数排序法。3.2.4交叉对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。单点交叉(one-point crossover)又称一点交叉。只有一个交叉点位置,任意挑选经过选择操作后种群的两个个体作为交叉对象,随机产生一个交叉点位置,两个个体在交叉点位置互换部分基因码,形成两个子个体。例如有个体S1=100101S2=010111选择它们的左边3位进行交叉操作,则有S1=01010
44、1S2=100111多点交叉(multi-point crossover)是单点交叉的推广,有时也称为广义交叉(generalized crossover)。多点交叉是指设置多个交叉点,交叉点依然是随机选择,两个个体在交叉点位置互换部分基因码,形成两个子个体。一般较少采用多点交叉,因为它影响遗传算法的在线性能和离线性能。当交叉过多时,上一代中性能优良的结构被破坏的可能性增大,这有些类似于随机搜索行为。多点交叉不能有效地保存重要的模式。例如有个体S1=100101S2=010111选择它们的左边2位和右边2位进行交叉操作则有S1=010111S2=100101一般而言,交叉概率的取值为0.250.75。交叉运算是重要的遗传操作,种群通过交叉产生新的染色体,从而不断扩展搜索空间, 最终达到全局搜索的目的。常用的交叉算子有:1、算术交叉算子。算术交叉算子对于凸搜索空间有这样的性质:对解空间D里的任何两个点x1, x:的线性组合为:ax1+(1-a)x2 a0,1算术交叉的操作过程为:假定种群中的x1, x2被选