4-第二篇 第2章 遗传算法的基本实现技术

4-第二篇 第2章 遗传算法的基本实现技术
4-第二篇 第2章 遗传算法的基本实现技术

第 2 章 遗传算法的基本实现技术
在第一章中,以实例简述的形式提供了遗传算法的一个基本框架。基于对自然界中生物遗传和进化机 理的模仿,许多学者针对不同的问题,设计了不同的编码方法和不同的遗传算子来模仿不同环境下生物的 遗传特性。这样,由不同的编码方法和不同的遗传算子就构成了各种特点的遗传算法,下面我们根据遗传 算法的基本构成要素来阐述其基本的实现技术。
2.1 编码方法
遗传算法的特点之一是不对求解问题的决策变量直接进行操作,而是通过对个体编码,并进行交叉与 变异的进化运算过程,不断搜索出适应度较高的新个体,最终寻求出问题的最优解或近似最优解。由于遗 传算法不能直接处理问题空间或解空间的参数,必须把它们转换成表达空间或搜索空间的染色体,这一转 换操作称为编码。
2.1.1 编码原则 应用遗传算法计算时,遇到的首要问题就是编码,可以说它是整个计算的一个关键步骤。编码方法除
决定了个体的染色体排列形式,还决定了个体从搜索空间的基因型变换到解空间的表现型时的解码方法。 编码方法也影响到交叉算子、变异算子等遗传算子的运算方法。由此可见,编码方法在很大程度上决定了 如何进行群体的遗传进化运算以及遗传进化运算的效率。一个好的编码方法,有可能使遗传运算和操作过 程简单地执行;一个差的编码方法,一方面影响运算精度和储存量,另一方面可能使交叉及变异等运算难 以实现。如果编码方法和交叉处理不当,在遗传算法中因交叉而生成的个体有可能成为无用解或无效解。
另外,编码和交叉的策略是互相依存的,恰当地设计编码和交叉的策略与方法,对充分发挥遗传算法 的效能是十分重要的,在设计编码策略时,常考虑以下三个问题:
1. 完备性:对问题空间的任何一个点有搜索空间的一个点与之对应。即问题空间的所有可能解都能 表示为所设计的基因编码形式。
2. 健全性:对于表达空间中的任何一个点都有问题空间中的一个点与之对应。即任何一个基因编码 都对应于一个可能解;
3. 非冗余性:问题空间和表达空间一一对应。 上述三点表明,编码策略必须保证从问题空间到表达空间有一对一的映射关系。 应该注意的是,对于很多问题,很难设计出同时满足上述 3 个性质的编码方案,不管怎样,完备性是 必须满足的性质,在有些情况下,虽然产生无效解并不完全都是有害的,在大部分情况下是影响运算效率 的。 上述三个编码评估规范虽然带有普遍意义,但缺乏具体的指导思想,特别是满足这些规范的编码不一 定能有效地提高遗传算法的搜索效率。 De Jong 提出了较为客观明确的编码评估准则,他称之为编码原则,又称之为编码规则: 1. 有意义基因块编码规则:应使用能易于产生与所求问题相关的低阶、短定义长度模式的编码方案。 在此原则中,模式是指具有某些基因相似性的个体集合,而具有低阶、短定义长度且适应度较高的模 式称为构造优良个体的基因块。该编码原则理解为应使用易于生成适应度较高的个体编码方案。 2. 最小字符集编码原则:所设计的编码方案应采用最小字符集以使问题得到自然的表示或描述。 在此原则中说明常常使用二进制编码方法的原因,因为它满足这条编码原则的要求。根据理论分析表 明,与其他编码字符集相比,二进制编码方案能包含最大的模式数,它可使得遗传算法在确定的规模群体 中能够处理最多的模式。 上述 De Jong 编码原则,仅仅是为编码设计提出了一定的准则,它并不适合于所有的问题,在处理实 际应用问题时,必须对编码方法、交叉运算方法、变异运算方法、解码方法等统筹考虑。以便对问题求解 简便,寻求遗传运算效率最高的编码方法。

2.1.2 二进制编码方法 二进制编码是将问题空间的变量映射成由 0,1 组成的表达空间的编码串,此操作称为二进制编码。
解码是将表达空间的二进制编码串还原成其问题空间的变量。 由于很多数值与非数值优化问题都可用二进制编码来表示,且二进制编码的表达模式最多,所以二进
制编码方法是遗传算法中最常用的一种编码方法,它具有如下优点: 1. 编码、解码操作简单易行; 2. 交叉、变异等遗传操作便于实现; 3. 符合 De Jong 的最小字符集编码原则; 4. 便于用模式定理进行分析,因为模式定理就是以二进制为基础的。
1) 编码
二进制编码符号串的长度(位数) l 与问题所要求的求解精度 δ 有关。假设某一十进制参数的取值范围
是[Umin ,Umax ],且用长度为 l 的二进制编码串来表示该参数,它总共能够产生 2l 种不同的编码,则二进
制编码与十进制参数之间的对应关系如下:
二进制数
十进制数
00000L00000 = 0 → Umin 00000L00001 = 1 → Umin + δ
M MM M
M
11111L11111 = 2l ?1 → Umax
上述关系可用图 2-1 示意:
0
U U min min + δ
…… U max
十进制数轴 (共2l个数, 2l –1个间隔)
012
……
2l ?1
图 2-1 十进制数的对应关系
十进制数轴 (共2l个数, 2l –1个间隔)
则二进制编码的编码精度 δ 为:
δ = Umax ?Umin 2l ?1
(2-1)
例如,Umin=1.5, Umax=4.5,用长度(位数) l =2 的二进制表示,则编码精度 δ =1;若用长度(位数) l =4
的二进制表示,则编码精度 δ =0.2。
但在实际应用中,往往是根据问题对精度的要求先给出编码精度,然后求出需多少长度的二进制数方
能表示。由(2-1)式,二进制数长度 l 应能满足(2-2)式:
2l ≥ (U max ?U min ) / δ +1
(2-2)
令 M = (U max ?U min ) /δ +1 ,意义是从 Umin 到 Umax 在编码精度为 δ 时总共要表示的数值个数。 例如,Umin=1, Umax=5,求 l 。

