遗传算法的实验问题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
遗传算法的实验问题 I.实验问题 对函数求解全局最大值。 II.实验目的 本实验的主要目的是通过 MATLAB 编程, 使学生熟悉并掌握常用的 MATLAB 函数, 同时对 遗传算法有个初步的了解。 III.相关知识 遗传算法是进化算法中产生最早、影响最大、应用也比较广泛的一个研究方向和领域, 其基本思想是由美国密执安大学的 John H. Holland 教授于 1962 年率先提出的。1975 年, 他出版了专著《自然与人工系统中的适应性行为》(Adaptation in Natural and Artificial Systems)[19],该书系统地阐述了遗传算法的基本理论和方法,确立了遗传算法的基本数学 框架。此后,从事遗传算法研究的学者越来越多,使之成为一种通用于多领域中的优化算法。 遗传算法是一种基于生物的自然选择和群体遗传机理的搜索算法。它模拟了自然选择和 自然遗传过程中发生的繁殖、交配和突变现象。它将每个可能的解看做是群体(所有可能解) 中的一个个体,并将每个个体编码成字符串的形式,根据预定的目标函数对每个个体进行评 价,给出一个适应度值。开始时总是随机地产生一些个体(即候选解) ,根据这些个体的适应 度利用遗传算子对这些个体进行操作,得到一群新个体,这群新个体由于继承了上一代的一 些优良性状,因而明显优于上一代,这样逐步朝着更优解的方向进化。遗传算法在每一代同 时搜索参数空间的不同区域,然后把注意力集中到解空间中期望值最高的部分,从而使找到 全局最优解的可能性大大增加。 作为进化算法的一个重要组成部分,遗传算法不仅包含了进化算法的基本形式和全部优 点,同时还具备若干独特的性能: 1) 在求解问题时, 遗传算法首先要选择编码方式, 它直接处理的对象是参数的编码集而 不是问题参数本身,搜索过程既不受优化函数连续性的约束,也没有函数导数必须存在的要 求。通过优良染色体基因的重组,遗传算法可以有效地处理传统上非常复杂的优化函数求解 问题。 2) 若遗传算法在每一代对群体规模为 n 的个体进行操作,实际上处理了大约 O(n3)个 模式,具有很高的并行性,因而具有明显的搜索效率。 3) 在所求解问题为非连续、 多峰以及有噪声的情况下, 能够以很大的概率收敛到最优解 或满意解,因而具有较好的全局最优解求解能力。 4) 对函数的性态无要求, 针对某一问题的遗传算法经简单修改即可适应于其他问题, 或 者加入特定问题的领域知识,或者与已有算法相结合,能够较好地解决一类复杂问题,因而 具有较好的普适性和易扩充性。 5) 遗传算法的基本思想简单,运行方式和实现步骤规范,便于具体使用。 1.遗传算法对问题的描述 对于一个求函数最大值的优化问题 (求函数最小值也雷同) 一般可描述为下述数学规划 , 模型: (1) 式中,X=[x1,x2,...,xn]T 为决策变量,f(X)为目标函数,和为约束条件,U 是基本空间,R 是 U 的一个子集。 集合 R 表示由所有满足约束条件的解所组成的一个集合, 叫做可行解集合。 它们的关系如图 1 所示。 图 1 最优化问题的可行解及可行解集合 在遗传算法中,将 n 维决策向量 X=[x1,x2,...,xn]T 用 n 个记号 Xi(i=1,2,...,n)
基于对自然界中生物遗传与进化机理的模仿,针对不同的问题,很多学者设计了许多不 同的编码方法来表示问题的可行解,开发了许多种不同的遗传算子来模仿不同环境下的生物 遗传特性。这样,由不同的编码方法和不同的遗传算子就构成了各种不同的遗传算法。但这 些遗传算法都有共同的特点,即通过对生物遗传和进化过程中选择、交叉、变异机理的模仿, 来完成对问题最优解的自适应搜索过程。基于这个共同特点,Goldberg 总结出了一种统一的 最基本的遗传算法--基本遗传算法(simple genetic algorithms,简称 SGA)[20]。基本遗 传算法只使用选择算子、交叉算子和变异算子这三种基本遗传算子,其遗传进化操作过程简 单,容易理解,是其他一些遗传算法的雏形和基础,它不仅给各种遗传算法提供了一个基本 框架,同时也具有一定的应用价值。 下面给出基本遗传算法的构成要素: (1) 染色体编码方法。基本遗传算法使用固定长度的二进制符号串来表示群体中的个 体,其等位基因是由二值符号集{0,1}所组成的。初始群体中各个个体的基因值可用均匀分 布的随机数来生成。如: X=100111001000101101 就可表示一个个体,该个体的染色体长度是 n=18。 (2) 个体适应度评价。基本遗传算法按与个体适应度成正比的概率来决定当前群体中每 个个体遗传到下一代群体中的机会多少。为正确计算这个概率,这里要求所有个体的适应度 必须为正数或零。这样,根据不同种类的问题,必须预先确定好由目标函数值到个体适应度 之间的转换规则,特别是要预先确定好当目标函数值为负数时的处理方法。 (3) 遗传算子。基本遗传算法使用下述三种遗传算子: ·选择运算使用比例选择算子; ·交叉运算使用单点交叉算子; ·变异运算使用基本位变异算子或均匀变异算子。 (4) 基本遗传算法的运行参数。基本遗传算法有下述 4 个运行参数需要提前设定: ·N :群体大小,即群体中所含染色体的数量,一般取为 20~100。 ·maxgen :遗传运算的终止进化代数,一般取为 100~500。 ·pc :交叉概率,一般取为 0.4~0.99。 ·pm :变异概率,一般取为 0.0001~0.1。 需要说明的是,这里给出的 4 个运行参数的取值范围是在经过了多次试验后得到的经验 值,它们对遗传算法的求解结果和求解效率都有一定的影响,但目前尚无合理选择它们的理 论依据。所以我们在遗传算法的实际应用中,要根据问题的不同并经过多次试验来合理地选 择这些参数的取值大小或取值范围。 IV.实验数据集 1. 实验程序例文(用 MATLAB 实现遗传算法程序.pdf) 2. 训练问题: 求全局最大值。 3. 实验问题:求全局最大值。 4. 例文(改进的遗传模糊聚类算法.doc)
所组成的符号串 X 来表示: X = X1X2...Xn X=[x1 , x2 ,...,xn]T 把每个 Xi 看作一个遗传基因,它的所有可能取值称为等位基因,这样,X 就可看做是由 n 个 遗传基因所组成的一个染色体。一般情况下,染色体的长度 n 是固定的,但对一些问题 n 也 可以是变化的。根据不同的情况,这里的等位基因可以是一组整数,也可以是某一范围内的 实数值,或者是纯粹的一个符号。最简单的等位基因是由 0 和 1 这两个整数组成的,相应的 染色体就可表示为一个二进制符号串。这种编码所形成的排列形式 X 是个体的基因型,与它 对应的 X 值是个体的表现型。通常个体的表现型和基因型是一一对应的,但有时也允许基因 型和表现型是多对一的关系。染色体 X 也称为个体 X,对于每个个体 X,要按照一定的规则确 定出其适应度。个体的适应度与其对应的个体表现型 X 的目标函数值相关联,X 越接近于目 标函数的最优点,其适应度越大;反之,其适应度越小。 在遗传算法中,决策变量 X 组成了问题的解空间。对问题最优解的搜索是通过对染色体 X 的搜索过程来进行的,从而由所有的染色体 X 就组成了问题的搜索空间。 生物的进化是以集团为主体的。与此相对应,遗传算法的运算对象是由 M 个个体所组成 的集合,称为群体(或种群) 。与生物一代一代的自然进化过程相类似,遗传算法的运算过程 也是一个反复迭代的过程,第t代群体记做 P(t),经过一代遗传和进化后,得到第 t+1 代群 体,它们也是由多个个体组成的集合,记做 P(t+1)。 这个群体不断地经过遗传和进化操作,并且每次都按照优胜劣汰的规则将适应度高的个体更 多地遗传到下一代,这样最终在群体中将会得到一个优良的个体 X,它所对应的表现型 X 将 达到或接近于问题的最优解 X*。 生物的进化过程主要是通过染色体之间的交叉和染色体的变异来完成的。与此相对应, 遗传算法中最优解的搜索过程也模仿生物的这个进化过程,使用所谓的遗传算子作用于群体 P(t)中,进行下述遗传操作,从而得到新一代群体 P(t+1)。 ·选择(selectin) :根据各个个体的适应度,按照一定的规则或方法,从第 t 代群体 P(t)中选择出一些优良的个体遗传到下一代群体 P(t+1)中。 ·交叉(crossover) :将群体 P(t)内的各个个体随机搭配成对,对每一对个体,以某个 概率(称为交叉概率,crossoverrate)交换它们之间的部分染色体。 ·变异(mutation) :对群体 P(t)中的每一个个体,以某一概率(称为变异概率, mutationrate)改变某一个或某一些基因座上的基因值为其他的等位基因。 2.遗传算法的运算流程 遗传算法的主要运算流程如下: 步骤一:初始化。设置进化代数计数器 t=0;设置最大进化代数 T;随机生成 M 个个体作 为初始群体 P(0)。 步骤二:个体评价。计算群体 P(t)中各个个体的适应度。 步骤三:选择运算。将选择算子作用于群体。 步骤四:交叉运算。将交叉算子作用于群体。 步骤五:变异运算。将变异算子作用于群体。群体 P(t)经过选择、交叉、变异运算之后 得到下一代群体 P(t+1)。 步骤六:终止条件判断。若 t≤T,则:t=t+1,转到步骤二;若 t>T,则以进化过程中所 得到的具有最大适应度的个体作为最优解输出,终止计算。 具体的流程示意图见图 2 所示。 图 2 遗传算法的运算过程示意 2.3 基本遗传算法
2
பைடு நூலகம்
相关文档
最新文档