遗传算法的特点及其应用

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

TSP( 旅 行 商 问 题

相同的城市编号。因此须改进交换运算。我们可以采
用部分匹配交换运算(PMX)。 当然也可以不进行交换运算,而直接进行变异运算,
Pc f ( xc) / f ( xi )
式中 xi 为种群中第 i 个染色体对应的数字串, f(xi) 是第 i 个染色体的适应度值, f ( xi) 法要求染色体的适应度应为正值。 是
种群中所有染色体的适应度值之和。显然,此
复制操作虽然能够从旧种群中选择出优

秀者,但不能创造新的染色体,因此,

ຫໍສະໝຸດ Baidu
由于新群体的成员是上一代群体的优秀者, 因而在总体上优于上一代。GA就这样反复迭 代,直至满足某种预定的优化指标。上述GA 的工作过程可用图1简要描述。
选择运算使用比较普遍的一种是适应度比例法。 其实就是将适应度值视为其权值,权值大的被 选中的概率也大。它与各染色体适应度成比例。
选 择
某一染色体被选中的概率为
TSP( 旅 行 商 问 题 )
度越高。例如,取N=10,城市代号为1至10。 例如种群中的染色体:2 其总路径长 8 4 10 5 1 7 3 6 9
表 示 一 条 旅 行 路 径 284105173692
D
ij
D28 D84 D410 D105 D51 D17 D73 D36 D69 D92
遗传算法简介及应用举例


遗传算法的基本概念 简单的遗传算法 选择、交换、变异 遗传算法应用举例 子集和问题 TSP(旅行商)问题 结束语

遗 传 算 法 的 基 本 概 念

遗传算法(Genetic Algorithms,简称GA) 根据适者生存,优胜劣汰等自然进化规 则来进行搜索计算和问题求解。
变 异
它随机地将染色体的某一个基因由1变成
0,或由0变成1。通过变异操作,可以使 搜索能在尽可能大的空间中进行,获得
质量较高的优化解答。
遗 传 算 法 应 用 举 例

子集和问题

TSP(旅行商)问题
GA在子集和问题上的应用

子集和问题 SUBSET_SUM :给定正整数集 合 S 和一个整数 t,判定是否存在 S的一个 子集使得S’中整数的和为t。
xi 0
子 集 和 问 题
得适应度非常接近,难以区分染色体的优劣,使得
遗传进化变得非常缓慢,且 f(x) 可能为负值,因此 还需对适应度函数做一下变换,才可以适合本题的
要求。
令f(k)为当前群体中所有染色体适应度的最大值 f’(x)=|f(k)-f(x)|
所以适应度为f ’(x)。

选择时可以用前面所介绍的适应度比例法,但可能
对许多用传统数学难以解决或明显失效的
复杂问题,特别是优化问题,GA提供了 一个行之有效的新途径。

简 单 的 遗 传 算 法
GA把每一个可能的解编码为一个向量,称为 一个染色体,向量的每一个元素称为基因。 所有染色体组成群体。并按预定的目标函数 对每个染色提进行评价,根据其结果给出一 个适应度的值。 算法开始时先随机地产生一些染色体,计算 其适应度,根据适应度对诸染色体进行选择、 交换、变异等遗传操作,剔除适应度低的染 色体,留下适应度高的染色体。
我们可以采用非负变换,把最小化优化目标函数变换为 以最大值为目标的适应度函数,可以如下定义:
f ( x) cmax Dij
其中cmax为可以取为进化过程中路径长度的最大值,或者 为了保证 f(x) 为正而预先设定为一个与种群无关的常数。

关于选择运算,可以考虑前面介绍的确定性选择法。 此处的交换运算不同于前,因为两个染色体,若进行 简单的交换运算,可能会使得染色体所表示路径中会 重复经过同一城市,即同一染色体中的两个基因有着
会因为偶然情况使得优秀的染色体没有子孙。因此, 我在这里采用确定性选择法,先计算群体中每个串 的生存概率 ,然后计算期望 Ps f i /, fj 1<=j<=n
子 集 和 问 题
复制数 ei=Ps*n ,式中:n 为群体中染色体的数目。 根据ei的值给每个染色体串分配一个复制数。

交换运算与前述相同,不过若进行单点交换有可能 使得两个染色体在交换时产生的差异过大,使得遗 传变得不稳定,优秀的染色体不能遗传到下一代。 因此可以采用多点交换。

变异运算时,只需注意变异概率的取值,至于具体
算法如前面所述。

在本题中的一些数值不妨取值如下: 种群长度(染色体个数):20 选择概率:0.9
子 集 和 问 题



变异概率:0.1
结束条件:当前最优解在 100 代遗传后仍 未改变,或已取到最优解
GA在TSP(旅行商)问题求解中的应用

TSP( 旅 行 商 问 题 )
设存在N个城市, Dij表示城i与城j之间的距离,
Dij=Dji ,现在要求一条遍历所有 N 个城市,且不 走重复路的最短路径(最短哈密尔顿圈)。

这是一个典型NP-完全问题。传统解法对此都并 不太奏效下面我们试着用遗传算法来解决这道
题目。

我们先采用十进制编码,每个染色体由按一定顺序排列
的N个城市的序号组成,表示一条可能的旅行路径。适应 度为一条旅行路径对应的距离,路径越短的染色体适应
遗传算法的开创者提出了交换操作。即: 在匹配集中任选两个染色体,随机选择 一点或多点交换点位置,交换双亲染色 体交换点右边的部分,即可得到两个新 的染色体数字串。

变异运算用来模拟生物在自然界的遗传 环境中由于各种偶然因素引起的基因突 变,它以很小概率随机地改变遗传基因 的值。在染色体以二进制编码的系统中,
子 集 和 问 题

我们已知道该问题是一个 NP- 完全问题。
在实际应用中,我们常遇到的是最优化
子集和问题。在这种情况下,我们要找
出S的一个子集S’,使得其和不超过t,但
又尽可能接近于t。

下面用遗传算法来解决: 我们可以用n位二进制数来表示每个染色体。每一位, 用0、1表示是否属于子集。 我们将染色体所表示的子集的元素和与所给t的差异 记为适应度,即令染色体x的每一位为xi,所表示元 素的值为Si则 f ( x) S i t 但是经过实践后发现由于适应度相对差异较小,使
相关文档
最新文档