【智能算法】遗传算法原理及示例

一、流程图

在这里插入图片描述

二、遗传编码

常用的遗传编码算法有霍兰德二进制码、格雷码、实数编码和字符编码等。我们这里只讲解二进制编码:

二进制编码是将原问题的结构变换为染色体的位串结构。在二进制编码中,首先要确定二进制字符串的长度 ,该长度与变量的定义域和所求问题的计算精度有关。

在这里插入图片描述

三、适应度函数

适应度函数是一个用于对个体的适应性进行度量的函数。通常,一个个体的适应度值越大,它被遗传到下一代种群中的概率也就越大。

3.1 常见的适应度函数

在遗传算吗中,有许多计算适应度的方法,其中最常用的适应度函数有以下两种:

3.1.1 原始适应度函数

在这里插入图片描述

采用原始适应度函数的优点是能够直接反映出待求解问题的最初求解目标,其缺点是有可能出现适应度值为负的情况。

3.1.2 标准适应度函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、基本遗传操作

遗传算法中的基本遗传操作包括选择、交叉和变异 种,而每种操作又包括多种不同的方法,下面分别对它们进行介绍。

4.1 选择操作

选择操作是指根据选择概率按照某种策略从当前种群中挑选出一定数目的个体,使它们能够有更多的机会被遗传到下一代中。常用的选择策略可分为比例选择、排序选择和竞技选择三种类型。

4.1.1 比例选择

比例选择方法的基本思想是:各个个体被选中的概率与其适应度大小成正比。

常用的比例选择策略包括轮盘赌选择和繁殖池选择。

4.1.2 轮盘赌选择

轮盘赌选择法又被称为转盘赌选择法或轮盘选择法。在这种方法中,个体被选中的概率取决于该个体的相对适应度。而相对适应度的定义为:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从统计角度看,个体的适应度值越大,其对应的扇区的面积越大,被选中的可能性也越大。这种方法有点类似于发放奖品使用的轮盘,并带有某种赌博的意思,因此亦被称为轮盘赌选择。

4.2 交叉操作

交叉操作是指按照某种方式对选择的父代个体的染色体的部分基因进行交配重组,从而形成新的个体。交配重组是自然界中生物遗传进化的一个主要环节,也是遗传算法中产生新的个体的最主要方法。根据个体编码方法的不同,遗传算法中的交叉操作可分为二进制交叉和实值交叉两种类型。

4.2.1 二进制交叉

二进制交叉是指二进制编码情况下所采用的交叉操作,它主要包括单点交叉、两点交叉、多点交叉和均匀交叉等方法。

4.2.2 单点交叉

单点交叉也称简单交叉,它是先在两个父代个体的编码串中随机设定一个交叉点,然后对这两个父代个体交叉点前面或后面部分的基因进行交换,并生成子代中的两个新的个体。假设两个父代的个体串分别是:

在这里插入图片描述

在这里插入图片描述

4.2.3 两点交叉

两点交叉是指先在两个父代个体的编码串中随机设定两个交叉点,然后再按这两个交叉点进行部分基因交换,生成子代中的两个新的个体。

假设两个父代的个体串分别是:

在这里插入图片描述
在这里插入图片描述

4.2.4 多点交叉

多点交叉是指先随机生成多个交叉点,然后再按这些交叉点分段地进行部分基因交换,生成子代中的两个新的个体。

这里不再赘述!

4.3 变异操作

变异是指对选中个体的染色体中的某些基因进行变动,以形成新的个体。变异也是生物遗传和自然进化中的一种基本现象,它可增强种群的多样性。遗传算法中的变异操作增加了算法的局部随机搜索能力,从而可以维持种群的多样性。根据个体编码方式的不同,变异操作可分为二进制变异和实值变异两种类型。

4.3.1 二进制变异

当个体的染色体采用二进制编码表示时,其变异操作应采用二进制变异方法。该变异方法是先随机地产生一个变异位,然后将该变异位置上的基因值由“0”变为“1”,或由“1”变为“0”,产生一个新的个体。

例:设变异前的个体为 0 0 1 1 0 1,若随机产生的变异位置是2,则该个体的第2位由“0”变为“1”。

在这里插入图片描述

三、遗传算法示例

在这里插入图片描述
按照遗传算法,求求解过程如下:

3.1 编码

在这里插入图片描述

3.2 生成初始种群

在这里插入图片描述

3.3 适应度函数

遗传算法中以个体适应度的大小来评定各个个体的优劣程度,从而决定其遗传机会的大小。

要计算个体的适应度,首先应该定义适应度函数。由于本例是求 f ( x ) f(x) f(x)的最大值,因此可直接用 f ( x ) f(x) f(x)来作为适应度函数。即:
f ( s ) = f ( x ) f(s)=f(x) f(s)=f(x)
在这里插入图片描述

我总结为以下的几步:

在这里插入图片描述

3.4 选择操作

