91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 7KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-12
  • 語言: C/C++
  • 標簽: 遺傳算法??C++??

資源簡介

遺傳算法完整代碼,針對多元函數(shù)求最優(yōu)解,C++

資源截圖

代碼片段和文件信息

#include??
#include?
#include?
#include?
//變量定義
#define?POPSIZE?500?
#define?maximization?1?
#define?minimization?2?
#define?cmax?100?
#define?cmin?0?
#define?length1?10??
#define?length2?10??
#define?chromlength?length1+length2?//染色體長度
int?functionmode=maximization;?
int?popsize;?//種群大小
int?maxgeneration;?//最大世代數(shù)
double?pc;?//交叉率
double?pm;?//變異率
struct?individual?{
char?chrom[chromlength+1];?
double?value;?
double?fitness;?//適應度
};??
int?generation;?//世代數(shù)
int?best_index;??
int?worst_index;??
struct?individual?bestindividual;?//最佳個體
struct?individual?worstindividual;?//最差個體
struct?individual?currentbest;??
struct?individual?population[POPSIZE];??

//函數(shù)聲明
void?generateinitialpopulation();?
void?generatenextpopulation();?
void?evaluatepopulation();??
long?decodechromosome(char?*intint);?
void?calculateobjectvalue();?
void?calculatefitnessvalue();??
void?findbestandworstindividual();?
void?performevolution();?
void?selectoperator();?
void?crossoveroperator();?
void?mutationoperator();?
void?input();??
void?outputtextreport();?

void?generateinitialpopulation(?)?//種群初始化
?{
int?ij;??
for?(i=0;i for(j=0;j population[i].chrom[j]=(rand()%10<5)?‘0‘:‘1‘;
}
population[i].chrom[chromlength]=‘\0‘;?
}??
}??

void?generatenextpopulation()?//生成下一代
{?
selectoperator();?
crossoveroperator();?
mutationoperator();??
}??

void?evaluatepopulation()?//評價個體,求最佳個體
{?
calculateobjectvalue();?
calculatefitnessvalue();??
findbestandworstindividual();?
}??

long?decodechromosome(char?*string?int?pointint?length)?//給染色體解碼
{?
int?i;??
long?decimal=0;?
char*pointer;??
for(i=0pointer=string+point;i {
if(*pointer-‘0‘)??
decimal?+=(long)pow(2i);?
}??
return?(decimal);??
}??

void?calculateobjectvalue()?//計算函數(shù)值
{?
int?i;??
long?temp1temp2;??
double?x1x2;?
for?(i=0;?i temp1=decodechromosome(population[i].chrom0length1);??
temp2=decodechromosome(population[i].chromlength1length2);?
x1=4.096*temp1/1023.0-2.048;?
x2=4.096*temp2/1023.0-2.048;??
population[i].value=100*(x1*x1-x2)*?(x1*x1-x2)+(1-x1)*(1-x1);?
}?
}??

void?calculatefitnessvalue()//計算適應度
{?
int?i;??
double?temp;??
for(i=0;i {??
if(functionmode==maximization){
if((population[i].value+cmin)>0.0)?{
temp=cmin+population[i].value;
}?
else?{
temp=0.0;
}?
}??
else?if?(functionmode==minimization){??
if(population[i].value temp=cmax-population[i].value;}?
else{?temp=0.0;}?
}?
population[i].fitness=temp;?
}?
}?

void?findbestandworstindividual(?)?//求最佳個體和最差個體?
{??
int?i;?
double?sum=0.0;???
bestindividual=population[0];??
worstindividual=population[0];???
for?(i=1;i if?(population[i].fitness>bestindividual.fitness){?
bestindividual=population[i]

評論

共有 條評論