||
前面(2)、(3)节给出了一个采用二进制编码的计算一元函数极值的遗传算法实现,通过适当的修改扩展为解决更多复杂的问题。
A)若是多元函数求极值,只需把一维数组表示的编码改为二维数组表示多个变量的编码;
B)若各个变量的范围不同,也需要把xmax,xmin设为一维数组等;
C)若要改为N进制,方法类似。
总结一下来说:
演化计算本质上是种群的演化,不是一个个体的演化。
但是完成一个个体的表示是基本出发点,一个个体对应问题的可能解,包含若干的属性和方法,把它封装于一体是比较好的设计思路,所以首先设计一个个体的类型;
有了个体设计的基础,我们就容易构建种群了,比如使用一个一维数组组织种群,把数组对象作为种群类的数据成员,然后把选择、交叉、变异等算子作为方法,由此构建种群类。
个体类完成、种群类完成,使用一个主类测试即可。
对于其他演化算法,基于上述思路,也是容易解决。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-22 09:12
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社