24小时热门版块排行榜    

查看: 2057  |  回复: 8

cq0932

金虫 (初入文坛)

[求助] 请教关于遗传算法的几个问题

1.在选择复制的过程中,适应度值大的个体将有更多的子孙,而相反的会被淘汰。在看书上代码《先进PID控制及其Matlab仿真 刘金琨著》的时候发现选择复制后的种群规模变小了,比如初始种群是30个个体,选择以后,就只剩十几个了。在交叉之前是否需要补全?如果要补全有什么比较好的方法?

2.接下来是交叉,交叉的对象应该如何选择?只从选择复制后产生的优势群体中选择吗?问题1中补全的部分是否参加交叉?未发生交叉的个体是直接保留原样到下一代吗?

3.然后是变异,是否只有交叉产生的个体才有可能发生变异?还是所有个体都会变异?另外,适应度大小对变异概率是否有影响?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

whzwcm

木虫 (著名写手)

劲升

【答案】应助回帖

感谢参与,应助指数 +1
来学习一下!社会很复杂啊
Believe myself!有志者事意成,加油!
2楼2012-12-20 22:53:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wanghg_70

银虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
cq0932: 金币+1, 有帮助, 感谢深夜里还在为虫友排忧解难~~ 2012-12-21 20:00:26
以前研究过GA,在交叉、变异之后,种群规模会增大一倍,之后在扩大的群体中选择复制,形成新的群体,恢复群体规模的大小。十多年没有研究了,尽供参考

[ 发自手机版 http://muchong.com/3g ]
坚持坚持再坚持
3楼2012-12-21 04:54:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dreamrequiem

木虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

DaleSong

银虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
cq0932: 金币+1, 有帮助 2012-12-24 15:01:06
第一步中,选择之后种群要保持为30的,具体恢复方法,给你个用matlab写的遗传算法优化PID控制器的简单算法,你看看就明白了吧。
http://good.gd/2364258.htm
5楼2012-12-22 00:16:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cq0932

金虫 (初入文坛)

引用回帖:
5楼: Originally posted by DaleSong at 2012-12-22 00:16:36
第一步中,选择之后种群要保持为30的,具体恢复方法,给你个用matlab写的遗传算法优化PID控制器的简单算法,你看看就明白了吧。
http://good.gd/2364258.htm

您贴的代码和我从书上看到的遗传算子部分是一样的,选择结束以后,种群的个体数是减少的,他是在交叉的时候把选择出来的个体和初始种群中的个体进行交叉,不知道这样处理是否合理?程序的结果是在交叉之后恢复了种群的个体数目。

%****** 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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dreamrequiem

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
cq0932: 金币+7, ★★★★★最佳答案, 原来一直是我自己没有理解选择的真谛,非常感谢您的回答!! 2012-12-25 22:25:38
引用回帖:
4楼: Originally posted by dreamrequiem at 2012-12-21 23:54:08
1.选择只是进化的第一步,选择出来的个体往往有3种用途,比如直接复制到下一代(elite selection),或者选择出来的个体进行交叉,或者是变异。

2.选择进行交叉的个体可以有多种办法,经典的有rank selection, r ...

我觉得已经回复得非常有针对性了,看了下lz你的留言,我觉得你是完全没有理解什么是选择。population的size是不会变的,有一些ind被选择出来了,如你所说的按适应度比例选择,即roulette wheel selection,新的pop是通过重复地对这些选择出来的ind进行crossover和mutation来产生的。

无论如何,最后下一代的pop大小都会跟前一代的相同的。程序上来说,一个for循环就搞定了。
7楼2012-12-24 17:05:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

DaleSong

银虫 (小有名气)

【答案】应助回帖

引用回帖:
6楼: Originally posted by cq0932 at 2012-12-24 14:58:01
您贴的代码和我从书上看到的遗传算子部分是一样的,选择结束以后,种群的个体数是减少的,他是在交叉的时候把选择出来的个体和初始种群中的个体进行交叉,不知道这样处理是否合理?程序的结果是在交叉之后恢复了种 ...

合理性有待商榷吧。。。
8楼2012-12-24 18:37:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

marlywoos

新虫 (小有名气)

1,不用补全,适应度差的就是要被淘汰掉,适应度高的个体的基因才应该保留,或者以大概率保留,这样才能保证收敛。至于补全那是交叉的过程产生的,交叉之后自然就又30个了。
2,一般的交叉有一个交叉概率,从那10几个选出来的解中选两个交叉,得到新解,直到到达种群规模30。
3,变异怎么操作很灵活,你可以随意让它怎么变,但效果就不一定了,具体问题具体分析,变异是保持多样性的策略,防止陷入局部最优。
生活因为充实而快乐,也因为充实而有意义
9楼2012-12-31 16:36:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cq0932 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 【考研调剂】化学专业 281分,一志愿四川大学,诚心求调剂 +4 吃吃吃才有意义 2026-03-19 4/200 2026-03-19 13:48 by houyaoxu
[考研] 材料080500调剂求收留 +4 一颗meteor 2026-03-13 4/200 2026-03-19 10:32 by 30660438
[考研] 295求调剂 +3 一志愿京区211 2026-03-18 5/250 2026-03-18 17:03 by zhaoqian0518
[考研] 0854可跨调剂,一作一项核心论文五项专利,省、国级证书40+数一英一287 +8 小李0854 2026-03-16 8/400 2026-03-18 14:35 by 搏击518
[考研] 材料专硕274一志愿陕西师范大学求调剂 +6 薛云鹏 2026-03-13 6/300 2026-03-18 14:14 by 脱颖而出
[考研] 304求调剂 +12 小熊joy 2026-03-14 13/650 2026-03-18 12:34 by Linda Hu
[基金申请] 被我言中:新模板不强调格式了,假专家开始管格式了 +4 beefly 2026-03-14 4/200 2026-03-17 22:04 by 黄鸟于飞Chao
[考研] 材料与化工求调剂 +6 为学666 2026-03-16 6/300 2026-03-17 20:15 by peike
[考研] 268求调剂 +8 一定有学上- 2026-03-14 9/450 2026-03-17 17:47 by laoshidan
[考博] 26申博 +4 八6八68 2026-03-16 4/200 2026-03-17 13:00 by 轻松不少随
[考研] 275求调剂 +4 太阳花天天开心 2026-03-16 4/200 2026-03-17 10:53 by 功夫疯狂
[考研] 机械专硕325,寻找调剂院校 +3 y9999 2026-03-15 5/250 2026-03-16 19:58 by y9999
[考研] 333求调剂 +3 文思客 2026-03-16 7/350 2026-03-16 18:21 by 文思客
[考研] 085600调剂 +5 漾漾123sun 2026-03-12 6/300 2026-03-16 15:58 by 漾漾123sun
[考研] 求老师收留调剂 +4 jiang姜66 2026-03-14 5/250 2026-03-15 20:11 by Winj1e
[考研] 080500,材料学硕302分求调剂学校 +4 初识可乐 2026-03-14 5/250 2026-03-14 21:08 by peike
[考研] [0860]321分求调剂,ab区皆可 +4 宝贵热 2026-03-13 4/200 2026-03-13 22:01 by 星空星月
[考研] 307求调剂 +5 超级伊昂大王 2026-03-12 5/250 2026-03-13 15:56 by 棒棒球手
[考研] 321求调剂(食品/专硕) +3 mxcz321 2026-03-12 6/300 2026-03-13 08:45 by xc321
[考研] 081200-11408-276学硕求调剂 +3 崔wj 2026-03-12 4/200 2026-03-12 19:33 by 求调剂zz
信息提示
请填处理意见