遗传算法的特点及其应用
遗传算法及应用

遗传算法将问题的求解表示成“染色体”(用编码 表示字符串)。该算法从一群“染色体”串出发, 将它们置于问题的“环境”中,根据适者生存的原 则,从中选择出适应环境的“染色体”进行复制, 通过交叉、变异两种基因操作产生出新的一代更适 应环境的“染色体”种群。随着算法的进行,优良 的品质被逐渐保留并加以组合,从而不断产生出更 佳的个体。这一过程就如生物进化那样,好的特征 被不断的继承下来,坏的特征被逐渐淘汰。新一代 个体中包含着上一代个体的大量信息,新一代的个 体不断地在总体特性上胜过旧的一代,从而使整个 群体向前进化发展。对于遗传算法,也就是不断接 近最优解。
优势
总的来说,遗传算法与其他寻优算法相比的主要特点可以归纳如下: 1)遗传算法是对参数的编码进行操作,而不是对参数本身。 2)遗传算法是从许多初始点开始并行操作,而不是从一个点开始。因而 可以有效地防止搜索过程收敛于局部最优解,而且有较大可能求得全部 最优解。 3)遗传算法通过目标函数来计算适配度,而不要求其他的推导和附属信 息,从而对问题的依赖性较小。 4)遗传算法使用概率的转变原则,而不是确定性原则。 5)遗传算法在解空间内不是盲目地穷举或完全随机测试,而是一种启发 式搜索,其搜索效率往往优于其他算法。 6)遗传算法对于待寻优的函数基本无限制,它既不要求函数连续,更不 要求可微;既可以是数学解析式所表达的显函数,又可以是映射矩阵甚 至是神经网络等隐函数,因而应用范围很广。 7)遗传算法更适合大规模复杂问题的优化。
6.2遗传算法的基本操作与模式理论
下面通过一个简单的例子,详细描述遗传算法的基 本操作过程,然后给出简要的理论分析,从而清晰 地展现遗传算法的原理和特点。 6.2.1遗传算法的基本操作 例:设需要求解的优化问题为当自变量x在0~31之间 取整数值时寻找f(x)=x^2函数的最大值。枚举的方 法是将x取尽所有可能值,观察能否得到最高的目标 函数值。尽管对如此简单的问题该法是可靠的,但 这是一种效率很低的方法。下面运用遗传算法来求 解这个问题。
遗传算法的应用

遗传算法的应用
遗传算法是一种基于自然选择和遗传的进化策略,它可以被用来解决复杂的问题。
它是一种搜索算法,用于求解复杂的优化问题,它的基本思想是模拟自然界中物种的进化过程。
遗传算法通过运用遗传基因的突变、交叉和遗传原理来模拟自然界中物种进化的过程,以解决复杂的优化问题。
遗传算法可以用于解决很多复杂的优化问题,例如工程设计、机器学习、资源分配、生物信息学等。
遗传算法的特点是它可以快速发现最优解,而且即使解决问题的解空间很大,它也可以找到最优解。
此外,它还可以处理多目标优化问题,也可以处理非线性问题,有效处理约束优化问题。
遗传算法在工程设计中的应用非常广泛。
它可以用来设计结构,如桥梁和建筑物,也可以用来设计汽车、飞机和船只的航行路线。
此外,遗传算法还可以用来解决机器学习问题,如神经网络训练和分类问题,以及视觉识别问题。
遗传算法的优势在于它可以在搜索空间中发现更好的解决方案,同时具有较高的可重复性和可扩展性。
但是,遗传算法也有一些缺点,例如它对参数设置要求较高,而且可能陷入局部最优解。
因此,针对不同的问题,需要适当调整参数和搜索空间,以保证遗传算法能够有效地发挥其优势。
总之,随着科技的不断发展,遗传算法在解决复杂优化问题方面发挥着越来越重要的作用。
它的优势是可以在搜索空间中发现更好的解决方案,而且具有较高的可重复性和可扩展性。
但是,它也存在一些缺点,因此必须适当调整参数和搜索空间,以充分发挥遗传算法的优势。
遗传算法的原理及其应用实例

