基本遗传算法及应用举例

合集下载

遗传算法 例题 详解

遗传算法 例题 详解

遗传算法例题详解遗传算法是一种模拟自然选择和遗传机制的优化方法,它模拟了生物进化的过程,通过模拟种群的遗传变异和适应度选择,寻找最优解。

下面我们以一个简单的例题来详细解释遗传算法的原理和应用。

假设我们要解决一个简单的优化问题,找到函数 f(x) = x^23x + 4 的最小值,其中 x 的取值范围在 [0, 5] 之间。

首先,我们需要定义遗传算法的基本要素:1. 个体表示,在这个例子中,个体可以用一个实数来表示,即x 的取值。

2. 适应度函数,即要优化的目标函数,对于这个例子就是 f(x) = x^2 3x + 4。

3. 遗传操作,包括选择、交叉和变异。

接下来,我们用遗传算法来解决这个优化问题:1. 初始化种群,随机生成一定数量的个体作为初始种群。

2. 评估适应度,计算每个个体的适应度,即计算函数 f(x) 的值。

3. 选择操作,根据个体的适应度来选择父代个体,适应度越高的个体被选中的概率越大。

4. 交叉操作,对选中的父代个体进行交叉操作,生成新的个体。

5. 变异操作,对新生成的个体进行变异操作,引入一定的随机性。

6. 重复步骤2-5,直到满足停止条件(如达到迭代次数或找到满意的解)。

通过不断地迭代选择、交叉和变异操作,种群中的个体将不断进化,最终找到函数的最小值对应的 x 值。

在上述例题中,遗传算法通过模拟自然选择和遗传机制,不断优化种群中个体的适应度,最终找到了函数 f(x) = x^2 3x + 4 的最小值对应的 x 值。

这个例子展示了遗传算法在优化问题中的应用,它能够有效地搜索解空间,找到全局最优解或者接近最优解的解。

遗传算法在实际应用中有着广泛的应用,如工程优化、机器学习、数据挖掘等领域。

遗传算法及其应用实例

遗传算法及其应用实例

遗传算法及其应用实例遗传算法搜索最优解的方法是模仿生物的进化过程,即通过选择与染色体之间的交叉和变异来完成的。

遗传算法主要使用选择算子、交叉算子与变异算子来模拟生物进化,从而产生一代又一代的种群X (t )。

1.遗传算法的简单原理遗传算法(Genetic Algorithm, GA)是一种基于自然群体遗传演化机制的高效探索算法,它摒弃了传统的搜索方式,模拟自然界生物进化过程,采用人工进化的方式对目标空间进行随机化搜索。

它将问题域中的可能解看作是群体的一个个体或染色体,并将每一个体编码成符号串形式,模拟达尔文的遗传选择和自然淘汰的生物进化过程,对群体反复进行基于遗传学的操作(遗传,交叉和变异),根据预定的目标适应度函数对每个个体进行评价,依据适者生存,优胜劣汰的进化规则,不断得到更优的群体,同时以全局并行搜索方式来搜索优化群体中的最优个体,求得满足要求的最优解。

遗传算法主要是用来寻优,它具有很多优点:它能有效地避免局部最优现象,有及其顽强的鲁棒性,并且在寻优过程中,基本不需要任何搜索空间的知识和其他辅助信息等等。

利用遗传算法,可以解决很多标准优化算法解决不了的优化问题,其中包括目标函数不连续、不可微、高度非线性或随机的优化问题。

(1)选择算子:是模拟自然选择的操作,反映“优胜劣汰”原理。

它根据每一个个体的适应度,按照一定规则或方法,从t代种群X (t )中选择出一些优良的个体(或作为母体,或让其遗传到下一代种群X (t 1))。

(2)交叉算子:是模拟有性繁殖的基因重组操作,它将从种群X (t )所选择的每一对母体,以一定的交叉概率交换它们之间的部分基因。

(3)变异算子:是模拟基因突变的遗传操作,它对种群X (t )中的每一个个体,以一定的变异概率改变某一个或某一些基因座上的基因值为其他的等位基因。

