潘峰
演化计算:基于面向对象设计的认知(4)
2021-6-21 11:02
阅读:1567

前面(2)、(3)节给出了一个采用二进制编码的计算一元函数极值的遗传算法实现,通过适当的修改扩展为解决更多复杂的问题。

A)若是多元函数求极值,只需把一维数组表示的编码改为二维数组表示多个变量的编码;

B)若各个变量的范围不同,也需要把xmax,xmin设为一维数组等;

C)若要改为N进制,方法类似。

总结一下来说:

演化计算本质上是种群的演化,不是一个个体的演化。

但是完成一个个体的表示是基本出发点,一个个体对应问题的可能解,包含若干的属性和方法,把它封装于一体是比较好的设计思路,所以首先设计一个个体的类型;

有了个体设计的基础,我们就容易构建种群了,比如使用一个一维数组组织种群,把数组对象作为种群类的数据成员,然后把选择、交叉、变异等算子作为方法,由此构建种群类。

个体类完成、种群类完成,使用一个主类测试即可。

对于其他演化算法,基于上述思路,也是容易解决。

转载本文请联系原作者获取授权,同时请注明本文来自潘峰科学网博客。

链接地址:https://wap.sciencenet.cn/blog-260510-1292052.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?