24小时热门版块排行榜    

查看: 2065  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 工科0856求调剂 +3 沐析汀汀 2026-03-21 3/150 2026-03-21 18:30 by 学员8dgXkO
[考研] 336求调剂 +5 rmc8866 2026-03-21 5/250 2026-03-21 17:24 by 学员8dgXkO
[考研] 277材料科学与工程080500求调剂 +6 自由煎饼果子 2026-03-16 6/300 2026-03-21 17:21 by 学员8dgXkO
[考研] 一志愿重庆大学085700资源与环境总分308求调剂 +7 墨墨漠 2026-03-20 7/350 2026-03-21 16:36 by barlinike
[考研] 268求调剂 +9 简单点0 2026-03-17 9/450 2026-03-21 15:37 by lature00
[考研] 085601调剂 358分 +3 zzzzggh 2026-03-20 4/200 2026-03-21 10:21 by luoyongfeng
[考研] 299求调剂 +6 △小透明* 2026-03-17 6/300 2026-03-21 02:42 by JourneyLucky
[考研] 化学求调剂 +4 临泽境llllll 2026-03-17 5/250 2026-03-21 02:23 by JourneyLucky
[考研] 22408 344分 求调剂 一志愿 华电计算机技术 +4 solanXXX 2026-03-20 4/200 2026-03-20 23:49 by alg094825
[考研] 一志愿中海洋材料工程专硕330分求调剂 +8 小材化本科 2026-03-18 8/400 2026-03-20 23:16 by JourneyLucky
[考研] 一志愿武汉理工材料工程专硕调剂 +9 Doleres 2026-03-19 9/450 2026-03-20 22:36 by JourneyLucky
[考研] 295复试调剂 +8 简木ChuFront 2026-03-19 8/400 2026-03-20 20:44 by zhukairuo
[考研] 295材料求调剂,一志愿武汉理工085601专硕 +5 Charlieyq 2026-03-19 5/250 2026-03-20 20:35 by JourneyLucky
[考研] 08工学调剂 +5 用户573181 2026-03-20 5/250 2026-03-20 15:47 by xia_2003
[考博] 招收博士1-2人 +3 QGZDSYS 2026-03-18 3/150 2026-03-20 11:58 by 呱呱呱呱叫
[考研] 312求调剂 +8 陌宸希 2026-03-16 9/450 2026-03-18 12:39 by Linda Hu
[考研] 0703化学调剂 +3 妮妮ninicgb 2026-03-17 3/150 2026-03-18 10:29 by macy2011
[考研] 0703化学336分求调剂 +6 zbzihdhd 2026-03-15 7/350 2026-03-18 09:53 by zhukairuo
[考研] 277调剂 +5 自由煎饼果子 2026-03-16 6/300 2026-03-17 19:26 by 李leezz
[考研] 308求调剂 +4 是Lupa啊 2026-03-16 4/200 2026-03-17 17:12 by ruiyingmiao
信息提示
请填处理意见