交叉算子与变异算子的作用都在于重组染色体基因,以生成新的个体。

遗传算法的运算过程如下:步 1(初始化)确定种群规模 N ,交叉概率 P c ,变异概率 P m 和终止进化准则;随机生成 N 个个体作为初始种群 X (0);置 t ← 0。

第七章遗传算法应用举例

第七章遗传算法应用举例

第七章遗传算法应用举例遗传算法是一种模拟自然选择和遗传机制的计算方法,它可以用来解决很多实际问题。

以下是几个遗传算法应用的实例。

1.旅行商问题(TSP):旅行商问题是一个经典的组合优化问题,目标是找到最短路径来访问一系列城市并返回原始城市。

遗传算法可以通过编码城市序列,并使用交叉、变异和选择操作进行优化。

通过进行迭代,遗传算法可以更优的路径,并得到近似最优的解。

2.机器学习特征选择:在机器学习中,特征选择是一种减少特征集合维度的方法,以提高模型的性能和泛化能力。

遗传算法可以用来选择最佳的特征子集,通过优化目标函数(例如分类准确率或回归误差)来评估子集的优劣,并通过交叉和变异操作不断改进。

3.组合优化问题:遗传算法也广泛应用于组合优化问题,如背包问题、任务调度、物流路径规划等。

通过定义适应度函数和优化目标,遗传算法可以最优的组合并提供近似解。

4.神经网络训练:神经网络是一种模拟人脑神经元相互连接和传递信息的计算模型。

训练神经网络需要调整网络权重和参数,以最小化损失函数。

遗传算法可以用作优化算法,通过定义染色体编码网络参数,并通过交叉和变异操作对网络进行进化,以找到更好的网络结构和参数。

5.机器调参:机器学习算法通常包含许多超参数需要调优,例如决策树的深度、神经网络的学习率等。

遗传算法可以用来超参数的最佳组合,并通过交叉和变异操作对超参数进行优化。

6.图像处理:遗传算法被广泛应用于图像处理领域,如图像增强、目标检测、图像分割等。

通过定义适应度函数和优化目标,遗传算法可以优化图像处理算法的参数和参数组合,以提高图像质量和算法效果。

7.电力系统优化:电力系统优化包括电力负荷优化、电力设备配置优化、电力网路规划等。

遗传算法可以用来优化电力系统的各种参数和变量,以提高电力系统的效率和可靠性。

总之,遗传算法是一种强大而灵活的优化算法,在许多领域都可以应用。

它通过模拟生物进化过程,通过选择、交叉和变异操作,问题的解空间,并找到最优或近似最优的解。

遗传算法经典实例

遗传算法经典实例

遗传算法经典实例遗传算法是一种从若干可能的解决方案中自动搜索最优解的算法,它可以用来解决各种复杂的优化问题,是进化计算的一种。

它的基本过程是:对初始种群的每个个体都估计一个适应度值,并从中选择出最优的个体来作为新一代的父本,从而实现进化的自然演化,经过几代的迭代最终得到最优的解。

在许多复杂的优化问题中,遗传算法能产生比其它方法更优的解。

下面,我们将列出几个典型的遗传算法经典实例,以供参考。

1.包问题背包问题可以分解为:在一定的物品中选择出最优的物品组合需求,在有限的背包中装入最大价值的物品组合。

针对这个问题,我们可以使用遗传算法来求解。

具体而言,首先,需要构建一个描述染色体的数据结构,以及每个染色体的适应度评估函数。

染色体的基本单元是每个物品,使用0-1二进制编码表示该物品是否被选取。

然后,需要构建一个初始种群,可以使用随机生成的方式,也可以使用经典进化方法中的锦标赛选择、轮盘赌选择或者较优概率选择等方法生成。

最后,使用遗传算法的基本方法进行迭代,直至得出最优解。

2.着色问题图着色问题是一个比较复杂的问题,它涉及到一个无向图的节点和边的颜色的分配。

其目的是为了使相邻的节点具有不同的颜色,从而尽可能减少图上边的总数。

此问题中每种可能的颜色可以看作一个个体。

染色体中每个基因对应一条边,基因编码可以表示边上节点的着色颜色。

