| 查看: 1876 | 回复: 8 | ||
cq0932金虫 (初入文坛)
|
[求助]
请教关于遗传算法的几个问题
|
|
1.在选择复制的过程中,适应度值大的个体将有更多的子孙,而相反的会被淘汰。在看书上代码《先进PID控制及其Matlab仿真 刘金琨著》的时候发现选择复制后的种群规模变小了,比如初始种群是30个个体,选择以后,就只剩十几个了。在交叉之前是否需要补全?如果要补全有什么比较好的方法? 2.接下来是交叉,交叉的对象应该如何选择?只从选择复制后产生的优势群体中选择吗?问题1中补全的部分是否参加交叉?未发生交叉的个体是直接保留原样到下一代吗? 3.然后是变异,是否只有交叉产生的个体才有可能发生变异?还是所有个体都会变异?另外,适应度大小对变异概率是否有影响? |
» 猜你喜欢
三甲基碘化亚砜的氧化反应
已经有4人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
孩子确诊有中度注意力缺陷
已经有12人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
论文投稿,期刊推荐
已经有4人回复
硕士和导师闹得不愉快
已经有13人回复
» 本主题相关价值贴推荐,对您同样有帮助:
matlab论文分享(包括神经网络,遗传算法,粒子群算法)
已经有442人回复
遗传算法,,,什么意思?
已经有15人回复
请教一个关于遗传算法的简单问题
已经有12人回复
遗传算法收敛过快和局部最优解问题请教!【已搜无重复】
已经有4人回复
关于遗传算法中交叉的程序
已经有5人回复
遗传算法的一段程序请教解释
已经有9人回复
请教关于遗传算法编程的问题(俺是小白)
已经有4人回复
【其他】了解遗传算法
已经有12人回复
【讨论】遗传算法解决象棋问题
已经有8人回复
【求助】遗传算法求解eil51.tsp问题,离最优解还很远。怎么办?
已经有26人回复
【原创】请教遗传算法+车间调度相关的研究方向?谢谢
已经有4人回复
【求助】matlab 遗传算法工具箱绘图命令是什么?
已经有6人回复
Holland 遗传算法之父讲座(附PPT和讲座录音)
已经有19人回复
whzwcm
木虫 (著名写手)
劲升
- 应助: 84 (初中生)
- 金币: 1955.2
- 红花: 2
- 帖子: 1096
- 在线: 68.7小时
- 虫号: 1544778
- 注册: 2011-12-20
- 性别: MM
- 专业: 可再生与替代能源利用中的

2楼2012-12-20 22:53:18
wanghg_70
银虫 (小有名气)
- 应助: 13 (小学生)
- 金币: 2013.8
- 散金: 7
- 帖子: 138
- 在线: 25.5小时
- 虫号: 1942256
- 注册: 2012-08-16
- 性别: GG
- 专业: 系统科学与系统工程

3楼2012-12-21 04:54:00
dreamrequiem
木虫 (小有名气)
- 应助: 17 (小学生)
- 金币: 3948.3
- 红花: 3
- 帖子: 186
- 在线: 1215.4小时
- 虫号: 1302136
- 注册: 2011-05-21
- 专业: 人工智能与知识工程
【答案】应助回帖
★
感谢参与,应助指数 +1
cq0932: 金币+1, ★有帮助, 感谢回复!能更有针对性的回答一下我的疑问吗? 2012-12-24 15:00:50
感谢参与,应助指数 +1
cq0932: 金币+1, ★有帮助, 感谢回复!能更有针对性的回答一下我的疑问吗? 2012-12-24 15:00:50
|
1.选择只是进化的第一步,选择出来的个体往往有3种用途,比如直接复制到下一代(elite selection),或者选择出来的个体进行交叉,或者是变异。 2.选择进行交叉的个体可以有多种办法,经典的有rank selection, roulette wheel selection, tournament selection。可以网上随意找到各自的选择办法。 3.变异有两种策略,一种是对交叉后的个体进行变异,另外一种办法是分别使用交叉和变异产生一定数量的下一代个体,两者之间分别产生。具体由问题而定。 |
4楼2012-12-21 23:54:08
【答案】应助回帖
★
感谢参与,应助指数 +1
cq0932: 金币+1, ★有帮助 2012-12-24 15:01:06
感谢参与,应助指数 +1
cq0932: 金币+1, ★有帮助 2012-12-24 15:01:06
|
第一步中,选择之后种群要保持为30的,具体恢复方法,给你个用matlab写的遗传算法优化PID控制器的简单算法,你看看就明白了吧。 http://good.gd/2364258.htm |
5楼2012-12-22 00:16:36
cq0932
金虫 (初入文坛)
- 应助: 1 (幼儿园)
- 金币: 734.8
- 帖子: 44
- 在线: 20.2小时
- 虫号: 965611
- 注册: 2010-03-09
- 性别: GG
- 专业: 机械测试理论与技术
|
您贴的代码和我从书上看到的遗传算子部分是一样的,选择结束以后,种群的个体数是减少的,他是在交叉的时候把选择出来的个体和初始种群中的个体进行交叉,不知道这样处理是否合理?程序的结果是在交叉之后恢复了种群的个体数目。 %****** Step 2 : 选择算子****** fi_sum=sum(fi); fi_Size=(Oderfi/fi_sum)*Size; fi_S=floor(fi_Size); %按较大的适应度选择个体 kk=1; for i=1:1:Size for j=1:1:fi_S(i) %选择与产生后代个体 TempE(kk,:)=E(Indexfi(i),:); kk=kk+1; %kk用于产生后代用 end end %************ Step 3 交叉算子************ pc=0.60; %交叉概率0.60 n=ceil(20*rand); for i=1:2:(Size-1) temp=rand; if pc>temp %若temp落在[0,0.6]区间,则进行交叉操作 for j=n:1:20 TempE(i,j)=E(i+1,j); TempE(i+1,j)=E(i,j); end end end TempE(Size,:)=BestS; E=TempE; |
6楼2012-12-24 14:58:01
dreamrequiem
木虫 (小有名气)
- 应助: 17 (小学生)
- 金币: 3948.3
- 红花: 3
- 帖子: 186
- 在线: 1215.4小时
- 虫号: 1302136
- 注册: 2011-05-21
- 专业: 人工智能与知识工程
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★
cq0932: 金币+7, ★★★★★最佳答案, 原来一直是我自己没有理解选择的真谛,非常感谢您的回答!! 2012-12-25 22:25:38
cq0932: 金币+7, ★★★★★最佳答案, 原来一直是我自己没有理解选择的真谛,非常感谢您的回答!! 2012-12-25 22:25:38
|
我觉得已经回复得非常有针对性了,看了下lz你的留言,我觉得你是完全没有理解什么是选择。population的size是不会变的,有一些ind被选择出来了,如你所说的按适应度比例选择,即roulette wheel selection,新的pop是通过重复地对这些选择出来的ind进行crossover和mutation来产生的。 无论如何,最后下一代的pop大小都会跟前一代的相同的。程序上来说,一个for循环就搞定了。 |
7楼2012-12-24 17:05:25
8楼2012-12-24 18:37:11

9楼2012-12-31 16:36:40














回复此楼
社会很复杂啊