作业帮 > 综合 > 作业

遗传算法 我正在使用遗传算法对具体的工程问题进行求解,编码方式需要使用“整数编码”,使用的是英国谢菲尔大学开发的遗传算法

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 19:05:36
遗传算法
我正在使用遗传算法对具体的工程问题进行求解,编码方式需要使用“整数编码”,使用的是英国谢菲尔大学开发的遗传算法工具箱,在Matlab下编程.但由于我的待编码变量的个数在每次遗传算法循环迭代过程中是变化,因此使用——basevec=crtbase(lind,base) 函数来确立每个变量的基数(取值范围)时就存在问题了,lind每次是变化的,导致建立初始种群的时候——Chrom=crtbp(Nind,basevec)也同样存在问题,现在没法继续编程了.
话说我不了解这个工具箱呢~
1,如果工具箱中的函数具有明显的局限性,一般采取自行编写软件的方式实现.
2,每次交叉算子的时候算子长度都会变?既然是工程问题,一般长度都会有界吧,比如50,每个单元也是有界吧(比如大于0),如果这个算子有长度20,后面的30个用-1填充不就行了?
3,我还是喜欢蚁群算法,算子是变长度的这个比较合适,但不保证所有的空间都会有正常吸引子导致收敛,难保你这个问题里的空间就是个奇行种.
4,效率什么的,就让他见鬼去吧.
再问: 非常感谢”袁逸凡is道长“的建议和帮助,我的问题主要是:
不但需要求解设计变量的值,而且需要求解的变量的数量是一个未知数,只有求解之后才能确定,这样的问题怎么办呢?
因为没有用过蚁群算法,只在用遗传算法,所以对我的限制就很多了。还请赐教!
再答: 就算是未知数,大概估一下也行啊,话说都没有具体问题呢……蚁群算法大约是这样的:预设100个节点(也可以用malloc增加),信息素量=0,蚂蚁随机走一遍,直到满足结束条件,得到一个算子,评价算子,评价越高,留下的信息素越多。下一次,及以后,蚂蚁也是随机走,但是更倾向于选择以前走过的,评价较高的节点数值。和大众点评看饭馆子一个道理。下面是Matlab中利用蚁群算法解决路径规划的一个例子,路径节点数量是可变的,虽然是我写的,但是我不会再解释了。自己跑一下就知道了,跑完还不知道就单步调试吧,单步调试看不懂就辞职吧。多给点财富值,最近被百度坑死了,200财富值灰飞烟灭。