24小时热门版块排行榜    

查看: 2489  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

s20090281

银虫 (小有名气)

[求助] 关于遗传算法中交叉的程序

% Crossover two chromosome
    IndexPair = zeros( 1, PopulationSize);
    for j = 1 : PopulationSize
       IndexPair( j ) = j;
    end % End of for - j      
    for j = 1 : PopulationSize
       Point = floor ( (PopulationSize - j - 1)  *  rand( 1 ) );
       Temp = IndexPair( j );
       IndexPair( j ) = IndexPair( j + Point );
       IndexPair( j + Point ) = Temp;
    end % End of for - j      
      这段程序看不太懂,请高手指点。我先说我的想法吧,首先是Indexpair初始化为1行80列的矩阵,然后进行循环 , Indexpair就变为1-80的1行80列的矩阵,再然后就是确定point点,再接下来就不懂了,我运行了下程序发现Temp就变为了一个个不相邻的数,这里是为什么呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mengxc

木虫 (著名写手)

【答案】应助回帖


臭水沟(金币+1): 谢谢应助~~ 2011-06-08 15:58:59
s20090281(金币+4): 都送你分吧,谢谢你回答我的问题 2011-06-08 19:39:15
引用回帖:
Originally posted by s20090281 at 2011-06-08 15:26:50:
可是我还是不太明白这是什么意思,交换以后有什么用呢?它完了之后就是这段程序,这段程序不就是相邻的两个交叉吗?
for j = 1 : 2 : ( PopulationSize - 1 )
        RandP = rand( 1 );
        if RandP ...

这一段貌似和上一段差不多也是两个元素交换位置
对于遗传算法中交叉,我没学过,不懂,反正就是根据一定准则把原来的数组重新排列,具体干嘛用,好事查一下遗传算法的原理吧,呵呵
6楼2011-06-08 15:42:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

mengxc

木虫 (著名写手)

【答案】应助回帖


s20090281(金币+1): 2011-06-08 08:45:59
臭水沟(金币+1): 谢谢应助~ 2011-06-08 15:58:25
for j = 1 : PopulationSize
       IndexPair( j ) = j;
    end % End of for - j
执行完后,IndexPair的值就是1到PopulationSize
2楼2011-06-08 08:37:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

s20090281

银虫 (小有名气)

引用回帖:
Originally posted by mengxc at 2011-06-08 08:37:17:
for j = 1 : PopulationSize
       IndexPair( j ) = j;
    end % End of for - j
执行完后,IndexPair的值就是1到PopulationSize

关键是接下来那段是什么意思呢?
3楼2011-06-08 08:45:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mengxc

木虫 (著名写手)

【答案】应助回帖


臭水沟(金币+1): 谢谢应助~ 2011-06-08 15:58:37
引用回帖:
Originally posted by s20090281 at 2011-06-08 08:45:40:
关键是接下来那段是什么意思呢?

Point = floor ( (PopulationSize - j - 1)  *  rand( 1 ) );
rand(1)是生成0-1之间的一个随机数,floor是向下去整;
  Temp = IndexPair( j );   记录下第j个元素的值
       IndexPair( j ) = IndexPair( j + Point );   利用j + Point 元素修改j元素
       IndexPair( j + Point ) = Temp;      将temp赋给j + Point

上面三行相当于是j + Point 和j元素交换位置
4楼2011-06-08 08:55:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[博后之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 ero8OE6tv9cu 2026-09-02 6/300 2026-09-02 23:59 by rM1TE0WVDIIY
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ero8OE6tv9cu 2026-09-02 3/150 2026-09-02 22:50 by rM1TE0WVDIIY
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +14 Kittylucky 2026-08-27 15/750 2026-09-02 19:35 by liumei0601
[基金申请] 要骂人了,新模版改版就是要淡化问题凝练这种虚的东西,结果有个评委还在说凝练得不够 +9 瞬息宇宙 2026-08-31 17/850 2026-09-02 14:04 by anjeeshine
[基金申请] 学科评审组评审是指会评吗? +5 瞬息宇宙 2026-08-31 5/250 2026-09-02 10:13 by 雨冰共舞
[基金申请] 面上合作单位盖章 +6 ssyjh 2026-08-27 9/450 2026-09-01 20:01 by huagongfeihu
[基金申请] 面上函评意见出来了,像什么等级? 20+4 Tsingking1 2026-08-27 17/850 2026-09-01 19:51 by 超级无敌华子
[论文投稿] 小白求助 投论文要求的highlights应该如何写 5+3 l1963982152 2026-08-29 4/200 2026-09-01 09:04 by 北京莱茵编辑
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +7 gdd2018 2026-08-28 12/600 2026-09-01 08:32 by 尼古拉斯小虫
[基金申请] 国社科又开始会评了,不知道这次命运如何 +7 雨打竹帘 2026-08-30 11/550 2026-08-31 23:16 by hittle2008
[基金申请] 基金未中,这种答复是模板吗? +6 zhaosm1982 2026-08-27 7/350 2026-08-31 21:18 by qdxxmc
[基金申请] 面上意见出来了 +12 黄鸟于飞Chao 2026-08-29 23/1150 2026-08-31 18:57 by 黄鸟于飞Chao
[基金申请] 能否申诉? +7 echo8914667 2026-08-30 8/400 2026-08-31 17:00 by yihongxu
[基金申请] 中青基了要发朋友圈吗? +7 349506619 2026-08-28 7/350 2026-08-31 13:39 by 冼亮淀粉酶
[基金申请] 29号明天会评吗 +4 笨笨唐 2026-08-28 4/200 2026-08-31 09:30 by huixian257
[基金申请] 为什么到现在没收到通知? +5 tannykie 2026-08-29 5/250 2026-08-30 21:05 by purplejack
[基金申请] 有没有仍没收到信息的 +7 德尚中行 2026-08-27 8/400 2026-08-30 20:52 by purplejack
[考博] 找导师 +6 yuanjiabao 2026-08-29 7/350 2026-08-30 14:40 by 生科新手
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 11/550 2026-08-30 07:57 by gouxfjh
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
信息提示
请填处理意见