遗传算法的原理及其应用实例遗传算法是一种受生物进化启发的优化算法。
它模拟了自然进化的过程,通过选择、交叉和变异等方式不断优化解决问题的方法。
遗传算法已经在很多领域得到了广泛应用,如机器学习、图像处理、数据挖掘、优化、智能控制等领域。
遗传算法的原理遗传算法的三个基本操作是选择、交叉和变异。
选择操作是基于适应度函数对个体进行评估,优秀的个体会有更大的概率被选中。
交叉操作是将两个或多个个体的部分基因进行互换,在新一代中产生更好的个体。
变异操作是根据一定的概率对个体的某些基因进行随机变异,以增加新的可能性。
遗传算法的应用实例1.优化问题遗传算法已成功应用于很多优化问题中。
例如,在工程设计领域中,遗传算法可以用来求解复杂的数学模型,以优化设计变量,如大小、材料和形状等,来满足特定的需求。
在机器学习和人工智能领域中,遗传算法被广泛用于模型优化和参数调整。
2.路径规划遗传算法还可以被用来解决复杂路径规划问题,如飞机航线规划、智能出租车路径规划等。
通过评估适应度函数,遗传算法可以找到一条最短或最优的路线,可以用于优化运输成本、提高效率等。
3.学习算法遗传算法还可用于生成人工神经网络的拓扑结构,进一步实现学习算法的优化。
遗传算法能够通过超参数的选择,使神经网络表现更好的能力,因此在很多领域中如自然语言处理、图像处理、语音识别等领域中被广泛应用。
总之,遗传算法不仅具有优化复杂问题的能力,而且还是一种可扩展,灵活,易用和高度可定制的算法。
随着计算力的增强和算法技术的提高,遗传算法在未来的发展中将会有更为广泛的应用。
遗传算法及其应用

遗传算法及其应用遗传算法(Genetic Algorithm,GA)是一种基于生物遗传优化思路的全局优化算法。
在遗传算法中,利用“选择、交叉和变异”三个基本操作模拟自然界生物进化过程,对某个问题求解的最优解进行模拟。
本文将简述遗传算法的基本原理、优点及广泛应用的领域。
一、遗传算法原理遗传算法的流程大致如下:首先定义目标函数和变量上下界,将问题转化为一个基因型和表现型的映射关系,每个基因代表一组解,进而通过选择、交叉、变异等操作,进行优胜劣汰模拟,得到最终的最优解。
其中,“选择”模拟了自然界中的“适者生存”,即优秀的个体拥有更大概率被选中的过程;“交叉”模拟了自然界中不同基因之间的杂交过程,旨在提高后代质量;“变异”则用于对解空间的全面搜索,以避免早熟陷入局部最优解。
二、遗传算法的优劣遗传算法具有以下优点:1. 全局最优解:基于大量随机解进行优胜劣汰,寻找全局最优解。
2. 适应性:遗传算法适用于各种问题的求解和优化,且对于多维非线性问题是一种有效工具。
3. 灵活性:遗传算法的三个基本操作(选择、交叉、变异)可以灵活组合,提高搜索效率。
4. 并行性:多核计算可以极大地提高算法的处理速度,同时也为大规模的优化问题提供了基础。
但是,遗传算法也存在一些缺点:1. 算法周期长:遗传算法对目标函数的收敛速度不高,对较复杂问题需要长时间的迭代求解。
2. 参数调优难度大:适应于不同问题的遗传算法,都需要对其不同参数进行合理的设置,而这个调优过程比较困难。
三、遗传算法应用广泛的领域遗传算法可以广泛应用于各个领域的优化问题中,其中特别是下面几个方面:1. 机器学习:利用遗传算法进行分类预测、回归分析等基础学习任务。
2. 优化设计:可利用遗传算法进行机械结构优化、电路优化、化学反应器优化等工作。
3. 时间序列分析:可以对医疗数据进行时间序列预测、统计学处理等。
4. 人工智能:经典人工智能训练中的神经网络、决策树等模型中,也采用了遗传算法。
多种形式遗传算法的特点与适用场景介绍