假设采用轮盘赌的方式选择个体,且依次生成的4个随机数(相当于轮盘上指针所指的数)为0.85、0.32、0.12、0.46,经选择后得到的新的种群为:
在这里插入图片描述

其中,染色体11001在种群中出现了2次,而原染色体01000则因适应值太小而被淘汰。

3.5 交叉

交叉运算是遗传算法中产生新个体的主要操作过程,它以某一概率相互交换某两个个体之间的部分染色体。

我总结为以下几步:

在这里插入图片描述
可见,经交叉后得到的新的种群为:
在这里插入图片描述

3.6 变异

变异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进行改变,它也是产生新个体的一种操作方法。

总结:

在这里插入图片描述

然后,对第1代种群重复上述(4)—(6)的操作。

对第1代种群,同样重复上述(4)—(6)的操作,其选择情况如下所示:

在这里插入图片描述
其中若假设按轮盘赌选择时依次生成的4个随机数为0.14、0.51、0.24和0.84,经选择后得到的新的种群为:
在这里插入图片描述

可以看出,染色体11010被选择了2次,而原染色体01101则因适应值太小而被淘汰。

对于第1代种群,其交叉情况如下表所示:

在这里插入图片描述
可见,经杂交后得到的新的种群为:

在这里插入图片描述

可以看出,第3位基因均为0,已经不可能通过交配达到最优解。这种过早陷入局部最优解的现象称为早熟。为解决这一问题,需要采用变异操作。

对于第一代种群,其变异情况如下表所示:
在这里插入图片描述
在这里插入图片描述

接着,再对第2代种群同样重复上述(4)—(6)的操作:

对第2代种群,同样重复上述(4)-(6)的操作。其选择情况如表所示:

在这里插入图片描述

其中若假设按轮盘赌选择时依次生成的4个随机数为0.42、0.15、0.59和0.91,经选择后得到的新的种群为:
在这里插入图片描述
对第二代种群,其交叉情况如下表:

在这里插入图片描述

这时,函数的最大值已经出现,其对应的染色体为11111,经解码后可知问题的最优解是在点 x = 31 x=31 x=31处。

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Python智能优化算法PDF是一本介绍Python编程语言与智能优化算法结合的专业书籍。该书通过梳理算法原理和实现过程,向读者传递算法的核心思想和应用方法。 首先,本书详细介绍了智能优化算法的基本概念和分类。智能优化算法是一种通过模拟生物演化、社会行为等自然现象来搜索最优解的方法。它主要包括遗传算法、粒子群算法、模拟退火算法、蚁群算法等。本书通过理论和实例的结合,对这些算法原理和特点进行了详细解析。 其次,本书深入介绍了Python编程语言的基础知识,并结合智能优化算法的实现示例进行讲解。Python是一门简洁而强大的编程语言,拥有丰富的库和工具,非常适合实现智能优化算法。本书通过实例代码和实践案例,指导读者如何使用Python编程语言在优化问题中应用智能算法。 此外,本书还详细介绍了如何利用Python编程语言进行算法效果评估和参数调优。在使用智能优化算法解决实际问题时,如何评估算法的性能和调整算法参数非常重要。本书通过案例讲解和实践指导,向读者传授了评估算法效果的方法和技巧,以及参数调优的实践经验。 总之,Python智能优化算法PDF是一本面向学习智能优化算法和Python编程语言的读者的专业书籍。通过理论介绍、代码示例和实践案例,本书将帮助读者全面了解智能优化算法原理和实现方法,并掌握利用Python编程语言进行算法应用和效果评估的技巧。 ### 回答2: Python智能优化算法PDF 是一本介绍Python智能优化算法的PDF电子书。Python智能优化算法是一种通过模仿自然界中的优化机制,以寻找最优解或接近最优解的算法。这本PDF书籍将帮助读者了解Python智能优化算法的基本原理和应用。 书籍的内容包括以下几个方面: 1.智能优化算法的基本概念:介绍了智能优化算法的起源和发展,包括遗传算法、粒子群优化算法、蚁群算法等常见算法。同时,也对这些算法的特点和适用范围进行了详细的介绍。 2.Python编程基础:对Python编程语言的基本语法和常用函数进行了介绍,以帮助读者理解和实现智能优化算法。 3.智能优化算法的实现:介绍了如何使用Python编写智能优化算法的代码,包括如何定义适应度函数、如何设置算法的参数等。 4.实际应用案例:通过实际的案例,展示了智能优化算法在不同领域的应用,比如在工程设计、金融风险管理等方面。 该PDF书籍的特点是语言简洁明了,配有大量的代码示例和图表,便于读者理解和实践。读者不仅可以通过学习这本书来了解智能优化算法的基本原理,还可以通过实践案例来应用到实际问题中。 总之,Python智能优化算法PDF 是一本对Python智能优化算法进行全面介绍的书籍,适合对智能优化算法感兴趣的读者阅读和学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旅途中的宽~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值