遗传算法

本文详细介绍了遗传算法的概念,包括种群、个体、染色体和适应度函数等,以及基本遗传算法的编码表示、适应度度量、选择策略和遗传算子设计。通过在Schaffer、Rastrigin和Griewank函数上的优化实例,展示了不同种群数量和维度下遗传算法的性能,分析了最优适应度值和运行时间的影响因素。
摘要由CSDN通过智能技术生成

一、遗传算法简介

1.实现

在计算机上模拟生物的进化过程和基因的操作(选择、 交叉、变异)。

2.目的

(1)抽象和严谨地解释自然界的适应过程;
(2)将自然生物系统的重要机理运用到人工系统的设计中。

3.遗传算法概述

遗传算法的基本思想是从初始种群出发,采用优胜劣汰、 适者生存的自然法则选择个体,并通过杂交、变异来产生新 一代种群,如此逐代进化,直到满足目标为止。遗传算法所 涉及到的基本概念主要有以下几个:
• 种群(Population):种群是指用遗传算法求解问题时, 初始给定的多个解的集合。遗传算法的求解过程是从这个子 集开始的。

•个体(Individual):个体是指种群中的单个元素,它通常 由一个用于描述其基本遗传结构的数据结构来表示。例如, 可以用0、1组成的长度为l的串来表示个体。

• 染色体(Chromosome):染色体是指对个体进行编码后 所得到的编码串。染色体中的每1位称为基因,染色体上由 若干个基因构成的一个有效信息段称为基因组。

• 适应度(Fitness)函数:适应度函数是一种用来对种群中 各个个体的环境适应性进行度量的函数。其函数值是遗传 算法实现优胜劣汰的主要依据

• 遗传操作(Genetic Operator):遗传操作是指作用于种 群而产生新的种群的操作。标准的遗传操作包括以下3种基本形式:
– 选择(Selection)
– 杂交(Crosssover)
– 变异(Mutation)

二、基本遗传算法

在这里插入图片描述

1.编码表示

常用的遗传编码算法有二进制码、实数编码。

(1)二进制编码(Binary encoding)

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

例 假设变量x的定义域为[4,10],要求的计算精度为10-5, 则需要将[4,10]至少分为600000个等长小区间,每个小区间 用一个二进制串表示。于是,串长至少等于20,原因是: 524288=219<600000<220=1048576 这样,对应于区间[4,10]内满足精度要求的每个值x,都可用 一个20位编码的二进制串<b19,b18,…,b0>来表示。

(2) 实数编码(Real encoding)

实数编码是将每个个体的染色体都用某一范围的一个实 数(浮点数)来表示,其编码长度等于该问题变量的个数。

这种编码方法是将问题的解空间映射到实数空间上,然 后在实数空间上进行遗传操作。由于实数编码使用的是变量 的真实值,因此这种编码方法也叫做真值编码方法。实数编码适应于那种多维、高精度要求的连续函数优化 问题。

2.适应性的度量

个体的适应值即是它繁殖的能力,它将直接 关系到其后代的数量,在遗传算法中,适应 函数是用来区分群体中个体好坏的标准,是 算法演化过程的驱动力,同时也是进行自然 选择的唯一依据。
适应函数
适应值会出现两种情形,一是极小情形即原始适 应值越小个体性能越好;另一种是极大化情形即 原始适应值越大个体性能越好 。
遗传算法中的某些选择策略则要求适应函数是非 负的,而且适应值越大表明个体的性能越好。
对于极小化情形,标准适应值可定义为 : 在这里插入图片描述

3.选择策略

不同的选择策略将导致不同的选择压力,即下一代 中父代个体的复制数目的不同分配关系。

转盘式选择 (轮赌)
转盘式选择是基于适应值比例的选择中比较重要 的选择策略。 l 先计算个体的相对适应值 在这里插入图片描述
根据选择概率pi把一个圆盘分成N份
在这里插入图片描述
从统计角度看,个体 的适应度值越大,其对 应的扇区的面积越大, 被选中的可能性也越大。这种方法有点类似于发 放奖品使用的轮盘,并 带有某种赌博的意思,因此亦被称为轮盘赌选择。
遗传算子的设计

4.遗传算子的设计
(1)杂交算子

杂交运算是指对两个相互配对的染色体按某种 方式相互交换其部分基因,从而形成两个新的 个体。
① 单点杂交:称为简单杂交,它是指在个体编码 串中只随机设计一个杂交点,然后在该点相互 交换两个配对个体的部分染色体。
② 双点杂交与多点杂交 • 双点杂交是指在个体编码串中设置了二个杂交点, 然后再进行部分基因交换。
③ 均匀杂交 l 均匀杂交是指两个配对个体每一个基因座上的基 因都以相同的杂交概率进行交换,从而形成两个 新的个体。 l 均匀杂交实际上可归属于多点杂交的范围 .

(2)变异算子

变异运算是指将个体染色体编码串中的某些基 因座上的基因值用该基因座的其它等为基因来 替换,从而形成一个新的个体。
遗传算法中使用变异算子主要有以下两个目的: 1)改善遗传算法的局部搜索能力。 2)维持群体的多样性,防止出现早熟现象。
①基本位变异
对个体的每一个基因座,依变异概率Pm指定其为变异点。
对每一个指定的变异点,对其基因值做取反运算 或用其他等位基因值来代替,从而产生出一个新 的个体。
②均匀变异
• 依次指定个体编码串中的每个基因座为变异点。
• 对每一个变异点,以变异概率Pm从对应基因的取值范围内取一随机数来替代原有基因值。

三、函数优化

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

  • 2
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值