遗传算法的设计与实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)二进制编码的优点 ①能表达的模式数最多; ②简单易行; ③符合最小字符集编码原则; ④便于用模式定理进行分析。
1.2 编码方法(2)
(2)二进制编码的缺点,尤其在求解连续优化问题时 ①相邻整数的二进制编码具有较大的Hamming距离,如15和
16的二进制表示为01111和10000。算法要从15改进到16则 必须改变所有的位,这种缺陷降低遗传算子的效率。这一 缺陷有时被称为Hamming悬崖(Hamming Cliffs) ②二进制编码时,一般要先给出求解的精度,以确定串长。 而精度一旦确定 后,就很难在算法中进行调整,从而使算 法失去微调功能,若一开始就选取较高的精度,则位串就 很长,这样会降低算法的较率。 ③求解高维优化问题时,二进制编码位串将非常长,从而使 得算法的搜索效率很低。
00011000 00111100 01100110 11000011 11000011 11111111 11000011 11000011
1.2 编码方法(10)
1.2.8 二维染色体编码 二维染色体编码的交叉操作
父代:
子代:
纵横交叉
窗口交叉
模式定理仍然适用。
由于图像的数据量很大,用遗传算法进行图像恢复时计算量很大。以 32×32的二值图像为例,此问题相当于在32×32=1024维空间中寻优。
表达空间的一个点与之对应。即问题空间的所有可能解都 能表示为所设计的基因链码形式。 (2)健全性(soundness):对于表达空间中的任一点都有问 题空间中的一个点与之对应。即任何一个基因链码都对应 一个可能解。 (3)非冗余性(non-redundancy):问题空间和表达空间一一 对应。
对于一些问题,很难设计出同时满足上述3个性质的编码 方案,但完备性是必须满足的一个性质。在有些情况下, 允许生成无用解,也允许不满足非冗余性。
• 如果编码方法和交叉处理不当,在遗传算法中因交叉产生 的个体有可能成为无用解或无效解。编码策略与交叉策略 互为依存,恰当地设计编码和交叉策略或方法,对于发挥 遗传算法的功能十分重要。
1.1 编码原则(2)
• 设计编码策略时,常考虑以下3个问题: (1)完备性(completeness):对于问题空间中的任一点都有
1.2.8 二维染色体编码 在许多应用中,问题的解呈二维或多维表示,此时采 用一维编码很不方便,交叉操作也很不直观,因而可 采用多维编码。例如图像恢复处理。 图像恢复是指把一个被干扰的图像恢复到它的原始面 目。显然图像恢复处理所求的解是一个图像。一个染 色体就代表一个图像,可表示为一个二维的二值数组, 如下图给出一个8×8的二值图像编码。
• 对于未成熟收敛现象,应设法降低某些异常个体的竞争力, 可以通过缩小相应的适应度函数值来实现。有时也需要扩 大相应的适应度函数值。这种缩放称作适应度调整 (scaling)。
{ (a1) (c3) }
1.2 编码方法(8)
1.2.7 可变长编码(3) mGA在做适应度计算时需要把以表形式表示的个体转换成 规定长度的字符串形式。要除去多余指定或补足缺省指定。 因此在mGA中经适应度计算后,群体中染色体长度是相等 的,但经过其特有的交叉操作后,新群体中的染色体长度 又可能不相等了。如:
1.2 编码方法(5)
1.2.5 有序串编码 若目标函数的值只与表示解的字符串中各字符的位置有关 而与其具体值无关,则称为纯排序问题。如前述的5个城市 的旅行商问题的第一种编码方式。一般在组合优化问题中 使用较多。
1.2.6 多参数映射编码 在优化问题求解中常会碰到多参数优化问题。如:函数 f(x,y)=x2y2,x[0,63], y[0,63]的优化中,可如下编码:x用8 位的0,1串表示,y也用8位的0,1串表示。将这两个串按x在 前,y在后的顺序连接起来,构成16位的0,1串作为基因链 码表示。 一般来讲,多参数映射编码中的每一个子串对应各自串的 编码参数,所以可用不同长度的基因链码表示各自的参数。
1.2 编码方法(7)
1.2.7 可变长编码(2) 在mGA中,基因的意义和基因位置无关,而是由成对的符 号所决定,如下表中的{(a1) (b4) (c3)}可看作是三位长的串, 解释为a的值为1,b的值为4,c的值为3。
正确指定 过剩指定 缺省指定
{ (a1) (b4) (c3) } { (a1) (b4) (c3) (a3) }
其中而从表一示个模G2ra加y法串。到二进制串如i>的果1 变换为
i
bi a j (mod 2)
j 1
如,二进制串1101011对应的Gray串为1011110。
1.2 编码方法(4)
1.2.3 动态编码 动态编码是当算法收敛到某局部极值时增加搜索的精度。 增加精度的办法是在保持串长不变的前提下减少搜索区域。
1.2.4 实数编码 对问题的变量是实向量的情形,可以直接采用十进制进行 编码。这样便可直接对解进行遗传操作,从而便于引入与 问题领域相关的启发式信息以增加遗传算法的搜索能力。
对于大部分数值优化问题,通常需要针对十进制编码的特性, 引入其他一些专门设计的遗传算子,试验证明,采用实数编 码比采用二进制编码的算法平均效率要高.
遗传算法的设计与实现
湖南大学软件学院 欧阳柳波
0 引言
• 通过理论分析,我们对遗传算法有更深入的认识, 为解决实际问题提供了很好的指导,但通常情况 下,由于实际问题不能满足理论分析所要求的前 提条件,一些理论结果往往不能直接应用于实际 问题中。
• 我们需要根据待解决的问题设计不同的遗传算子, 选取不同的参数,从而使算法更有效。
二进制字符串
x值
非二进制字符串
01101
13
N
11000
24
Y
01000
8
I
10011
19
T
适应度值 169 576 64 561
1.1 编码原则(5)
• 为什么通常情况下要采用二值编码方案? (1)显然,在二值编码情况下,群体码串的相似性
很容易找到。在非二值编码情况下,码串的相似 性很难观察到。 (2)实际上,如果不限制基因链码的长度,可以证 明,使用二进制能表达的模式数最多。根据模式 理论,一个编码方案应该能提供最多的模式。 (3)二进制编码方案符合最小字符集的编码规则。
1.1 编码原则(4)
• 前章中求f (x)=x2,x[0,31]函数极值的例子,其采用的是 二进制5位编码方法。我们也可给出另一种非二值编码。 该编码建立在32个字符组成的字符集基础上,其中包括 {A-Z}共26个字符和{1-6}中的6个数字。这两种编码的部 分对应关系如下表1:
表1 二值编码和非二值编码表示的比较
父辈1:111 | 111 111 后代1:111 | 000
父辈2:000 000 | 000 后代2:000 000 | 111 111
mGA的可变长染色体编码尤其在求解非线性问题时表现 出很好的效果。但是前述的模式定理已不适用于mGA, 为此需要再做分析和研究。
1.2 编码方法(9)
1.2 编码方法(3)
1.2.2 Gray编码 Gray编码是将二进制编码通过一个变换而得到的编码,其 目的是克服二进制编码中的Hamming悬崖的缺点。
进设制有编二码进到制G串raby1b编2.码..b的n,变对换应为的Gray串为a1a2…an,则从二
a b1
如果
i
bi1bi i=1
1.2 编码方法(6)
1.2.7 可变长编码(1) 自然界生物进化过程中,越是高等生物其染色体越长,即 染色体的长度不是固定不变的。Goldberg于1991年提出的 MessyGA(mGA) 就融入了这种机制。
mGA不同于标准的遗传算法,它可以较好地克服标准遗传 算法对非线性问题处理的弱点。具有以下特点: ①染色体长度可变; ②允许过剩指定和缺省指定; ③基于切断和拼接操作的交叉处理; ④分为二阶段处理,即原始阶段和并立阶段或对接阶段。
2. 适应度函数
• 遗传算法在优化搜索中基本上不用外部信息,仅用适应度 函数为寻优依据。
• 遗传算法对适应度函数的唯一要求是,该函数不能为负, 这使GA应用范围很广。
• 适应度函数的设计要根据待求解问题而定,适应度函数的 设计直接影响GA的性能。
• 在许多问题求解中,其目标是求函数g(x)的最小值,而不是最 大值。即使某个问题可自然地表示为求最大值形式,但也 不能保证对于所有的x, g(x)都取非负值。由于GA中要对个 体的适应度进行比较排序并在此基础上确定选择概率,所 以适应度值要取正值。因此将目标函数映射成求最大值形 式且函数值非负的适应函数是必要的。
1.1 编码原则(3)
• 为使编码设计能有效地提高算法的搜索效率,De Jong提出更为客观明确的编码评估准则,称之为 编码原理或编码规则:
(1)有意义基因块编码规则:所设计的编码方案应 当易于生成与所求问题相关的短定义距和低阶的 基因块。
(2)最小字符集编码规则:所Βιβλιοθήκη Baidu计的编码方案应采 用最小字符集以使问题得到自然的表示或描述。
2.1 目标函数映射成适应度函数
GA中,把最小化问题转化为最大化问题,可采用以下方法
进行转换:
f ( x) Cmaxg ( x), g ( x)Cmax
0,
其他
Cmax可以是一个合适的输入值,也可采用迄今为止进化中 g(x)的最大值,或g(x)的最大值。
如果g(x)非负,也可采用f (x)=1/g(x)。
• 在遗传算法实现上,编码方法、遗传算子的选择、 控制参数的选取等都是十分关键的问题。
1 编码原则与方法
• 把优化问题的解的参数形式转换成基因链码的表 示形式,这一转换操作就叫做编码,也可以称作 是问题的表示(representation)。
• 一般来讲,由于遗传算法的鲁棒性,其对编码要 求并不苛刻。大多数问题可以采用基于{0,1}符号 集的二值编码形式。
• 编码的策略或方法对于遗传操作,尤其是对交叉 操作的功能影响很大,因而编码问题常被称为编 码-交叉问题。
1.1 编码原则(1)
• 通过编码后,问题的解由某种基因链码形式表示。我们称 该基因链码的所有个体构成了表达空间。因此编码问题实 际是从问题空间到表达空间的映射问题。
• 个体因一次变异所能迁移到的局部空间叫做变异近邻 (mutation neighborhood)。由两个体进行一次交叉所能迁移 到的局部空间叫交叉近邻(crossover neighborhood)。在GA 空间中,由于交叉近邻是由两个个体所决定的,所以它比 变异近邻迁移要大些。
当问题是求g(x)的最大值时,适应度函数的非负性可用如
下变换得到保证
f ( x) Cming ( x), Cming ( x)0
0,
其他
式中系统Cmin可以是合适的输入值,或是当前一代或前k代 中g(x)的最小值,或g(x)的最小值。
2.2 适应度函数调整
• 在进化初期,群体中会出现异常个体,并占据很大的比例, 若按照轮盘赌策略,这些异常个体竞争力太突出,会控制 选择过程,导致未成熟收敛现象,从而影响算法的全局优 化性能。
(1)ABCDE (2)PABPACPADPAEPBCPBDPBEPCDPCEPDE = 1000100101
B
7
10
A
7 13
E
6C
10
5
10
9
6
D
编码(1)只要考虑每个城市仅在基 因链码中出现一次即可避免生成无 意义的个体,即满足编码规则(1), 但不满足规则(2);编码(2)不 易满足规则(1),而更易满足规则 (2);显然这两个编码在具体应用 中具有矛盾性。
真正有效的编码设计应在评估规范和准则的基础上,充分考虑编码与问题 约束条件的关系,编码与遗传操作尤其是交叉操作间的关系。
1.2 编码方法(1)
• 一维编码是指搜索空间的参数转换到遗传空间后,其相应 的基因呈一维排列构成基因链码。即表示个体的字符集中 的要素构成了字符串。
1.2.1 二进制编码 即将原问题的解映射成为0,1组成的位串,然后在串空间 上进行遗传操作。结果再通过解码过程还原其解空间的解, 然后再进行适应度值的计算。
1.1 编码原则(6)
• 旅行商问题:一个有穷的“城市”集合C={C1,C2,…,Cm}。 对于任意 一对城市Ci,CjC,有“距离”d(Ci,Cj)R+,要求从某个城市出发经过 每个城市一次,且只经过一次,找出距离之和最小的路径。 考虑5个城市的旅行商问题,如下图,给问题的一个可行解,给了出 如下两种编码表示方法。
相关文档
最新文档