① 若是整型变量,则编码精度 δ =1,由 2l ≥ (U max ?U min ) / δ +1 = 5 有 l =3。即表示的数值个数 M=5,
要用 3 位长的二进制串才能表示。但注意到 2l = 23 = 8 ,即 3 位长的二进制串总共可表示 8 个数,而实际
只有 5 个数需要表示,这就出现了 3 个多余码,换言之,有 3 个二进制串将多余出来。
②若是连续变量,编码精度 δ =0.2,由 2l ≥ (U max ?U min ) / δ +1 = 21 有 l =5。即 M=21,要用 5 位长
的二进制串才能表示。但 25 = 32 ,而实际只有 21 个数需要表示,这就出现了 11 个多余码。
但无论是整型变量还是连续变量,一旦出现多余码,在后面用解码公式解码时将会出现错误,即无法 实现既要保证给定的编码精度,又要满足十进制中的 Umin 和 Umax 分别要对应二进制数中的 00…00 和 11…11 两个条件。
解决的方法有两个:
① 调整编码精度。上例中的连续变量问题,先由 δ =0.2 根据式(2-2)求出 l =5,然后由式(2-1)重 新确定δ = 0.129 。
这种方法对连续变量是可行的,因为精度调高将会使解更加精确,只是搜索效率会随之降低。但对整 型变量,编码精度只能是 1,因而只能采取下列方法。
② 调整对应关系。上例中的整型变量问题,由 δ =1, l =3,根据式(2-1)求出 Umax=8,换言之, 只有将上界调到 8,方能保证 δ =1、用 l =3 的二进制表示时无多余码。但这样处理往往使获得的解超出了
原问题确定的可行区间,因而实际上该法并不一定可行。
若要既保证 δ =1, l =3,又要保证上下界不变,只有人为地把问题空间的变量可选择数增加到
2l = 23 = 8 个,或者说将 3 个表达空间的多余码在问题空间内找 3 个可选择的数与之对应,这样处理意味
着有些点可重复选择,表 2-1 是一种对应关系。
表 2-1 消除多余码的一种对应关系
原对应关系
各点代号
Umin Umin+δ Umin+2δ
问题空间可选点 x
1
2
3
表达空间对应串
000
001
010
Umin+3δ 4 011
Umax 5
100
新增对应关系
Umin Umin+δ Umax
1
2
5
101
110
111
2) 解码
假设某一个体编码的二进制串是 X : blbl?1bl?2 Lb2b1 ,对应问题空间的上下界限为 Umax 及 Umin,则对
应的解码公式为:
∑ x
=
U min
+
(
n i=1
bi
2i?1
)
U
max
2
l
?U ?1
min
(2-2)
式(2-2)在无多余码的情况下,对连续及整型变量都是适用的。对注意到式(2-2)中的
U
max
2
l
?U ?1
min
实际
就是式(2-1)的编码精度,故式(2-2)可写成:
n
∑ x = U min + ( bi 2i?1)δ i=1
(2-3)
虽然式(2-2) 和式(2-3)实质上是一样的,但应用中确有区别。在整型变量存在多余码的情况下,就必

须使用式(2-3)进行解码以获得 x,这时δ = 1。当解码后如 x > U max ,就要用到表 2-1 中“新增对应关系”
栏中的给定对应关系获得 x。在 Matlab 程序中采用分支语句(switch 语句,根据不同的情况执行不同的语 句)可实现多余码及离散变量的解码问题。
n
∑ 注释:解码公式推导。若一个二进制数为 X : blbl?1bl?2 Lb2b1 ,则对应的十进制数为: bi 2i?1 。由 i =1
于二进制数的 00…00 对应十进制数的 Umin,11…11 对应 Umax,因此 X 对应的 x 就可通过插值求出,见 图 2-2。
图 2-2 解码公式推导图
[例 2.1] 有一整型变量的上下界为[0,31],根据(2-2)式求出二进制数长度 l =5,即可用 5 位长的 二进制编码来表示该变量,整型变量的编码精度 δ = 1 。若有一编码串为 X : 01101 ,按式(2-2)可求出 其对应的十进制参数值为 x = 13 δ = 1 。
虽然二进制编码有上述的优点,但在求解连续优化问题时,它有以下缺点: 1. 相邻整数的二进制编码可能具有较大的汉明(Hamming)距离。例如 7 与 8 对应的二进制表示分 别为 0111 和 1000。因此,遗传算法要将 7 改到 8 时就必须改变二进制串的所有位值,这将降低遗传算子 的搜索效率。二进制编码的这一缺点被称为汉明悬崖(Hamming cliff)。 注释:汉明距离定义为两个码的对应码元不相同的个数,记为 D(X,Y) 如:X=01001,Y=10101,则 D(X,Y)=3 设有两个相邻整数 X=15(01111),Y=16(10000),则 D(X,Y)=5 这意味着,如果要利用遗传算法将目前的数值 15 变成 16 的话,必须改变所有的位数。 2. 二进制编码时,一般要先给出编码精度以确定编码串长。而一旦精度确定后,就很难在算法执行 过程中调整。这样使算法缺乏微调的功能。若一开始就选取较高的精度,那么编码串就很长,从而降低了 算法的效率。 3. 在求解高维优化问题时,二进制编码串非常长,也使得算法的搜索效率很低。
2.1.3 格雷码(Gray)编码方法。 格雷码可以克服二进制编码在诸如结构特征、一些连续函数优化问题中局部搜索能力差等缺陷。表 2-2
是 0~15 的十进制数对应的二进制和格雷编码。注意到两个相邻整数的格雷码值仅仅有一个码位数不相同。
表 2-2 二进制码与格雷码
十进制数
二进制数
0
0000
1
0001
格雷码 0000 0001
十进制数 8 9
二进制数 1000 1001
格雷码 1100 1101

2
0010
0011
10
1010
1111
3
0011
0010
11
1011
1110
4
0100
0110
12
1100
1010
5
0101
0111
13
1101
1011
6
0110
0101
14
1110
1001
7
0111
0100
15
1111
1000
格雷编码实际上就是一种改进的二进制编码,是通过一个变换而得到的编码,目的就是克服二进制编 码中的汉明悬崖。
设二进制编码串为 B = bmbm?1 Lb2b1 ,其对应的格雷编码串为 G = gm gm?1 L g2 g1 。
将二进制转换为格雷码的公式为:
gm = bm
gi = bi+1 ⊕ bi
i = m ?1, m ? 2,L2,1
(2-4)
式中符号 ⊕ 表示模二加法,其运算规则为:0 ⊕ 0=0,0 ⊕ 1=1,1 ⊕ 0=1,1 ⊕ 1=0。
格雷码转换为二进制编码的公式为:
bm = gm bi = bi+1 ⊕ gi
i = m ?1, m ? 2,L2,1
(2-5)
[例 2.2] 区间[0,31]中的 x = 19 、 x = 20 ,将其二进制码转换为格雷码。 x = 19 ,二进制码为 10011,由式(3-3)格雷码为 11010; x = 20 ,二进制码为 10100,由式(3-3)格雷码为 11110;
观察上面结果可以发现,对于二进制编码,当问题空间的两个数很接近时,表达空间的两个数的汉明 距离却很大,在遗传算法中通过只有一个基因座变化的变异操作是很难从一点变到相邻点的,这表明即使 已搜索到最优解附近,要想达到这个最优解也要花费一番功夫。
而格雷码的编码在问题空间的两个数很接近时,表达空间的两个数的汉明距离却很小,仅有一位差异, 通过变异操作很容易从一点变到相邻点,这样就相当于增强了遗传算法的局部搜索能力,因而格雷编码往 往容易获得更好的最优点。