求解这个问题,我们可以生成一个初始群体,通过计算它们的适应度量,然后使用遗传算法的基本方法进行迭代,直至收敛于最优解。

3.舍尔旅行商问题费舍尔旅行商问题是一个求解最短旅行路径的问题,它可以分解为:从起点到终点访问给定的一组城市中的每一个城市,并且回到起点的一个最短旅行路径的搜索问题。

用遗传算法求解费舍尔旅行商问题,通常每个个体的染色体结构是一个由城市位置索引构成的序列,每个索引对应一个城市,表示在旅行路径中的一个节点,那么该路径的适应度就是城市之间的距离和,通过构建一个初始种群,然后结合遗传算法中的进化方法,如变异、交叉等进行迭代,最终得出最优解。

遗传算法的一些实例

遗传算法的一些实例

引言概述遗传算法是一种启发式优化算法,其灵感来源于生物进化理论,主要用于解决复杂的优化问题。

通过模拟生物进化的过程,遗传算法能够通过遗传变异和适应度选择来优秀的解决方案。

本文将通过一些实例来说明遗传算法的应用。

正文内容一、机器学习中的遗传算法应用1.基因选择:遗传算法可以用于寻找机器学习模型中最佳的特征子集,从而提高模型的性能。

2.参数优化:遗传算法可以用于搜索机器学习模型的最佳参数组合,以获得更好的模型效果。

3.模型优化:遗传算法可以用于优化机器学习模型的结构,如神经网络的拓扑结构优化。

二、车辆路径规划中的遗传算法应用1.路径优化:遗传算法可以应用于车辆路径规划中,通过遗传变异和适应度选择,寻找最短路径或者能够满足约束条件的最优路径。

2.交通流优化:遗传算法可以优化交通系统中的交通流,通过调整信号灯的时序或者车辆的路径选择,减少拥堵和行程时间。

三、物流配送中的遗传算法应用1.车辆调度:遗传算法可用于优化物流配送的车辆调度问题,通过遗传变异和适应度选择,实现车辆最优的配送路线和时间安排。

2.货物装载:遗传算法可以用于优化物流运输中的货物装载问题,通过遗传变异和适应度选择,实现货物的最优装载方式。

四、生物信息学中的遗传算法应用1.序列比对:遗传算法可以用于生物序列比对问题,通过遗传变异和适应度选择,寻找最佳的序列匹配方案。

2.基因组装:遗传算法可以用于基因组装问题,通过遗传变异和适应度选择,实现基因组的最优组装方式。

五、电力系统中的遗传算法应用1.能源调度:遗传算法可用于电力系统中的能源调度问题,通过遗传变异和适应度选择,实现电力系统的最优能源调度方案。

2.电力负荷预测:遗传算法可以用于电力负荷预测问题,通过遗传变异和适应度选择,实现对电力负荷的准确预测。

总结遗传算法在机器学习、车辆路径规划、物流配送、生物信息学和电力系统等领域都有广泛的应用。

通过遗传变异和适应度选择的策略,遗传算法能够搜索到最优解决方案,从而优化问题的求解。

遗传算法的原理及其应用实例

遗传算法的原理及其应用实例

遗传算法的原理及其应用实例遗传算法是一种受生物进化启发的优化算法。

它模拟了自然进化的过程,通过选择、交叉和变异等方式不断优化解决问题的方法。

遗传算法已经在很多领域得到了广泛应用,如机器学习、图像处理、数据挖掘、优化、智能控制等领域。

遗传算法的原理遗传算法的三个基本操作是选择、交叉和变异。

选择操作是基于适应度函数对个体进行评估,优秀的个体会有更大的概率被选中。

交叉操作是将两个或多个个体的部分基因进行互换,在新一代中产生更好的个体。

变异操作是根据一定的概率对个体的某些基因进行随机变异,以增加新的可能性。

遗传算法的应用实例1.优化问题遗传算法已成功应用于很多优化问题中。

例如,在工程设计领域中,遗传算法可以用来求解复杂的数学模型,以优化设计变量,如大小、材料和形状等,来满足特定的需求。

