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