遗传算法在图像处理中的应用

遗传算法在图像处理中的应用 束道胜 P201002117 1引言 遗传算法( genetic algorithm, GA)是一种自适应启发式群体型概率性迭代式的全局收敛搜索算法,其基本思想来源于生物进化论和群体遗传学,体现了适者生存、优胜劣汰的进化原则。使用遗传算法求解科学研究工作和工程技术中各种组合搜索和优化计算问题这一基本思想早在20世纪60年代初期就由美国Michigan大学的Holland教授提出,其数学框架也于20世纪60年代中期形成。由于GA的整体搜索策略和优化计算不依赖于梯度信息,所以它的应用范围非常广泛,尤其适合于处理传统方法难以解决的高度复杂的非线性问题。它在自适应控制、组合优化、模式识别、机器学习、规划策略、信息处理和人工生命等领域的应用中越来越展示出优越性。 图像处理是计算机视觉中的一个重要研究领域,在图像处理过程中,如扫描、特征提取、图像分割等不可避免地会存在一些误差,从而影响图像的效果。如何使这些误差最小是使计算机视觉达到实用化的重要要求, GA 在这些图像处理中的优化计算方面找到了用武之地,目前已在图像分割、图像恢复、图像重建、图像检索和图像匹配等方面得到了广泛的应用。 2 遗传算法的原理、基本性质和改进 GA把问题的解表示成染色体(也称串) , GA的求解步骤如下: (1) 编码定义问题的解空间到染色体编码空间的映射,一个候选解(个体)用一串符号表示。 (2) 初始化种群在一定的限制条件下初始化种群,该种群是解空间的一个子空间。 (3) 设计适应度函数将种群中的每个染色体解码成适于计算机适应度函数的 形式,计算其数值。 (4) 选择根据适应度大小选择优秀个体繁殖下一代,适应度越高,则选择概率越大。 (5) 交叉随机选择两个用于繁殖下一代的个体的相同位置,在选中的位置实行交换。 (6) 变异对某个串中的基因按突变概率进行翻转。 (7) 从步骤4开始重复进行,直到满足某一性能指标或规定的遗传代数。 步骤1、2和3是实际应用中的关键,步骤4~步骤6进行3种基本基因操作,选择实现

MATLAB实验遗传算法和优化设计

实验六 遗传算法与优化设计 一、实验目的 1. 了解遗传算法的基本原理和基本操作(选择、交叉、变异); 2. 学习使用Matlab 中的遗传算法工具箱(gatool)来解决优化设计问题; 二、实验原理及遗传算法工具箱介绍 1. 一个优化设计例子 图1所示是用于传输微波信号的微带线(电极)的横截面结构示意图,上下两根黑条分别代表上电极和下电极,一般下电极接地,上电极接输入信号,电极之间是介质(如空气,陶瓷等)。微带电极的结构参数如图所示,W 、t 分别是上电极的宽度和厚度,D 是上下电极间距。当微波信号在微带线中传输时,由于趋肤效应,微带线中的电流集中在电极的表面,会产生较大的欧姆损耗。根据微带传输线理论,高频工作状态下(假定信号频率1GHz ),电极的欧姆损耗可以写成(简单起见,不考虑电极厚度造成电极宽度的增加): 图1 微带线横截面结构以及场分布示意图 {} 28.6821ln 5020.942ln 20.942S W R W D D D t D W D D W W t D W W D e D D παπππ=+++-+++?????? ? ??? ??????????? ??????? (1) 其中πρμ0=S R 为金属的表面电阻率, ρ为电阻率。可见电极的结构参数影响着电极损耗,通过合理设计这些参数可以使电极的欧姆损耗做到最小,这就是所谓的最优化问题或者称为规划设计问题。此处设计变量有3个:W 、D 、t ,它们组成决策向量[W, D ,t ] T ,待优化函数(,,)W D t α称为目标函数。 上述优化设计问题可以抽象为数学描述: ()()min .. 0,1,2,...,j f X s t g X j p ????≤=? (2)

第三章-遗传算法的理论基础