在机器学习和人工智能领域中,遗传算法被广泛用于模型优化和参数调整。

2.路径规划遗传算法还可以被用来解决复杂路径规划问题,如飞机航线规划、智能出租车路径规划等。

通过评估适应度函数,遗传算法可以找到一条最短或最优的路线,可以用于优化运输成本、提高效率等。

3.学习算法遗传算法还可用于生成人工神经网络的拓扑结构,进一步实现学习算法的优化。

遗传算法能够通过超参数的选择,使神经网络表现更好的能力,因此在很多领域中如自然语言处理、图像处理、语音识别等领域中被广泛应用。

总之,遗传算法不仅具有优化复杂问题的能力,而且还是一种可扩展,灵活,易用和高度可定制的算法。

随着计算力的增强和算法技术的提高,遗传算法在未来的发展中将会有更为广泛的应用。

基本遗传算法及的应用举例

基本遗传算法及的应用举例

基本遗传算法及应用举例遗传算法(Genetic Algorithms)是一种借鉴生物界自然选择和自然遗传机制的随机、高度并行、自适应搜索算法。

遗传算法是多学科相互结合与渗透的产物。

目前它已发展成一种自组织、自适应的多学科技术。

针对各种不同类型的问题,借鉴自然界中生物遗传与进化的机理,学者们设计了不同的编码方法来表示问题的可行解,开发出了许多不同环境下的生物遗传特征。

这样由不同的编码方法和不同的遗传操作方法就构成了各种不同的遗传算法。

但这些遗传算法有共同的特点,即通过对生物的遗传和进化过程中的选择、交叉、变异机理的模仿来完成对最优解的自适应搜索过程。

基于此共同点,人们总结出了最基本的遗传算法——基本遗传算法。

基本遗传算法只使用选择、交叉、变异三种基本遗传操作。

遗传操作的过程也比较简单、容易理解。

同时,基本遗传算法也是其他一些遗传算法的基础与雏形。

1.1.1 编码方法用遗传算法求解问题时,不是对所求解问题的实际决策变量直接进行操作,而是对表示可行解的个体编码的操作,不断搜索出适应度较高的个体,并在群体中增加其数量,最终寻找到问题的最优解或近似最优解。

因此,必须建立问题的可行解的实际表示和遗传算法的染色体位串结构之间的联系。

在遗传算法中,把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法称之为编码。

反之,个体从搜索空间的基因型变换到解空间的表现型的方法称之为解码方法。

编码是应用遗传算法是需要解决的首要问题,也是一个关键步骤。

迄今为止人们已经设计出了许多种不同的编码方法。

基本遗传算法使用的是二进制符号0和1所组成的二进制符号集{0,1},也就是说,把问题空间的参数表示为基于字符集{0,1}构成的染色体位串。

每个个体的染色体中所包含的数字的个数L 称为染色体的长度或称为符号串的长度。

一般染色体的长度L 为一固定的数,如X=10011100100011010100表示一个个体,该个体的染色体长度L=20。

遗传算法原理与应用实例

遗传算法原理与应用实例

遗传算法原理与应用实例遗传算法是一种模拟自然进化过程的优化算法,它通过模拟自然选择、交叉和变异等过程,不断优化解决问题的方案。

遗传算法具有全局搜索能力、并行计算能力和自适应性等优点,在许多领域得到了广泛应用。

遗传算法的原理遗传算法的基本原理是模拟自然进化过程,通过不断的选择、交叉和变异等操作,逐步优化解决问题的方案。

具体来说,遗传算法的过程包括以下几个步骤:1. 初始化种群:随机生成一组初始解作为种群。

2. 适应度评价:对每个个体进行适应度评价,即计算其解决问题的能力。

3. 选择操作:根据适应度大小,选择一部分个体作为下一代的父代。

4. 交叉操作:对父代进行交叉操作,生成新的子代。

5. 变异操作:对子代进行变异操作,引入新的基因。

6. 重复执行:重复执行2-5步,直到满足停止条件。

7. 输出结果:输出最优解。

