C ++遗传算法 这是使用C ++实现的遗传算法,遗传算法针对不同的问题实现起来细节可能不一样,这里罗列一下当前的实现方式具有的特性: 通过锦标赛算法选择个体 通过从上一代中剔除低适应度个体的方式消除劣质解 个体由一条染色体组成,所以程序不区分个体和染色体两个概念 通过实数编码组成染色体,重新获得De jong函数f2在-2.048到2.048范围内的对应 通过两个染色体相同位置基因求和再平均进行染色体交叉 通过高斯分布的随机数对基因进行变异操作 适应度取1 /(0.01 + f2) 算法的参数可以通过修改main.cpp中run方法的输入参数来改变 另外,程序通过针对对象方式实现和类名称和文件名存在严格的对应关系,命名都采用驼峰命名法,以及虽然不多但是每个方法和成员属性都有中文注释。 环境需求 Cmake推荐使用版本3.10以上的,否则参考CMakeLists.txt中的注释修改版本。
2021-03-24 12:07:48 19KB 系统开源
1
8个测试例子来自论文: 基于学习的遗传算法及其在布局中的应用.pdf 著名的 De Jong function, schaffer function, six-hump camel back function, Shubert function, 算法效果非常好! (自己写的代码)
2019-12-21 19:43:04 181KB 浮点数遗传算法 De Jong function schaffer
1
用于函数优化的五个测试函数,De Jong精选了5个测试函数,这些函数差异表现在连续性、单峰与多峰、二次与非二次、低维与高维、确定函数与随机函数。可以比较完整的测试算法性能。
2019-12-21 19:34:05 14KB De Jong 函数优化 源代码
1