本文实例讲述了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 =pp[0]&&pro =pp[1]&&pro =pp[2]&&pro =pp[3]&&pro =pp[4]&&pro v(p[i]); v.flip(j); p[i]=v.to_ulong(); } } t++; cout< e(a); bitset f(b); //前pos个分量进行相互交换 bitset g; bitset h; for(int i=0;i
希望本文所述对大家的C++程序设计有所帮助。