24小时热门版块排行榜    

查看: 381  |  回复: 2
当前主题已经存档。

twowins

铜虫 (小有名气)

[交流] matlab7中遗传算法简单说明

我觉得matlab7中的gads跟gaot的风格完全不同,gaot中的ga比较灵活,可以同时应用很多种交叉和变异的操作,可是gads中只能用一种操作,而且种类也比以前少了很多。
不过gads的整体性比较好,在其中使用了一些构架数组,数据或者函数归类的很清晰明了。
我自己就需要用遗传算法,而且必须做一些修改,所以我在使用的时候就把
gads的一些函数都改成自己需要的函数了,总体框架是不变的。

options是输入参数,是一个构架数组,在gaoptimset.m中创建,遗传算法中设置的参数都是在这里设置的,详细的说明请看help,耐心看大家应该都可以看得十分明白,因为我是学俄语的,也可以看懂的,大家的英语水平肯定都比我强,所以要有信心。
要注意这个函数validate.m,在主函数ga中出现,在其中定义了options中的数据的类别,如果想加进去自己的东西,别忘了在这里改一下,否则会报错的。

state也是一个构架数组,在gads/gads/private/makeState.m中创建,其中包括在进化过程中的一些数据,比如state.Population是当前的种群,state.Score,是当前目标函数值,等等。这个不需要自己设置,可是如果你需要改遗传算法的话,把自己的需要的一些数据加进去,这个可能会用到。

还有就是交叉变异,还有精华保留都是在stepGA.m中进行的

还要强调一点就是,gads中的ga是基于多个种群操作的,其中的设置种群数的参数options.PopulationSize可以设为矩阵的,比如设置三个子种群,每个种群的规模为10,则options.PopulationSize=[10;10;10]

先写到这里吧,gads还有一些新功能呢,以后再说,希望这些对大家有帮助

[ Last edited by 幻影无痕 on 2006-10-31 at 07:43 ]
回复此楼

» 猜你喜欢

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

dyq2008

0.5

虽然我现在还不懂这些,不过还是要顶一下
这个论坛这方面的东西太少了
2楼2006-04-18 21:01:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

richbird

捐助贵宾 (著名写手)

小木虫二手科学家

1

非常少,现在想学。
一步步实现自己的理想,永远不要停下脚步。
3楼2006-06-01 14:56:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 twowins 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见