.
int strat,end;//区间 int Num;//编码大小 float cross=0.8;//交叉概率 float aberrance = 0.04;//变异概率 int key=1;
cout<<\请输入求解区间:\cin>>strat>>end;
Num=hwj_coding(strat,end); cout<<\
// cout<<\ hwj_initial_population(Num);
// cout<<\初始种群-----------------\/* for(int i=0;i for(int j=0;j cout< } */ while(key!=GENE_NUMBER){ hwj_fitness(Num); } cout< // cout<<\适应度-----------------\ . // for(int i=0;i hwj_choose(); cout< // cout<<\被选择的个体-----------------\/* for(int i=0;i for(int j=0;j cout< } */ hwj_cross(Num,cross); } cout< /* cout<<\交叉后的种群-----------------\ for(int i=0;i for(int j=0;j cout< } */ hwj_aberrance(Num,aberrance); } cout< . /* cout<<\变异后的种群-----------------\ for(int i=0;i for(int j=0;j cout< int hwj_coding(int start,int end){//种群编码 float precision; int temp=2; int sum; int N=1; cout<<\最大值是对应的x值是:\cout< cout<<\最大值为:\return 0; } */ key++; } hwj_max(Num); } cout< . cout<<\请输入精度范围:\cin>>precision; if(precision==0){ cout<<\对不起精度不能为零:\ return 0; } else{ sum=(end-start)/precision; cout<<\while(temp temp*=2; N++; } } } return N; void hwj_initial_population(int num){//生成初始种群 srand(time(NULL)); for(int i=0;i for(int j=0;j Unit[i][j]=rand()%2; . } } void hwj_fitness(int num){//计算适应度 float sum; int temp; for(int i=0;i temp=1; sum=0.0; for(int j=num-1;j>=0;j--){ } sum+=Unit[i][j]*temp; temp*=2.0; Fitness[i]=sum*3/(temp-1.0)-1.0; // cout< // cout<<\ Fitness[i]=Fitness[i]*sin(10*3.1415926*Fitness[i])+2.0; // cout< int hwj_binary_search(int l,int r,float temp){ for(int i=0;i if(temp<=accumula_probability[i]&&temp>accumula_probability[i-1]){ }
遗传算法求函数极值