第三章 遗传算法的理论基础 遗传算法有效性的理论依据为模式定理和积木块假设。模式定理保证了较优的模式(遗传算法的较优解)的样本呈指数级增长,从而满足了寻找最优解的必要条件,即遗传算法存在着寻找到全局最优解的可能性。而积木块假设指出,遗传算法具备寻找到全局最优解的能力,即具有低阶、短距、高平均适应度的模式(积木块)在遗传算子作用下,相互结合,能生成高阶、长距、高平均适应度的模式,最终生成全局最优解。Holland 的模式定理通过计算有用相似性,即模式(Pattern)奠定了遗传算法的数学基础。该定理是遗传算法的主要定理,在一定程度上解释了遗传算法的机理、数学特性以及很强的计算能力等特点。 3.1 模式定理 不失一般性,本节以二进制串作为编码方式来讨论模式定理(Pattern Theorem)。 定义3.1 基于三值字符集{0,1,*}所产生的能描述具有某些结构相似性的0、1字符串集的字符串称作模式。 以长度为5的串为例,模式*0001描述了在位置2、3、4、5具有形式“0001”的所有字符串,即(00001,10001) 。由此可以看出,模式的概念为我们提供了一种简洁的用于描述在某些位置上具有结构相似性的0、1字符串集合的方法。 引入模式后,我们看到一个串实际上隐含着多个模式(长度为 n 的串隐含着2n 个模式) ,一个模式可以隐含在多个串中,不同的串之间通过模式而相互联系。遗传算法中串的运算实质上是模式的运算。因此,通过分析模式在遗传操作下的变化,就可以了解什么性质被延续,什么性质被丢弃,从而把握遗传算法的实质,这正是模式定理所揭示的内容 定义3.2 模式H 中确定位置的个数称作该模式的阶数,记作o(H)。比如,模式 011*1*的阶数为4,而模式 0* * * * *的阶数为1。 显然,一个模式的阶数越高,其样本数就越少,因而确定性越高。 定义3.3 模式H 中第一个确定位置和最后一个确定位置之间的距离称作该模式的定义距,记作)(H δ。比如,模式 011*1*的定义距为4,而模式 0* * * * *的定义距为0。 模式的阶数和定义距描述了模式的基本性质。 下面通过分析遗传算法的三种基本遗传操作对模式的作用来讨论模式定理。令)(t A 表示第t 代中串的群体,以),,2,1)((n j t A j =表示第t 代中第j 个个体串。 1.选择算子 在选择算子作用下,与某一模式所匹配的样本数的增减依赖于模式的平均适值,与群体平均适值之比,平均适值高于群体平均适值的将呈指数级增长;而平均适值低于群体平均适值的模式将呈指数级减少。其推导如下: 设在第t 代种群)(t A 中模式所能匹配的样本数为m ,记为),(t H m 。在选择中,一个位串 j A 以概率/j j i P f f =∑被选中并进行复制,其中j f 是个体)(t A j 的适应度。假设一代中群体 大小为n ,且个体两两互不相同,则模式H 在第1+t 代中的样本数为:

4遗传算法与函数优化

第四章遗传算法与函数优化 4.1 研究函数优化的必要性: 首先,对很多实际问题进行数学建模后,可将其抽象为一个数值函数的优化问题。由于问题种类的繁多,影响因素的复杂,这些数学函数会呈现出不同的数学特征。除了在函数是连续、可求导、低阶的简单情况下可解析地求出其最优解外,大部分情况下需要通过数值计算的方法来进行近似优化计算。 其次,如何评价一个遗传算法的性能优劣程度一直是一个比较难的问题。这主要是因为现实问题种类繁多,影响因素复杂,若对各种情况都加以考虑进行试算,其计算工作量势必太大。由于纯数值函数优化问题不包含有某一具体应用领域中的专门知识,它们便于不同应用领域中的研究人员能够进行相互理解和相互交流,并且能够较好地反映算法本身所具有的本质特征和实际应用能力。所以人们专门设计了一些具有复杂数学特征的纯数学函数,通过遗传算法对这些函数的优化计算情况来测试各种遗传算法的性能。 4.2 评价遗传算法性能的常用测试函数 在设计用于评价遗传算法性能的测试函数时,必须考虑实际应用问题的数学模型中所可能呈现出的各种数学特性,以及可能遇到的各种情况和影响因素。这里所说的数学特性主要包括: ●连续函数或离散函数; ●凹函数或凸函数; ●二次函数或非二次函数; ●低维函数或高维函数; ●确定性函数或随机性函数; ●单峰值函数或多峰值函数,等等。 下面是一些在评价遗传算法性能时经常用到的测试函数: (1)De Jong函数F1: 这是一个简单的平方和函数,只有一个极小点f1(0, 0, 0)=0。

(2)De Jong 函数F2: 这是一个二维函数,它具有一个全局极小点f 2(1,1) = 0。该函数虽然是单峰值的函数,但它却是病态的,难以进行全局极小化。 (3)De Jong 函数F3: 这是一个不连续函数,对于]0.5,12.5[--∈i x 区域内的每一个点,它都取全局极小值 30),,,,(543213-=x x x x x f 。

遗传算法在图像处理中应用

课程:新技术讲座 题目:遗传算法在图像处理中的应用XX: 学号:

目录 摘要2 1.引言3 2.遗传算法的基本原理和基本性质4 3.遗传算法在图像处理中的应用6 3.1在图像增强中的应用6 3.2在图像恢复中的应用7 3.3在图像分割中的应用8 3.4在图像压缩中的应用10 3.5在图像匹配中的应用11 4.遗传算法在图像处理中的问题及发展方向12 参考文献12

遗传算法在图像处理中的应用 摘要 遗传算法是一种模拟生命进化机制,基于生物自然选择与遗传机理的随机搜索与优化方法。近几年来,遗传算法广泛应用在生物信息学、系统发生学、计算科学、工程学、经济学、化学、制造、数学、物理、药物测量学和其他领域之中,这种算法得到快速发展,尤其是在计算机科学人工智能领域中。本文将在系统并且深入的介绍遗传算法基本理论的基础上,重点综述遗传算法在数字图像处理中的主要应用,深入研究目前遗传算法在图像处理领域中存在的问题,并对这些问题作出了一些个人的见解,阐述了遗传算法在图像处理应用的发展方向。 关键词:遗传算法,数字图像处理 Abstract Genetic Algorithm is a simulation of the life evolution mechanism,random search and optimization method which is based on the natural selection and genetic mechanism.In recent years,due to the enormous potential of solving plex optimization problems and the successful applications in the industrial field,the Genetic Algorithm developed rapidly,Especially in the field of artificial intelligence in puter science.This article not only describes the basic theoretical foundation of genetic algorithms,but also focus on

遗传算法与优化问题

实验十遗传算法与优化问题 一、问题背景与实验目的 遗传算法(Genetic Algorithm —GA),就是模拟达尔文的遗传选择与自然淘汰的生物进化过程的计算模型,它就是由美国Michigan大学的J、Holla nd教授于1975 年首先提出的?遗传算法作为一种新的全局优化搜索算法,以其简单通用、鲁棒性强、适于并行处理及应用范围广等显著特点,奠定了它作为21世纪关键智能计算之一的地位. 本实验将首先介绍一下遗传算法的基本理论,然后用其解决几个简单的函数最值问题,使读者能够学会利用遗传算法进行初步的优化计算? 1. 遗传算法的基本原理 遗传算法的基本思想正就是基于模仿生物界遗传学的遗传过程?它把问题的参数用基因代表,把问题的解用染色体代表(在计算机里用二进制码表示),从而得到一个由具有不同染色体的个体组成的群体?这个群体在问题特定的环境里生存 竞争,适者有最好的机会生存与产生后代?后代随机化地继承了父代的最好特征,并也在生存环境的控制支配下继续这一过程.群体的染色体都将逐渐适应环境,不断进化,最后收敛到一族最适应环境的类似个体,即得到问题最优的解?值得注意的一点就是,现在的遗传算法就是受生物进化论学说的启发提出的,这种学说对我们用计算机解决复杂问题很有用,而它本身就是否完全正确并不重要(目前生物界对此学说尚有争议). (1)遗传算法中的生物遗传学概念 由于遗传算法就是由进化论与遗传学机理而产生的直接搜索优化方法;故而 在这个算法中要用到各种进化与遗传学的概念? 首先给出遗传学概念、遗传算法概念与相应的数学概念三者之间的对应关系这些概念

(2)遗传算法的步骤 遗传算法计算优化的操作过程就如同生物学上生物遗传进化的过程,主要有三个基本操作(或称为算子):选择(Selection)、交叉(Crossover)、变异(Mutation). 遗传算法基本步骤主要就是:先把问题的解表示成“染色体”,在算法中也就就是以二进制编码的串,在执行遗传算法之前,给出一群“染色体”,也就就是假设的可行解.然后,把这些假设的可行解置于问题的“环境”中,并按适者生存的原则从中选 择出较适应环境的“染色体”进行复制 ,再通过交叉、变异过程产生更适 应环境的新一代“染色体”群.经过这样的一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就就是问题的最优解. 下面给出遗传算法的具体步骤,流程图参见图1: 第一步:选择编码策略,把参数集合(可行解集合)转换染色体结构空间; 第二步:定义适应函数,便于计算适应值; 第三步:确定遗传策略,包括选择群体大小,选择、交叉、变异方法以及确定交叉概率、变异概率等遗传参数; 第四步:随机产生初始化群体; 第五步:计算群体中的个体或染色体解码后的适应值; 第六步:按照遗传策略,运用选择、交叉与变异算子作用于群体,形成下一代群体; 第七步:判断群体性能就是否满足某一指标、或者就是否已完成预定的迭代次数,不满足则返回第五步、或者修改遗传策略再返回第六步. 图1 一个遗传算法的具体步骤

遗传算法与组合优化.

第四章 遗传算法与组合优化 4.1 背包问题(knapsack problem ) 4.1.1 问题描述 0/1背包问题:给出几个尺寸为S 1,S 2,…,S n 的物体和容量为C 的背包,此处S 1,S 2,…,S n 和C 都是正整数;要求找出n 个物件的一个子集使其尽可能多地填满容量为C 的背包。 数学形式: 最大化 ∑=n i i i X S 1 满足 ,1C X S n i i i ≤∑= n i X i ≤≤∈1},1,0{ 广义背包问题:输入由C 和两个向量C =(S 1,S 2,…,S n )和P =(P 1,P 2,…,P n )组成。设X 为一整数集合,即X =1,2,3,…,n ,T 为X 的子集,则问题就是找出满足约束条件∑∈≤T i i C X ,而使∑∈T i i P 获得最大的子集T ,即求S i 和P i 的下标子集。 在应用问题中,设S 的元素是n 项经营活动各自所需的资源消耗,C 是所能提供的资源总量,P 的元素是人们从每项经营活动中得到的利润或收益,则背包问题就是在资源有限的条件下,追求总的最大收益的资源有效分配问题。 广义背包问题可以数学形式更精确地描述如下: 最大化 ∑=n i i i X P 1 满足 ,1C X S n i i i ≤∑= n i X i ≤≤∈1},1,0{ 背包问题在计算理论中属于NP —完全问题,其计算复杂度为O (2n ),若允许物件可以部分地装入背包,即允许X ,可取从0.00到1.00闭区间上的实数,则背包问题就简化为极简单的P 类问题,此时计算复杂度为O (n )。

4.1.2 遗传编码 采用下标子集T 的二进制编码方案是常用的遗传编码方法。串T 的长度等于n(问题规模),T i (1≤i ≤n )=1表示该物件装入背包,T i =0表示不装入背包。基于背包问题有近似求解知识,以及考虑到遗传算法的特点(适合短定义距的、低阶的、高适应度的模式构成的积木块结构类问题),通常将P i ,S i 按P i /S i 值的大小依次排列,即P 1/S 1≥P 2/S 2≥…≥P n /S n 。 4.1.3 适应度函数 在上述编码情况下,背包问题的目标函数和约束条件可表示如下。 目标函数:∑==n i i i P T T J 1 )( 约束条件:C S T n i i i ≤∑=1 按照利用惩罚函数处理约束条件的方法,我们可构造背包问题的适应度函数f (T )如下式: f (T ) = J (T ) + g (T ) 式中g (T )为对T 超越约束条件的惩罚函数,惩罚函数可构造如下: 式中E m 为P i /S (1≤i ≤n )i 的最大值,β为合适的惩罚系数。 4.2 货郎担问题(Traveling Salesman Problem ——TSP ) 在遗传其法研究中,TSP 问题已被广泛地用于评价不同的遗传操作及选择机制的性能。之所以如此,主要有以下几个方面的原因: (1) TSP 问题是一个典型的、易于描述却难以处理的NP 完全(NP-complete )问题。有效地 解决TSP 问题在可计算理论上有着重要的理论价值。 (2) TSP 问题是诸多领域内出现的多种复杂问题的集中概括和简化形式。因此,快速、有效 地解决TSP 问题有着极高的实际应用价值。 (3) TSP 问题因其典型性已成为各种启发式的搜索、优化算法的间接比较标准,而遗传算法 就其本质来说,主要是处理复杂问题的一种鲁棒性强的启发式随机搜索算法。因此遗传算法在TSP 问题求解方面的应用研究,对于构造合适的遗传算法框架、建立有效的遗传操作以及有效地解决TSP 问题等有着多方面的重要意义。

遗传算法在图像处理中的应用

. . 课程:新技术讲座 题目:遗传算法在图像处理中的应用姓名: 学号:

目录 摘要 (2) 1.引言 (3) 2.遗传算法的基本原理和基本性质 (3) 3.遗传算法在图像处理中的应用 (5) 3.1在图像增强中的应用 (5) 3.2在图像恢复中的应用 (6) 3.3在图像分割中的应用 (7) 3.4在图像压缩中的应用 (8) 3.5在图像匹配中的应用 (9) 4.遗传算法在图像处理中的问题及发展方向 (10) 参考文献 (10)

遗传算法在图像处理中的应用 摘要 遗传算法是一种模拟生命进化机制,基于生物自然选择与遗传机理的随机搜索与优化方法。近几年来,遗传算法广泛应用在生物信息学、系统发生学、计算科学、工程学、经济学、化学、制造、数学、物理、药物测量学和其他领域之中,这种算法得到快速发展,尤其是在计算机科学人工智能领域中。本文将在系统并且深入的介绍遗传算法基本理论的基础上,重点综述遗传算法在数字图像处理中的主要应用,深入研究目前遗传算法在图像处理领域中存在的问题,并对这些问题作出了一些个人的见解,阐述了遗传算法在图像处理应用的发展方向。 关键词:遗传算法,数字图像处理 Abstract Genetic Algorithm is a simulation of the life evolution mechanism, random search and optimization method which is based on the natural selection and genetic mechanism.In recent years,due to the enormous potential of solving complex optimization problems and the successful applications in the industrial field,the Genetic Algorithm developed rapidly,Especially in the field of artificial intelligence in computer science.This article not only describes the basic theoretical foundation of genetic algorithms,but also focus on Genetic Algorithm in digital image processing.Moreover,it studies the problems of the Genetic Algorithm in the field of image processing and the direction of development in the future,Moreover,the author elaborates the personal opinion in the end. keyword :Genetic Algorithm,Digital image processing

论文-遗传算法的基本步骤

遗传算法 遗传算法(Genetic Algorithm)是基于进化论的原理发展起来的一种广为应用,高效的随机搜索与优化的方法。它从一组随机产生的初始解称为“种群”,开始搜索过程。种群中的每个个体是问题的一个解,成为“染色体”是一串符号。这些染色体在每一代中用“适应度”来测量染色体的好坏, 通过选择、交叉、变异运算形成下一代。选择的原则是适应度越高,被选中的概率越大。适应度越低,被淘汰的概率越大。每一代都保持种群大小是常数。经过若干代之后,算法收敛于最好的染色体,它很可能是问题的最优解或次优解。这一系列过程正好体现了生物界优胜劣汰的自然规律。 比如有编号为1到10的特征,现在要选取其中的5个,基于遗传算法的特征选择可以如下这样直观的理解: 下续(表格) 下续……

即设有4个不同的初始特征组合,分别计算判别值,然后取最大的2个组合([1,2,3,4,9]和[1,3,5,7,8])进行杂交,即互换部分相异的特征(4和7),得到新的两个特征组合([1,2,3,7,9]和[1,3,4,5,8]),然后再计算这两个新的组合的判别值,和原来的放在一起,再从中选择2个具有最大判别值的组合进行杂交。如此循环下去,在某一代的时候就得到了一个最好的特征组合(比如第2代的[1,3,5,7,9]的特征组合)。当然,在实际中每代的个体和杂交的数量是比较大的。 遗传算法的具体的步骤如下:

1.编码:把所需要选择的特征进行编号,每一个特征就是一个基因,一个解就是一串基因的组合。为了减少组合数量,在图像中进行分块(比如5*5大小的块),然后再把每一块看成一个基因进行组合优化的计算。每个解的基因数量是要通过实验确定的。 2.初始群体(population)的生成:随机产生N个初始串结构数据,每个串结构数据称为一个个体。N个个体,构成了一个群体。GA以这N个串结构数据作为初始点开始迭代。这个参数N需要根据问题的规模而确定。 3.交换(crossover):交换(也叫杂交)操作是遗传算法中最主要的遗传操作。由交换概率( P)挑选的每两个父代 c 通过将相异的部分基因进行交换(如果交换全部相异的就变成了对方而没什么意义),从而产生新的个体。可以得到新一代个体,新个体组合了其父辈个体的特性。交换体现了信息交换的思想。 4.适应度值(fitness)评估检测:计算交换产生的新个体的适应度。适应度用来度量种群中个体优劣(符合条件的程度)的指标值,这里的适应度就是特征组合的判据的值。这个判据的选取是GA的关键所在。

遗传算法的流程图

一需求分析 1.本程序演示的是用简单遗传算法随机一个种群,然后根据所给的交叉率,变异率,世代数计算最大适应度所在的代数 2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的命令;相应的输入数据和运算结果显示在其后。3.测试数据 输入初始变量后用y=100*(x1*x1-x2)*(x1*x2-x2)+(1-x1)*(1-x1)其中-2.048<=x1,x2<=2.048作适应度函数求最大适应度即为函数的最大值 二概要设计 1.程序流程图 2.类型定义 int popsize; //种群大小 int maxgeneration; //最大世代数 double pc; //交叉率 double pm; //变异率 struct individual

{ char chrom[chromlength+1]; double value; double fitness; //适应度 }; int generation; //世代数 int best_index; int worst_index; struct individual bestindividual; //最佳个体 struct individual worstindividual; //最差个体 struct individual currentbest; struct individual population[POPSIZE]; 3.函数声明 void generateinitialpopulation(); void generatenextpopulation(); void evaluatepopulation(); long decodechromosome(char *,int,int); void calculateobjectvalue(); void calculatefitnessvalue(); void findbestandworstindividual(); void performevolution(); void selectoperator(); void crossoveroperator(); void mutationoperator(); void input(); void outputtextreport(); 4.程序的各函数的简单算法说明如下: (1).void generateinitialpopulation ()和void input ()初始化种群和遗传算法参数。 input() 函数输入种群大小,染色体长度,最大世代数,交叉率,变异率等参数。 (2)void calculateobjectvalue();计算适应度函数值。 根据给定的变量用适应度函数计算然后返回适度值。 (3)选择函数selectoperator() 在函数selectoperator()中首先用rand ()函数产生0~1间的选择算子,当适度累计值不为零时,比较各个体所占总的适应度百分比的累计和与选择算子,直到达到选择算子的值那个个体就被选出,即适应度为fi的个体以fi/∑fk的概率继续存在; 显然,个体适应度愈高,被选中的概率愈大。但是,适应度小的个体也有可能被选中,以便增加下一代群体的多样性。 (4)染色体交叉函数crossoveroperator() 这是遗传算法中的最重要的函数之一,它是对个体两个变量所合成的染色体进行交叉,而不是变量染色体的交叉,这要搞清楚。首先用rand ()函数产生随机概率,若小于交叉概率,则进行染色体交叉,同时交叉次数加1。这时又要用rand()函数随机产生一位交叉位,把染色

遗传算法心得

最近在看遗传算法,查了很多资料,所以做了如下一些总结,也希望对后面研究的人有些帮助.因为初学GA,文中自己的见解,不一定全对,感兴趣的可以一起探讨. I简介 基本概念 遗传算法(Genetic Algorithms, GA)是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法。 它模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)对这些个体进行组合,产生新一代的候选解群,重复此过程,直到满足某种收敛指标为止。 GA的组成: (1)编码(产生初始种群) (2)适应度函数 (3)遗传算子(选择、交叉、变异) (4)运行参数 编码 基因在一定能够意义上包含了它所代表的问题的解。基因的编码方式有很多,这也取决于要解决的问题本身。常见的编码方式有: (1)二进制编码,基因用0或1表示(常用于解决01背包问题) 如:基因A:00100011010 (代表一个个体的染色体) (2)互换编码(用于解决排序问题,如旅行商问题和调度问题) 如旅行商问题中,一串基因编码用来表示遍历的城市顺序,如:234517986,表示九个城市中,先经过城市2,再经过城市3,依此类推。 (3)树形编码(用于遗传规划中的演化编程或者表示)

如,问题:给定了很多组输入和输出。请你为这些输入输出选择一个函数,使得这个函数把每个输入尽可能近地映射为输出。 编码方法:基因就是树形结构中的一些函数。 (4)值编码(二进制编码不好用时,解决复杂的数值问题) 在值编码中,每个基因就是一串取值。这些取值可以是与问题有关任何值:整数,实数,字符或者其他一些更复杂的东西。 适应度函数 遗传算法对一个个体(解)的好坏用适应度函数值来评价,适应度函数值越大,解的质量越好。适应度函数是遗传算法进化过程的驱动力,也是进行自然选择的唯一标准,它的设计应结合求解问题本身的要求而定。 如TSP问题,遍历各城市路径之和越小越好,这样可以用可能的最大路径长度减去实际经过的路径长度,作为该问题的适应度函数。 遗传算子——选择 遗传算法使用选择运算来实现对群体中的个体进行优胜劣汰操作:适应度高的个体被遗传到下一代群体中的概率大;适应度低的个体,被遗传到下一代群体中的概率小。选择操作的任务就是按某种方法从父代群体中选取一些个体,遗传到下一代群体。 SGA(基本遗传算法)中采用轮盘赌选择方法。 轮盘赌选择又称比例选择算子,基本思想:各个个体被选中的概率与其适应度函数值大小成正比。设群体大小为n ,个体i 的适应度为Fi,则个体i 被选中遗传到下一代群体的概率为: 遗传算子——交叉 所谓交叉运算,是指对两个相互配对的染色体依据交叉概率按某种方式相互交换其部分基因,从而形成两个新的个体。交叉运算在GA中起关键作用,是产生新个体的主要方法。

遗传算法基本理论实例

目录 _ 一、遗产算法的由来 (2) 二、遗传算法的国内外研究现状 (3) 三、遗传算法的特点 (5) 四、遗传算法的流程 (7) 五、遗传算法实例 (12) 六、遗传算法编程 (17) 七、总结 ......... 错误!未定义书签。附录一:运行程序.. (19)

遗传算法基本理论与实例 一、遗产算法的由来 遗传算法(Genetic Algorithm,简称GA)起源于对生物系统所进行的计算机模拟研究。20世纪40年代以来,科学家不断努力从生物学中寻求用于计算科学和人工系统的新思想、新方法。很多学者对关于从生物进化和遗传的激励中开发出适合于现实世界复杂适应系统研究的计算技术——生物进化系统的计算模型,以及模拟进化过程的算法进行了长期的开拓性的探索和研究。John H.Holland教授及其学生首先提出的遗传算法就是一个重要的发展方向。 遗传算法借鉴了达尔文的进化论和孟德尔、摩根的遗传学说。按照达尔文的进化论,地球上的每一物种从诞生开始就进入了漫长的进化历程。生物种群从低级、简单的类型逐渐发展成为高级复杂的类型。各种生物要生存下去及必须进行生存斗争,包括同一种群内部的斗争、不同种群之间的斗争,以及生物与自然界无机环境之间的斗争。具有较强生存能力的生物个体容易存活下来,并有较多的机会产生后代;具有较低生存能力的个体则被淘汰,或者产生后代的机会越来越少。,直至消亡。达尔文把这一过程和现象叫做“自然选择,适者生存”。按照孟德尔和摩根的遗传学理论,遗传物质是作为一种指令密码封装在每个细胞中,并以基因的形式排列在染色体上,每个基因有特殊的位置并控制生物的某些特性。不同的基因组合产生的个体对环境的适应性不一样,通过基因杂交和突变可以产生对环境适应性强的后代。经过优胜劣汰的自然选择,适应度值高的基因结构就得以保存下来,从而逐渐形成了经典的遗传学染色体理论,揭示了遗传和变异的

遗传算法的基本原理

第二章 遗传算法的基本原理 2.1 遗传算法的基本描述 2.1.1 全局优化问题 全局优化问题的定义:给定非空集合S 作为搜索空间,f :S —>R 为目标函数,全局优化问题作为任务)(max x f S x ∈给出,即在搜索空间中找到至少一个使目标函数最大化的点。 全局最大值(点)的定义:函数值+∞<=)(**x f f 称为一个全局最大值,当且仅当x ? S x ∈,(ρi i b a <,i 12)定义适应度函数f(X); 3)确定遗传策略,包括群体规模,选择、交叉、变异算子及其概率。 4)生成初始种群P ; 5)计算群体中各个体的适应度值; 6)按照遗传策略,将遗传算子作用于种群,产生下一代种群; 7)迭代终止判定。 遗传算法涉及六大要素:参数编码,初始群体的设定,适应度函数的设计,遗传操作的设计,控制参数的设定,迭代终止条件。