遗传算法的应用实例遗传算法在许多领域都有广泛的应用,下面介绍几个典型的应用实例。

1. 机器学习遗传算法可以用于机器学习中的特征选择和参数优化等问题。

例如,在图像分类问题中,可以使用遗传算法选择最优的特征子集,从而提高分类准确率。

2. 优化问题遗传算法可以用于各种优化问题,如函数优化、组合优化和约束优化等。

例如,在工程设计中,可以使用遗传算法优化设计参数,从而降低成本或提高性能。

3. 人工智能遗传算法可以用于人工智能中的搜索和规划问题。

例如,在机器人路径规划中,可以使用遗传算法搜索最优路径,从而避免障碍物和优化路径长度。

4. 游戏设计遗传算法可以用于游戏设计中的智能体行为优化和关卡生成等问题。

例如,在游戏中,可以使用遗传算法优化智能体的行为策略,从而提高游戏体验。

总结遗传算法是一种强大的优化算法,具有全局搜索能力、并行计算能力和自适应性等优点,在许多领域得到了广泛应用。

通过模拟自然进化过程,遗传算法可以不断优化解决问题的方案,从而提高问题的解决能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基本遗传算法及应用举例遗传算法(Genetic Algorithms)是一种借鉴生物界自然选择和自然遗传机制的随机、高度并行、自适应搜索算法。

遗传算法是多学科相互结合与渗透的产物。

目前它已发展成一种自组织、自适应的多学科技术。

针对各种不同类型的问题,借鉴自然界中生物遗传与进化的机理,学者们设计了不同的编码方法来表示问题的可行解,开发出了许多不同环境下的生物遗传特征。

这样由不同的编码方法和不同的遗传操作方法就构成了各种不同的遗传算法。

但这些遗传算法有共同的特点,即通过对生物的遗传和进化过程中的选择、交叉、变异机理的模仿来完成对最优解的自适应搜索过程。

基于此共同点,人们总结出了最基本的遗传算法——基本遗传算法。

基本遗传算法只使用选择、交叉、变异三种基本遗传操作。

遗传操作的过程也比较简单、容易理解。

同时,基本遗传算法也是其他一些遗传算法的基础与雏形。

1.1.1 编码方法用遗传算法求解问题时,不是对所求解问题的实际决策变量直接进行操作,而是对表示可行解的个体编码的操作,不断搜索出适应度较高的个体,并在群体中增加其数量,最终寻找到问题的最优解或近似最优解。

因此,必须建立问题的可行解的实际表示和遗传算法的染色体位串结构之间的联系。

在遗传算法中,把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法称之为编码。

反之,个体从搜索空间的基因型变换到解空间的表现型的方法称之为解码方法。

编码是应用遗传算法是需要解决的首要问题,也是一个关键步骤。

迄今为止人们已经设计出了许多种不同的编码方法。

基本遗传算法使用的是二进制符号0和1所组成的二进制符号集{0,1},也就是说,把问题空间的参数表示为基于字符集{0,1}构成的染色体位串。

每个个体的染色体中所包含的数字的个数L 称为染色体的长度或称为符号串的长度。

一般染色体的长度L 为一固定的数,如X=1010100表示一个个体,该个体的染色体长度L=20。

二进制编码符号串的长度与问题所要求的求解精度有关。

