ch7优化算法-GA要点.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
遗传算法的参数设定: 种群大小:M=50; 最大代数:G=1000; 交叉率:pc=1; 变异率:pm=0.1; (1)编码策略 采用十进制编码,用随机数列ω1 ω2…ω102作为染色体,其中0 ωi 1(i=2,3,…,101),ω1=0,ω102 =1;每一个随机序列都和种群中的一个个体相对应。 例如一个9城市问题的一个染色体为: [0.23,0.82,0.45,0.74,0.87,0.11,0.56,0.69,0.78] 6-1-3-7-8-4-9-2-5 (2)初始种群 此处用经典的近似算法——改良圈算法求得一个较好的初始种群。即对于初始圈: C=π1… πu-1πuπu+1…πv-1πvπv+1…π102, 2≤u<v≤101, 2≤ πu < πv ≤101 , 交换u与v之间的顺序,此时的新路径为: C‘=π1… πu-1π vπv-1…πu+1πu πv+1…π102, 记 若Δf0,则以新的路径修改旧的路径,直到不能修改为止 (3)目标函数 目标函数为侦查所有目标的路径长度,适应度函数就取目标函数,即 (4)交叉操作 交叉操作采取单点交叉,设计如下,对于选定的两个父代个体f1= ω1 ω2…ω102, f2= ω’1 ω’2…ω’102,我们随机地取第t个基因处为交叉点,则经过交叉运算后得到的子代编码为S1和S2,S1的基因由f1的前t个基因和f2的后102-t个基因构成, S2的基因由f2的前t个基因和f1的后102-t个基因构成。 (5)变异操作 变异操作按给定的变异率pm对选定变异的个体随机的选取三个整数,满足1uvw102,把u,v之间(包括u和v)的基因段插到w之后。 (6)选择 采用确定性的选择策略,及选择适应度函数值最小的M个个体进化到下一代。 MATLAB中的随机函数 1、rand rand(n):生成0到1之间的n阶随机数方阵 rand(m,n):生成0到1之间的m×n的随机数矩阵 2、randint randint(m,n,[1 N]):生成m×n的在1到N之间的随机整数矩阵,其效果与randint(m,n,N+1)相同。 randint(3,4,[1 10]) ans = ?????5?????7?????4????10 ?????5?????1?????2?????7 ?????8?????7?????8?????6 randint(3,4,11) ans = ????10?????9?????6?????9 ?????5????10?????8?????9 ????10?????0?????2?????6 3、randperm——产生不重复的随机排列 randperm(n):产生一个1到n的随机顺序。 randperm(10) ans = ?????6?????4?????8?????9?????3?????5?????7????10?????2?????1 randperm(n,k):从1-n的数字序列里面随机返回k个数 其中,这k个数之间彼此也是不相同的。 结合原数据,可写成类似下面的形式: new?=?old(?randperm(??size(old,1)??)?,?:?); MATLAB中取整函数(fix, floor, ceil, round)的使用 (1) fix(x) : 截尾取整 fix( [3.12 -3.12]) ans = ???? 3??? -3 (2)floor(x):不超过x 的最大整数.(高斯取整) floor( [3.12 -3.12]) ans = ???? 3??? -4 (3)ceil(x) : 大于x 的最小整数 ceil( [3.12 -3.12]) ans = ???? 4??? -3 (4)四舍五入取整 round([3.12 -3.12]) ans = ???? 3??? -3 (1)B=sort(A)?对一维或二维数组进行升序排序,并返回排序后的数组,当A为二维时,对数组每一列进行排序。 eg: A=[1,5,3],则sort(A)=[1,3,5] ???A=[1,5,3;2,4,1],则sort(A)=[1,4,1;2,5,3] (2)B=sort(A,dim),对数组按指定方向进行升序排序, dim =1,表示对每一列进行排序,dim=2表示对每一行进行排序。 (3)B=sort(A,dim,mode),mode为指定排序模式,mode为ascend时,进行升序排序,为descend 时,进行降序排序. (4)[B,I]=sort(A,.....),I为返回的排序后元素在原数组中的行位置或列位置. path = Columns 1

文档评论(0)

cc880559 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档