2.1.3 遗传编码 由于GA 计算过程的鲁棒性,它对编码的要求并不苛刻。原则上任何形式的编码都可以,只要存在合适的对其进行操作的遗传算子,使得它满足模式定理和积木块假设。 由于编码形式决定了交叉算子的操作方式,编码问题往往称作编码-交叉问题。 对于给定的优化问题,由GA 个体的表现型集合做组成的空间称为问题(参数)空间,由GA 基因型个体所组成的空间称为GA 编码空间。遗传算子在GA 编码空间中对位串个体进行操作。 定义:由问题空间向GA 编码空间的映射称为编码,而有编码空间向问题空间的映射成为译码。 1)2)3)它们对1) 2) k =1,2,…,K; l =1,2,…,L; K=2L 其中,个体的向量表示为),,,(21kL k k k a a a a =,其字符串形式为kL k k k a a a s 21=,s k 称为个体a k 对应的位串。表示精度为)12/()(--=?L u v x 。 将个体又位串空间转换到问题空间的译码函数],[}1,0{:v u L →Γ的公式定义为: 对于n 维连续函数),,2,1](,[),,,,(),(21n i v u x x x x x x f i i i n =∈=,各维变量的二进制

遗传算法基本理论与方法

摘要:基本遗传算法的操作是以个体为对象,只使用选择、交叉和变异遗传算子,遗传进化操作过程的简单框架。模式定理和积木块假设是解释遗传算法有效性的理论基础,理论分析与实际应用都表明基本的遗传算法不能处处收敛于全局最优解,因此基本遗传算法有待进一步改进。 关键词:遗传算法;遗传算法的改进 1.标准遗传算法 基本遗传算法包括选择、交叉和变异这些基本遗传算子。其数学模型可表示为: sag=(c,e,p0,n,φ,г,ψ,t) 其中c为个体的编码方法;e为个体适应度评价函数;p0为初始种群;n为种群大小;φ为选择算子;г为交叉算子;ψ为变异算子;t为遗传运算终止条件; 2 遗传算法基本方法及其改进 2.1编码方式 编码方式决定了个体的染色体排列形式,其好坏直接影响遗传算法中的选择算子、交叉算子和变异算子的运算,也决定了解码方式。 二进制编码 二进制编码使用的字符号{0,1}作为编码符号,即用一个{0,1}所组成的二进制符号串构成的个体基因型。二进制编码方法应用于遗传算法中有如下优点: 1)遗传算法中的遗传操作如交叉、变异很容易实现,且容易用生物遗传理论来解释; 2)算法可处理的模式多,增强了全局搜索能力; 3)便于编码、解码操作; 4)符合最小字符集编码原则; 5)并行处理能力较强。 二进制编码在存着连续函数离散化的映射误差,不能直接反应出所求问题的本身结构特征,不便于开发专门针对某类问题的遗传运算算子。 2.2初始种群的设定 基本遗传算法是按随机方法在可能解空间内产生一个一定规模的初始群体,然后从这个初始群体开始遗传操作,搜索最优解。初始种群的设定一般服从下列准则:1)根据优化问题,把握最优解所占空间在整个问题空间的分布范围,然后,在此分布范围内设定合适的初始群体。 2)先随机生成一定数目的个体,然后从中挑出最好的个体加入到初始群体中。该过程不断迭代,直到初始群体中个体数目达到了预先确定的种群大小。 2.3选择算子的分析 选择算子的作用是选择优良基因参与遗传运算,目的是防止有用的遗传信息丢失,从而提高全局收敛效率。常用的遗传算子: (1)轮盘赌选择机制 轮盘赌选择也称适应度比例选择,是遗传算法中最基本的选择机制,每个个体被选择进入下一代的概率为这个个体的适应度值占全部个体适应度值之和的比例。但是轮盘赌选择机制选择误差较大,不是所有高适应度值的个体都能被选中,适应度值较低但具有优良基因模式的个体被选择的概率也很低,这样就会导致早熟现象的产生。 (2)最优保存选择机制 最优保存选择机制的基本思想是直接把群体中适应度最高的个体复制到下一代,而不进行配对交叉等遗传操作。具体步骤如下: 1)找出当前群体中适应度值最高和最低的个体的集合;