多种形式遗传算法的特点与适用场景介绍遗传算法是一种模拟生物进化过程的优化方法,通过模拟自然选择、交叉和变异等操作,逐步优化问题的解。
随着研究的深入,人们发现了多种形式的遗传算法,每种算法都有其独特的特点和适用场景。
下面将介绍几种常见的形式遗传算法及其特点。
1.经典遗传算法经典遗传算法是最早被提出的一种遗传算法形式,也是最常用的一种。
它通过选择、交叉和变异等操作,不断迭代搜索最优解。
经典遗传算法具有以下特点:(1)全局搜索能力强:经典遗传算法能够在解空间中进行全局搜索,对于复杂的优化问题具有较好的效果。
(2)易于实现:经典遗传算法的基本操作简单易懂,容易实现。
(3)收敛速度较慢:由于经典遗传算法采用随机性操作,因此其收敛速度较慢。
2.改进遗传算法为了克服经典遗传算法的缺点,人们提出了许多改进的遗传算法。
其中比较常见的有:(1)遗传算法的参数优化:通过调整遗传算法的参数,如种群大小、交叉概率和变异概率等,可以提高算法的性能。
(2)多目标遗传算法:针对多目标优化问题,多目标遗传算法能够同时优化多个目标函数,得到一系列的非劣解。
(3)自适应遗传算法:自适应遗传算法能够根据问题的特点动态调整遗传算法的参数,从而提高算法的性能。
3.遗传规划算法遗传规划算法是一种结合了遗传算法和规划思想的优化方法。
它将问题表达为一个规划模型,通过遗传算法的选择、交叉和变异等操作,不断优化规划模型的参数,从而得到最优解。
遗传规划算法具有以下特点:(1)适用于复杂的规划问题:遗传规划算法能够处理复杂的规划问题,如资源分配、路径规划等。
(2)解的可解释性强:遗传规划算法得到的解通常具有较好的可解释性,能够为决策提供参考。
4.遗传神经网络算法遗传神经网络算法是一种结合了遗传算法和神经网络的优化方法。
它通过遗传算法的选择、交叉和变异等操作来优化神经网络的结构和权重,从而提高神经网络的性能。
遗传神经网络算法具有以下特点:(1)适用于非线性问题:遗传神经网络算法能够处理非线性问题,如模式分类、函数逼近等。
人工智能中的遗传算法

人工智能中的遗传算法遗传算法(Genetic Algorithm,GA)是一种模拟自然进化过程的优化算法。
它适用于复杂问题的求解,并且在人工智能领域中得到了广泛的应用。
本文将介绍人工智能中遗传算法的原理、应用以及优势。
一、遗传算法原理遗传算法模拟了生物进化过程中的遗传与进化机制,通过对每个个体的基因组进行编码,然后通过选择、交叉和变异等操作,迭代地生成新一代的解,并逐步优化。
1.1 基因编码遗传算法中每个个体的解被编码为一个染色体,染色体由若干基因组成。
基因可以是二进制串、整数或浮点数等形式,根据问题的特点进行选择。
1.2 适应度评价适应度函数用于评价每个个体的优劣程度。
适应度值越高表示个体解越优秀。
在问题的求解过程中,根据适应度函数对个体进行评估和排序。
1.3 选择操作选择操作根据适应度函数对个体进行选择,使优秀的个体有更高的概率被选中。
常见的选择算法有轮盘赌和竞争选择等。
1.4 交叉操作交叉操作模拟了生物进化中的基因重组,通过交换父代个体的染色体片段产生新个体。
交叉操作可以增加种群的多样性,并且有助于在解空间中进行全局搜索。
1.5 变异操作变异操作是对个体染色体中的基因进行突变,引入一定的随机性。
变异操作可以避免种群陷入局部最优解,从而增加算法的全局搜索能力。
1.6 算法迭代遗传算法通过不断迭代地进行选择、交叉和变异操作,逐渐优化种群中的个体。
迭代次数和种群大小是影响算法性能的重要参数。
二、遗传算法的应用2.1 函数优化遗传算法可以用于求解复杂的函数优化问题,例如求解多峰函数的全局最优解。
通过适当选择适应度函数和调整参数,可以提高算法的收敛性和搜索能力。
2.2 组合优化遗传算法在组合优化问题中有广泛的应用。
例如在图的最短路径问题中,通过遗传算法可以求解出图中节点间的最短路径。
2.3 机器学习遗传算法可以用于机器学习领域中的特征选择和参数优化等问题。
通过遗传算法搜索最优的特征子集或参数组合,可以提高机器学习模型的性能和泛化能力。
简述遗传算法的主要特点

