本文实例讲述了C++实现简单遗传算法。分享给大家供大家参考。具体实现方法如下:
//遗传算法 GA
#include
#include
#include
using namespace std;
const int L=5; //定义编码的长度
int f(int x) //定义测设函数f(x)
{
int result;
result=x*x*x-60*x*x+900*x+100;
return result;
}
int main(int argc,char *argv[])
{
int a(0),b(32); //定义x的定义域范围
const int pop_size=8; //定义种群大小
// int L; //指定编码的长度
const int NG=20; //指定种群最大的繁殖的代数
int t=0; //当前繁殖的代数
int p[pop_size]; //定义种群
int q[pop_size]; //定义繁殖种群 即种群的下一代
srand(6553); //定义随机数生成的种子
double sum; //适值总和
double avl_sum; //适度平均值
double p_probability[pop_size]; //适值概率
double pp[pop_size];
double pro; //定义随机生成的概率
float pc=0.90; //定义交叉的概率
float pm=0.05; //定义变异的概率
cout<
for(int i=0;i
{
p[i]=ra

本文提供了一段C++代码,详细介绍了如何实现简单的遗传算法。通过定义编码长度、种群大小、最大繁殖代数等参数,利用随机数生成、交叉、变异等操作,逐步演化并寻找最优解。示例中还包含了一个用于测试的测设函数f(x),并通过适值概率和选择双亲等步骤完成种群更新。
最低0.47元/天 解锁文章
201

被折叠的 条评论
为什么被折叠?



