第21讲 遗传算法.pptxVIP

  • 5
  • 0
  • 约2.31千字
  • 约 31页
  • 2020-03-22 发布于山东
  • 举报
数学建模与数学实验 遗传算法后勤工程学院数学教研室实验目的学习遗传算法的基本原理与方法。实验内容1、遗传算法基本理论2、遗传算法工具箱3、遗传算法应用4、案例应用 遗传算法(Genetic Algorithm 简称GA)起源于对生物系统所进行的计算机模拟研究,是由一种基于生物遗传和进化机制的适合于复杂系统优化的自适应概率优化算法。特点: 不依赖于梯度信息,不仅不受目标函数连续可微的约束,还可以通过编码来实现任意设定其定义域。 遗传算法搜索最优解的方法是模仿生物的进化过程,模拟了自然选择和遗传中发生的复制、交叉和变异等现象。 它从代表问题可能潜在解集的一个种群(Population)开始,对种群反复进行选择(Selection)、交叉(Crossover)以及变异(Mutation)操作,估计各个个体的适应值(Fitness),根据“适者生存、优胜劣汰”的进化规则,使得群体越来越向最优解的方向进化。一、遗传算法基本理论一、遗传算法基本理论一、遗传算法基本理论染色体编码(chromosome coding)与解码(decode)编码方式: 1)二进制编码(binary encoding) 2)实数编码(real-number encoding) 3)整数或字母排列编码 4)一般数据结构编码。 染色体编码(chromosome coding)与解码(decode) 二进制编码:是最简单也最常用的编码方式,它采用一个二进制字符串来表征解。染色体编码(chromosome coding)与解码(decode) 普通的二进制编码方式可能具有较大的汉明(Hamming)距离,也称作汉明悬崖。例如:当原始值x为15和16时,它的5位二进制表示为01111和10000,此时改变了二进制编码的所有位。 采用格雷编码(Gray Encoding)可以避免这一缺陷。格雷码的特点是任意两个连续的两个整数的编码值之间只有一个位是不同的,其他位都完全相同。格雷编码 格雷编码是一种基于二进制编码的循环码,它需要对普通的二进制编码从最右一位起,依次将每一位与其左边一位作异或运算,作为对应格雷编码在该位的值,最左边一位保持不变。格雷编码下图为9的5位二进制编码到格雷码转换的示意图:染色体编码(chromosome coding)与解码(decode) 下表为0-31的普通二进制编码及其对应的各类编码情况:个体适应度函数选择算子交叉算子交叉算子 例如: 对两条全1和全零的12位染色体,假如产生的交叉点位置为4,则执行的交叉操作如下图所示: 变异算子二、遗传算法工具箱二、遗传算法工具箱三、遗传算法应用一元函数的优化问题最大值运行结果:源代码请见本目录:exp12_1_1.m三、遗传算法应用一元函数的优化问题最小值运行结果:源代码请见本目录:exp12_1_1.m三、遗传算法应用多元函数的优化问题三、遗传算法应用最大值运行结果:exp12_1_2.m源代码请见本目:exp12_1_2.mexp12_1_2.m三、遗传算法应用最小值运行结果:源代码请见本目:exp12_1_2.m四、案例应用建模案例:交巡警服务平台的设置与调度 对于重大突发事件,需要调度全区20个交巡警服务平台的警力资源,对进出该区的13条交通要道实现快速全封锁。实际中一个平台的警力最多封锁一个路口,请给出该区交巡警服务平台警力合理的调度方案。四、案例应用建模案例:交巡警服务平台的设置与调度四、案例应用建模案例:交巡警服务平台的设置与调度四、案例应用建模案例:交巡警服务平台的设置与调度 使用一个数字(例如1,2,……,20)代表一个城市,通过对这20个数字排序构造路径,选择合适的遗传算子产生路径。有序交叉(Order Crossover)算子( Davis(1985)提出)然后,双亲中划分点中间的部分复制到后代中:c1(×××|7154|××)c2(×××|1856|××)首先,随机产生交叉点:p1(238|7154|69)p2(947|1856|32)最后,交叉划分点之间的部分c1(329|7154|86)c2(923|1856|74)四、案例应用建模案例:交巡警服务平台的设置与调度四、案例应用建模案例:交巡警服务平台的设置与调度封锁调度方案封锁平台封锁路口封锁时间封锁平台封锁路口封锁时间A2383.9822A9161.5325A4620.35A10227.7079A5482.4758A11243.8053A7298.0155A12120A8303.0608A13230.5A14213.265A16146.7417A15284.7518四、案例应用建模案例:交巡警服务平台的设置与调度源代码说明如下:主程序为:fengsuo.m;新编写初始种群的生成算子(crt_zp);将交叉算子(recombin)

文档评论(0)

1亿VIP精品文档

相关文档