简述遗传算法的主要特点遗传算法是一种模仿生物进化过程的算法,其主要特点包括以下几个方面:1.随机性:遗传算法通过引入随机性来模拟生物进化过程中的遗传和突变现象。
在选择个体进行交叉和变异操作时,使用了随机选择和随机变异的策略,从而增加了算法的多样性和空间的广度。
2.适应性:遗传算法通过定义适应度函数来评估每个个体的适应度,并将适应度高的个体更有可能被选择和保留。
这样,遗传算法能够在过程中引导进化朝着更优解的方向进行,从而逐步优化个体的适应度。
3.交叉和变异:遗传算法包括两种基本操作:交叉和变异。
交叉操作通过将两个个体的一部分基因合并生成新的个体,从而产生了更多样的个体。
而变异操作则在某个个体的基因中引入了一定的变化,从而增加了的多样性。
这两种操作既保留了良好的解,又允许探索新的解,提高了算法的全局能力。
4.以种群为单位进行演化:与传统的优化算法不同,遗传算法以种群为单位进行和优化。
种群中的每个个体都代表了问题的一个解,在每一代的演化中,种群中的个体通过交叉、变异和选择等操作进行进化,从而逐渐改进解的质量。
5.可并行性:由于遗传算法中的个体操作是相互独立进行的,因此遗传算法具有很好的可并行性。
可以将种群划分为多个子群,每个子群在不同的处理器上独立进行演化和更新,最后合并得到结果。
这样可以提高算法的效率和求解能力。
6.适应于全局问题:遗传算法适用于具有多个解、复杂非线性关系和高维问题的全局。
由于遗传算法具有较强的全局能力和较强的自适应性,可以在复杂的问题空间中快速、高效地找到最优或近似最优解。
7.可解释性:遗传算法能够提供每一代种群的演化过程,对过程中的个体和解进行记录。
这使得遗传算法具有较好的可解释性,可以分析演化过程和结果,了解每个个体的进化轨迹和特征。
综上所述,遗传算法具有随机性、适应性、交叉和变异、以种群为单位进行演化、可并行性、适应于全局问题以及可解释性等重要特点。
这些特点使得遗传算法成为一种强大的优化算法,在许多领域如工程优化、组合优化、机器学习等实际问题中都取得了显著的优化结果。
遗传算法的详解及应用

