君子不器分享 http://blog.sciencenet.cn/u/foreverph

博文

演化计算:基于面向对象设计的认知(4)

已有 1506 次阅读 2021-6-21 11:02 |个人分类:算法|系统分类:科研笔记

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

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

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

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

总结一下来说:

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

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

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

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

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



https://blog.sciencenet.cn/blog-260510-1292052.html

上一篇:演化计算:基于面向对象设计的认知(3)
下一篇:演化计算:基于实践的认知(5)
收藏 IP: 117.187.32.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 08:55

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部