遗传算法基础知识

遗传算法(GENETIC ALGORITHM,GA) 一、遗传算法的特点: 1、遗传算法的操作对象是一组可行解,而非单个可行解;搜索轨道有多条,而非单条,因而具有良好的并行性。 2、遗传算法只需要利用目标的取值信息,而无需梯度等高价值信息,因而适用于任何大规模、高度非线性的不连续多峰函数的优化以及无解析表达式的目标函数的优化,具有很强的通用性。 3、遗传算法择优机制是一种软选择,加上其良好的并行性,使它具有良好的全局优化和稳健性。 4、遗传算法操作的可行解是经过编码化的(通常采用二进制编码),目标函数解释为编码化个体(可行解)的适应值,因而具有良好的可操作性和简单性。 二、遗传算法的发展与现状 遗传算法的产生归功于美国的Michigan大学的Holland在20世纪60年代末、70年代初的开创性,其本意是在人工适应系统中设计的一种基于自然演化原理搜索机制。大约在同一时代,Foegl和Rechenberg及Schwefel,引入了另两种基于自然演化原理的算法,演化程序(evolutionary programming)和演化策略(evolution strategies).这三种算法构成了目前演化计算(evolutionary computation)领域的三大分支,它们从不同层次、不同角度模拟自然演化原理,以达到求解问题的目的。Holland不仅设计了遗传算法的模拟与操作原理,更重要的是他运用统计策略理论对遗传算法的搜索机理进行了理论分析,