遗传算法的详解及应用遗传算法(Genetic Algorithm,GA)是一种模拟自然选择和遗传过程的算法。
在人工智能和优化问题中得到了广泛的应用。
本文将详细介绍遗传算法的基本原理和优化过程,并探讨它在实际应用中的价值和局限性。
一、遗传算法的基本原理遗传算法的基本原理是通过模拟生物进化的过程来寻找一个问题的最优解。
在遗传算法中,优秀的解决方案(也称为个体,Individual)在进化中拥有更高的生存几率,而劣质的解决方案则很快被淘汰。
在遗传算法的过程中,每个个体由若干个基因组成,每个基因代表某种特定的问题参数或者状态。
通过遗传算法,我们可以找到问题最优的解或者其中一个较优解。
遗传算法的基本流程如下:1. 初始化群体(Population):首先,我们需要随机生成一组初始解作为群体的个体。
这些个体被称为染色体(chromosome),每一个染色体都由一些基因(gene)组成。
所以我们可以认为群体是由很多染色体组成的。
2. 选择操作(Selection):选择运算是指从群体中选出一些个体,用来繁殖后代。
其目的是让优秀的个体留下更多的后代,提高下一代的平均适应度。
在选择操作中,我们通常采用轮盘赌选择(Roulette Wheel Selection)法、锦标赛(Tournament)法、排名选择(Ranking Selection)法等方法。
3. 交叉操作(Crossover):交叉运算是指随机地从两个个体中选出一些基因交换,生成新的染色体。
例如,我们可以将染色体A和B中的第三个基因以后的基因交换,从而产生两个新的染色体。
4. 变异操作(Mutation):变异运算是指随机改变染色体中的个别基因,以增加多样性。
例如,我们随机将染色体A的第三个基因改变,从而产生一个新的染色体A'。
5. 适应度评估(Fitness Evaluation):适应度评估是指给每一个个体一个适应度分数,该分数是问题的目标函数或者优化函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
遗传算法的特点及其应用上海复旦大学附属中学张宁【关键词】遗传算法遗传变异染色体基因群体【摘要】遗传算法是基于达尔文进化论,在计算机上模拟生命进化机制而发展起来的一门新学科。
它根据适者生存,优胜劣汰等自然进化规则来进行搜索计算和问题求解。
文章的第一部分介绍了遗传算法的基本概念。
第二部分介绍了遗传算法的原理以及三种运算:选择、交换、变异。
第三部分着重介绍三种运算的具体实现,以及简单实例,主要体现遗传算法的实现过程。
第四部分介绍了两个具体问题,都是属于NP-完全问题,如何用遗传算法来解决,以及实现时的一些基本问题。
文章在介绍遗传算法的原理以及各种运算的同时,还分析了一些应用中出现的基本问题,对于我们的解题实践有一定的指导意义。
【正文】遗传算法作为一门新兴学科,在信息学竞赛中还未普及,但由于遗传算法对许多用传统数学难以解决或明显失效的复杂问题,特别是优化问题,提供了一个行之有效的新途径,且能够较好地解决信息学竞赛中的NP难题,因此值得我们进行深入的讨论。
要掌握遗传算法的应用技巧,就要了解它的各方面的特点。
首先,让我们来了解一下什么是遗传算法。
§1遗传算法的基本概念遗传算法(Genetic Algorithms,简称GA)是人工智能的重要新分支,是基于达尔文进化论,在计算机上模拟生命进化机制而发展起来的一门新学科。
它根据适者生存,优胜劣汰等自然进化规则来进行搜索计算和问题求解。
对许多用传统数学难以解决或明显失效的复杂问题,特别是优化问题,GA 提供了一个行之有效的新途径,也为人工智能的研究带来了新的生机。
GA由美国J. H. Holland博士1975年提出,当时并没有引起学术界的关注,因而发展比较缓慢。
从80年代中期开始,随着人工智能的发展和计算机技术的进步,遗传算法逐步成熟,应用日渐增多,不仅应用于人工智能领域(如机器学习和神经网络),也开始在工业系统,如控制、机械、土木、电力工程中得到成功应用,显示出了诱人的前景。
与此同时,GA也得到了国际学术界的普遍肯定。
从1985年至今国际上已举行了五届遗传算法和进化计算会议,第一本《进化计算》杂志1993年在MIT创刊,1994年IEEE神经网络汇刊出版了进化规划理论几应用专集,同年IEEE将神经网络,模糊系统,进化计算三个国际会议合并为’94IEEE全球计算智能大会(WCCI),会上发表进化计算方面的论文255篇,引起了国际学术界的广泛关注。
目前,GA已在组合优化问题求解、自适应控制、程序自动生成、机器学习、神经网络训练、人工生命研究、经济组合等领域取得了令人著目的应用成果,GA 也成为当前人工智能及其应用的热门课题。
§2简单的遗传算法遗传算法(Genetic Algorithms,以下简称GA)是基于自然选择,在计算机上模拟生物进化机制的寻优搜索算法。
在自然界的演化过程中,生物体通过遗传(传种接代,后代与夫辈非常相像)、变异(后代与夫辈又不完全相像)来适应外界环境,一代又一代地优胜劣汰,发展进化。
GA则模拟了上述进化现象。
它把搜索空间(欲求解问题的解空间)映射为遗传空间,即把每一个可能的解编码为一个向量(二进制或十进制数字串),称为一个染色体(chromosome,或个体),向量的每一个元素称为基因(genes)。
所有染色体组成群体(population,或集团)。
并按预定的目标函数(或某种评价指标,如商业经营中的利润、工程项目中的最小费用、最短路径等)对每个染色提进行评价,根据其结果给出一个适应度的值。
算法开始时先随机地产生一些染色体(欲求解问题的侯选解),计算其适应度,根据适应度对诸染色体进行选择、交换、变异等遗传操作,剔除适应度低(性能不佳)的染色体,留下适应度高(性能优良)的染色体,从而得到新的群体。
由于新群体的成员是上一代群体的优秀者,继承了上一代的优良性态,因而在总体上明显优于上一代。
GA就这样反复迭代,向着更优解的方向进化,直至满足某种预定的优化指标。
上述GA的工作过程可用图1简要描述。
图1 遗传算法工作原理示意图简单遗传算法的三个基本运算是选择、交换、变异,下面详细介绍。
1.选择选择运算又称为繁殖、再生,或复制运算,用于模拟生物界去劣存优的自然选择现象。
它从旧种群中选择出适应性强的某些染色体,放入匹配集(缓冲区),为染色体交换和变异运算产生新种群做准备。
适应度越高的染色体被选择的可能性越大,其遗传基因在下一代群体中的分布就越广,其子孙在下一代出现的数量就越多。
有多种选择方法,使用比较普遍的一种是适应度比例法,简述如下:适应度比例法又称为轮转法,它把种群中所有染色体适应度的总和看作一个轮子的圆周,而每个染色体按其适应度在总和中所占的比例占据轮子的一个扇区。
每次染色体的选择可看作轮子的一次随机转动,它转到哪个扇区停下来,那个扇区对应的染色体就被选中。
其实就是将适应度值视为其权值,权值大的被选中的概率也大。
尽管这种选择方法是随机的,但它与各染色体适应度成比例。
某一染色体被选中的概率(选择概率)为∑=)(/)(i c c x f x f P式中x i 为种群中第i 个染色体对应的数字串,f(x i )是第i 个染色体的适应度值,∑)(i x f 是种群中所有染色体的适应度值之和。
用适应度比例法进行选择时,首先计算每个染色体的适应度,然后按比例于各染色体适应度的概率进入交换(匹配)集的染色体,其具体步骤如下:(1) 计算每个染色体的适应度值f(x i );(2) 累加所有染色体的适应度值,得最终累加值SUM=∑)(i x f ,记录对应于每个染色体的中间累加值g(x i );(3) 产生一个随机数N ,0<N<SUM ;(4) 选择其对应的中间累加值满足g(x i-1)<N<= g(x i )的染色体进入交换集。
(5) 重复(3),(4),直到交换集中包含足够多的染色体数字串为止。
重复上述过程,直到交换集中包含足够多的染色体为止。
显然,此法要求染色体的适应度应为正值。
请看下例:[例1]:某种群包含10个染色体,按适应度比例法选择进入交换集的过程示于表1及表2。
由表1,表2可以看到,3号染色体的选择概率最高,被选中的次数最多,其他选择概率较低的染色体被选中的次数就少。
当然,用适应度比例法进行选择时,性能最坏的染色体也可能被选择,但概率极小,当种群长度较大时,这种情况可以忽略不计。
2. 交换复制操作虽然能够从旧种群中选择出优秀者,但不能创造新的染色体,因此,遗传算法的开创者提出了交换操作。
它模拟生物进化过程中的繁殖现象,优良品种,即:在匹配集中任选两个染色体(称为双亲的染色体);随机选择一点或多点交换点位置J (0<J<L ,L 是染色体数字串的长度);交换双亲染色体交换点右边的部分,即可得到两个新的(下一代)染色体数字串。
也就是说,交换操作能够创造新的染色体(子孙染色体),从而允许测试在搜索空间中的新点。
交换也体现了自然界中信息交换的思想。
请看下例:[例2]:从匹配集中取出的一对染色体为:染色体A 0111|1010染色体B 0101|0010随机产生的一点交换位置是4,交换染色体A,B中第4位右边的部分——1010和0010,则得两个下一代(子孙)染色体数字串:染色体A’ 01111010染色体B’ 010100103.变异变异运算用来模拟生物在自然界的遗传环境中由于各种偶然因素引起的基因突变,它以很小概率随机地改变遗传基因(表示染色体的符号串的某一位)的值。
在染色体以二进制编码的系统中,它随机地将染色体的某一个基因由1变成0,或由0变成1。
若只有选择和交换,而没有变异操作,则无法在初始基因组合以外的空间进行搜索,使进化过程在早期就陷入局部解而终止进化过程,从而使解的质量受到很大限制。
通过变异操作,可确保群体中遗传基因类型的多样性,以使搜索能在尽可能大的空间中进行,避免丢失在搜索中有用的遗传信息而陷入局部解,获得质量较高的优化解答。
§3简单的遗传算法运算示例让我们从下面两个非常简单的例子来具体了解一下简单遗传算法的各种操作。
虽然下面的例子都有更好处理方式,但为了深入了解遗传算法的各种操作,还是从简单的例子入手:[例3]:计算机公司的经营策略优化问题一个计算机公司追求的目标是最高的利润,为达此目标,必须选择适当的经营策略。
一种可能的策略是对以下四个问题作出决策:·每台PC计算机的价格定为5000元(低价)还是8000元(高价);·与PC机配套的免费软件是Windows2000还是Linux;·是否提供网络技术服务;·提供保修期为半年或是一年;下面用遗传算法来解决这个决策优化问题。
(1)把问题的可能解表示为染色体数字串。
因为有四个决策变量,而每个变量只有两种选择,其取值可用0或1来表示,于是,可用四位的二进制数表示一种可能的经营策略,解的搜索空间为24=16,即共有16种经营策略可供选择,表3表示出了其中计算机公司经理已知的4种经营策略(初始解答)。
表中数字串的第一位取0表示高价,1表示低价;第二位取0表示Windows2000,1表示配套Linux;第三位取0表示不支持网络技术服务,1表示支持网络技术服务;第四位取0表示保修期为一年,1表示表示保修期为半年。
(2)求各染色体的适应度。
在这个问题中,我们不妨设染色体的适应度就是染色体的二进制数字串的数值,对应经营策略的利润。
(3)选择进入交换集的染色体由表4可知,所有染色体串适应度的总和是26,串1100的适应度是12,占适应度总和的6/13,也就是串1100被选中的机会接近两次;串0110,0011,0101被选中的概率分别是3/13,3/26,5/26。
按前述适应度比例法,选择进入交换集的染色体串及其适应度情况如表5所示。
由表5可知,选择操作的作用是改进了种群的平均适应度,使其由原来的6.5提高到了8.75,最坏适应度由原来的3改进为5,性能最差的染色体已从种群中删除。
但是,选择不能创造新的染色体,须进行交换操作。
(4)交换操作设采用单点交换,随机产生的交换点是2,从交换集中任取一对染色体1100和0101,互换它们的第3,4位,得子孙染色体串1101和0100。
由此得到下一代种群。
如表6所示。
(5)估新一代的种群的适应度由表6可知,在新一代(第1代)种群中,最优染色体适应度由原来12提高到了13,其对应的二进制串是1101,表示一种优化的经营策略。
平均适应度由原来的6.5提高到8.75,整个种群的适应度从总体上提高了,被优化了。
遗传算法重复地执行每一代的运算操作,产生新的一代,直到满足某些终止标准或条件。
在本例中,假定已知染色体数字串1111代表的是已知的最好利润15%,则遗传算法停止运行。