一个封装遗传算法基本操作的类
来源:互联网 发布:淘宝如何进货 编辑:程序博客网 时间:2024/06/11 02:06
最近一直在做项目的最后一部分,关于优化的问题,我用遗传算法进行了优化计算,现在终于算是搞定了。下面首先简单的介绍一下遗传算法,然后给出我对遗传算法基本操作封装的一个类,最后给出如何使用这个类的一个工程例子。
遗传算法是一种现代优化算法,是根据生物进化思想而得出的一种全局优化算法。生物的进化是一个奇妙的优化过程,它通过基因遗传,基因杂交,基因变异等规律产生适应环境变化的优良物种。它是一种模拟生物进化过程的一种全局寻优的方法。由于它具有很多的优点,如:随机性较大,不需要精确的规则;容易形成通用的算法;收敛速度快等等,因此在现代优化计算中,使用遗传算法的频率是很高的。
使用遗传算法求解一个具体的问题时,一般要经过以下几个步骤:编码(常用的有0-1编码)、种群初始化、选择操作、交叉操作、变异操作等。其中前两个操作会随着具体的问题不同而有所不同,而后面的三个操作基本上是相同的。而后面的三个操作是遗传算法的核心操作,主要是为了产生新一代种群。下面就针对遗传算法的基本操作作了一个简单的封装,具体的代码如下:
.h头文件:
.cpp文件:
这个类封装了遗传算法的基本操作,使用这个类的对象可以进行种群初始化(给出了染色体长度),选择操作,交叉操作,变异操作以及查找种群中最佳和最差个体等。由于,计算个体的适应度值会随着具体问题的不同而有所不同,在本类中没有给出计算适应度值的成员函数。下面是一个运用此操作类进行遗传算法计算的工程例子,运行效果如下图所示:(这个工程在我的资源中可以下载)
以下是这个工程的具体代码:
主对话框代码:
重设遗传算法参数的对话框:
- 一个封装遗传算法基本操作的类
- 遗传算法的基本操作
- 遗传算法的基本代码
- 遗传算法的一个例子
- 遗传算法一个的例子
- 对基本遗传算法的学习
- 遗传算法的一个例子(C/C++)
- 一个很好的遗传算法工具箱
- 一个理解遗传算法的例子
- 一个很好理解遗传算法的例子
- 封装基本JDBC操作的类
- JDBC数据库连接和事务的管理 一个JDBC基本操作封装类的编写
- 《遗传算法的数学基础》阅读笔记 (1)_遗传算法的基本性质。
- 【分享】基本遗传算法源程序
- 一个针对SQLServer操作的封装类
- 自定义一个封装操作目录的类
- 封装一个自己的php操作类
- 操作 sqlite封装的一个类库
- Windows Mobile中使用html控件[转]
- 两年JAVA编程经验汇总
- html iframe示例
- 软件项目管理
- 接手数据库前必做的9件事
- 一个封装遗传算法基本操作的类
- 解决PowerDesigner中Name与Code同步的问题。
- .net人员应该关注的8大经典网站(转)
- -Xlint:unchecked
- 验证中文正则表达式
- JSF框架中使用的设计模式介绍
- 诡谲和难以捉摸的C++语言风格流变史
- Rad & none_RAD
- [java] a simple Applet program