建立了著名的Schema定理和隐含并行(implicit parallelism)原理,为遗传算法奠定了基础。遗传算法应用于函数优化始于De Jone的在线(one-line)和离线(off-line)指标仍是目前衡量遗传算法性能的主要手段。 1、遗传算法在神经网络、模糊系统和机器学习中的应用 神经网络的学习包含两个优化过程,分别是网络连接权重的优化和网络拓扑结构的优化。优化连接权重最著名的方法是Rumelhart提出的基于梯度下降法的反向传播法(backpropagation,BP)。BP算法的最大弱点是局部极小问题和无法学习网络拓扑结构。作为一种通用性和全局性良好的优化技术,遗传算法用于神经网络的训练就是很自然的事情。遗传算法用于神经网络的学习可分为三个不同的层次:连接权重的学习规则的学习。目前遗传算法已经广泛用于前向网络(feedward networks)、径向基网络(radial basis function networks)、Kohonen特征映射及Recurrent网络等各种人工神经网络的训练与设计中。演化神经网络(evolutionary artificial neural networks)作为一种一般的自适应学习模型加以研究。 被Zedeh 称作软计算(soft computing)的两大组成部分——遗传算法与模糊系统的相互融合也是近年人们关注的话题。模糊系统是对人类处理模糊性概念极其推理机制的模拟。最初,在模糊系统设计中,推理方法的选取、隶属函数形状及参数的选取、相关权重的确定以及规则的确定,均是由专家根据实际经验经验指定的。模糊神经网络(fuzzy neural networks).遗传算法已成功应用于隶属函数形状与参