假设某一参数的取值范围是[a ,b],我们用长度为L 的二进制编码符号串来表示该参数,总共能产生L2种不同的编码,若参数与编码的对应关系为00000000000……00000000=0 →a00000000000……00000001=1 →a+δ •• • ……=L2-1→b 则二进制编码的编码精度12--=Lab δ 假设某一个个体的编码是kl k k k a a a x 21=,则对应的解码公式为)2(121∑=---+=Lj j L kj Lk a a b a x 例如,对于x ∈[0,1023],若用长度为10的二进制编码来表示该参数的话,则下述符号串:x =00就表示一个个体,它对应的参数值是x =175.此时的编码精度为1.二进制编码方法相对于其它编码方法的优点,首先是编码、解码操作简单易行;其次是交叉遗传操作便于实现;另外便于对算法进行理论分析。

2. 个体适应度函数在遗传算法中,根据个体适应度的大小来确定该个体在选择操作中被选定的概率。

个体的适应度越大,该个体被遗传到下一代的概率也越大;反之,个体的适应度越小,该个体被遗传到下一代的概率也越小。

基本遗传算法使用比例选择操作方法来确定群体中各个个体是否有可能遗传到下一代群体中。

为了正确计算不同情况下各个个体的选择概率,要求所有个体的适应度必须为正数或为零,不能是负数。

这样,根据不同种类的问题,必须预先确定好由目标函数值到个体适应度之间的转换规则,特别是要预先确定好目标函数值为负数时的处理方法。

设所求解的问题为:max ()f x , x D ∈.对于求目标函数最小值的优化问题,理论上只需简单地对其增加一个负号就可将其转化为求目标函数最大值的问题,即min ()max(()).f x f x =- 当优化问题是求函数最大值,并且目标函数总取正值时,可以直接设定个体的适应度函数值()F x 就等于相应的目标函数值()f x ,即()()F x f x =.但实际目标优化问题中的目标函数有正也有负,优化目标有求函数最大值,也有求函数最小值,显然上面两式保证不了所有情况下个体的适应度都是非负数这个要求,必须寻求出一种通用且有效的由目标函数值到适应度之间的转换关系,有它来保证个体适应度总取非负值。

为满足适应度取负值的要求,基本遗传算法一般采用下面方法将目标函数值()f x 变换为个体的适应度().F x对于求目标函数最大值的优化方法问题,变换方法为 min (),f x C + min ()0f x C +>时,()F x =0 min ()0f x C +≤时,式中,min C 为一个适当的相对比较小的数,它可以是预先指定的一个较小的数,或进化到当前代为止的最小目标函数值,又或当前代或最近几代群体中的最小目标函数值。

3.基本遗传操作方法(1)比例选择:选择或称复制,建立在对个体适应度进行评价的基础之上。

其作用是从当前群体中选择出一些比较优良的个体,并将其复制到下一代群体中。

基本遗传算法采用比例选择的方法,所谓比例选择,是指个体在选择操作中被选中的概率与该个体的适应度大小成正比。

(2)单点交叉。

单点交叉又称简单交叉,是遗传算法所使用的交叉操作方法。

(3)基本位变异。

基本位变异石最简单和最基本的变异操作,也是基本遗传算法中所使用的变异操作方法。

对于基本遗传算法中用二进制编码符号串所表示的个体,对需要进行变异操作的某一基因,若原有基因值为0,则变异操作将该基因值变为1;反之,若原有基因值为1,则变异操作将其变为0. 4.基本遗传算法的运行参数执行基本遗传算法时,有4个参数需要事先指定。

它们是群体的大小M 、交叉概率c p 、变异概率m p 及终止的代数T.(1) 群体大小M.群体的大小M 表示群体中所含个体的数量。

当M 取值较小时,可提高遗传算法的运算速度,但却降低了群体的多样性,有可能会引起遗传算法的早熟现象;而当M 取值较大时,又会使得遗传算法的运行效率偏低。

一般建议范围是20~100. (2) 交叉概率c p 。

交叉操作室遗传算法产生新个体的主要方法,所以交叉概率一般应取较大值。

但若取值过大的话,它又会破坏群体活动的优良模式,对进化运算反而产生不利影响;若取值过小的话,产生新个体的速度有太慢。

一般建议的取值范围是~.(3) 变异概率m p 。

若变异概率m p 取值较大的话,虽能够产生出较多的新个体,但也有可能破坏掉很多较好的模式,使得遗传算法的性能近似于随机搜索算法的性能;若变异概率m p 取值太小的话,则变异操作产生新个体的能力和抑制早熟现象的能力就会较差。

一般建议的取值范围是~.(4) 终止代数T.终止代数T 式表示遗传算法运行结束条件的一个参数,它表示遗传算法运行到指定的进化代数之后就停止运行,并将当前群体中的最佳个体作为所求问题的最优解输出。

一般建议的取值范围是100~1000.至于遗传算法的终止条件,还可以利用某种判定准则,当判定出群体已经进化成熟且不再有进化趋势时就可终止算法的运行过程。

如连续几代个体平均适应度的差异小于某一个极小的值;或者群体中所有个体适应度的方差小于某一个极小的值。

这4个参数对遗传算法的搜索结果及搜索效率都有一定的影响,目前尚无合理选择它们的理论根据在遗传算法的实际应用中,往往需要经过多次的试算后才能确定出这些参数合理的取值范围或取值大小。

基本遗传算法是一个迭代过程,它模仿生物在自然环境中的遗传和进化机理,反复将选择操作、交叉操作、变异操作作用与群体,最终可得到问题的最优解或近似最优解。

虽然算法的思想比较简单,但它却具有一定的实用价值,能够解决一些复杂系统的优化计算问题。

遗传算法的应用步骤如下;遗传算法提供了一种求解复杂系统优化问题的通用框架,它不依赖于问题的领域和种类。

对一个需要进行优化计算的实际应用问题,一般可按下述步骤来构造求解该问题的遗传算法。

第一步:建立优化模型,即确定出目标函数、决策变量及各种约束条件以及数学描述形式或量化方法。

第二步:确定表示可行解的染色体编码方法,也即确定出个体的基因型x 及遗传算法的搜索空间。

第三步:确定解码方法,即确定出个体基因型x 到个体表现型x 的对应关系或转换方法。

第四步:确定个体适应度的量化评价方法,即确定出由目标函数值()x f 到个体适应度()x F 的转换规则。

第五步:设计遗传操作方法,即确定出选择运算、交叉运算、变异运算等具体操作方法。

第六步:确定遗传算法的有关运行参数,即确定出遗传算法的M 、T 、c p 、m p 等参数。

由上述构造步骤可以看出,可行解的编码方法、遗传操作的设计是构造遗传算法时需要考虑的两个主要问题,也是设计遗传算法时的两个关键步骤。

对不同的优化问题需要使用不同的编码方法和不同的遗传操作,它们与所求解的具体问题密切相关,因而对所求解问题的理解程度是遗传算法应用成功与否的关键。

例1.1.1 求解规划问题(),,m ax 222121x x x x f +=. {},7,,2,1,01 ∈x{}.7,,2,1,02 ∈x 解 主要运算过程如表7-3所示。

(1)个体编码.遗传算法的运算对象是表示个体的符号串,所以必须把变量1.1基本遗传算法的构成要素1x ,2x 编码为一种符号串。

该例题中,1x 和2x 取0~7之间的整数,可分别用3位无符号二进制整数来表示,将它们连接在一起所组成的6位无符号二进制整数就形成了个体的基因型,表示一个可行解。

例如,基因型x =101110所对应的表现型是x =(5,6)T 。

个体的表现型x 和基因型x 之间可以通过编码和解码相互转换。

(2)初始群体的产生。

遗传算法是对群体进行遗传操作,需要准备一些表示起始搜索点的初始群体数据。

本例中群体规模的大小M 取为4,即群体由4个个体组成,每个个体可通过随机方法产生。

一个随机产生的初始群体如表7-3中第2栏所示。

(3)适应度计算。

本例中,目标函数总取非负值,并且是以求函数最大值为优化目标,故可直接利用目标函数值作为个体的适应度,即()()F x f x =。

为计算函数的目标值,需先对个体基因型x 进行解码。

表7-3中第3、第4栏所示为初始群体各个个体的解码结果,第5栏所示为各个个体所对应的目标函数值,它也是个体的适应度,第5栏中还给出了群体(4)选择操作.其具体操作过程是先计算出群体中所有个体的适应度的总和if∑及每个个体的相对适应度的大小/i if f∑,如表7-3中5、6栏所示。

表7-3中第7、8栏表示随机产生的选择结果。

(5)交叉操作。

本例中采用单点交叉的方法,并取交叉概率c p = 。

表7-3中第11栏所示为交叉运算的结果。

(6)变异操作。

为了能显示变异操作,取变异概率m p =,并采用基本位变异的方法进行变异运算。

相关文档
最新文档