基本遗传算法及应用举例

基本遗传算法及应用举例 遗传算法(Genetic Algorithms)是一种借鉴生物界自然选择和自然遗传机制的随机、高度并行、自适应搜索算法。遗传算法是多学科相互结合与渗透的产物。目前它已发展成一种自组织、自适应的多学科技术。 针对各种不同类型的问题,借鉴自然界中生物遗传与进化的机理,学者们设计了不同的编码方法来表示问题的可行解,开发出了许多不同环境下的生物遗传特征。这样由不同的编码方法和不同的遗传操作方法就构成了各种不同的遗传算法。但这些遗传算法有共同的特点,即通过对生物的遗传和进化过程中的选择、交叉、变异机理的模仿来完成对最优解的自适应搜索过程。基于此共同点,人们总结出了最基本的遗传算法——基本遗传算法。基本遗传算法只使用选择、交叉、变异三种基本遗传操作。遗传操作的过程也比较简单、容易理解。同时,基本遗传算法也是其他一些遗传算法的基础与雏形。 1.1.1 编码方法 用遗传算法求解问题时,不是对所求解问题的实际决策变量直接进行操作,而是对表示可行解的个体编码的操作,不断搜索出适应度较高的个体,并在群体中增加其数量,最终寻找到问题的最优解或近似最优解。因此,必须建立问题的可行解的实际表示和遗传算法的染色体位串结构之间的联系。在遗传算法中,把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法称之为编码。反之,个体从搜索空间的基因型变换到解空间的表现型的方法称之为解码方法。 编码是应用遗传算法是需要解决的首要问题,也是一个关键步骤。迄今为止人们已经设计出了许多种不同的编码方法。基本遗传算法使用的是二进制符号0和1所组成的二进制符号集{0,1},也就是说,把问题空间的参数表示为基于字符集{0,1}构成的染色体位串。每个个体的染色体中所包含的数字的个数L 称为染色体的长度或称为符号串的长度。一般染色体的长度L 为一固定的数,如 X=1010100 表示一个个体,该个体的染色体长度L=20。 二进制编码符号串的长度与问题所要求的求解精度有关。假设某一参数的取值范围是[a ,b],我们用长度为L 的二进制编码符号串来表示该参数,总共能产生L 2种不同的编码,若参数与编码的对应关系为 00000000000……00000000=0 →a 00000000000……00000001=1 →a+δ ? ? ? ……=L 2-1→b 则二进制编码的编码精度1 2--= L a b δ 假设某一个个体的编码是kl k k k a a a x 21=,则对应的解码公式为 )2(121 ∑=---+=L j j L kj L k a a b a x 例如,对于x ∈[0,1023],若用长度为10的二进制编码来表示该参数的话,则下述符号串:

相关文档
最新文档