亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sga.cpp

?? 7121遺傳算法程序
?? CPP
字號:
//Simple Genetic Algorithm 
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h>
// The Definition of Constant 
#define POPSIZE 500 // population size 
#define MAXIMIZATION 1 // maximization flag 
#define MINIMIZATION 2 // minimization flag 
// The Definition of User Data 
// (For different problem, there are some difference. ) 
#define Cmax 100 // certain maximal value 
#define Cmin 0 // certain minimum value
#define LENGTH1 10 //the chromosome length of 1st variable
#define LENGTH2 10 //the chromosome length of 2nd variable
#define CHROMLENGTH LENGTH1+LENGTH2 //total length of chromosome
int FunctionMode=MAXIMIZATION; //optimization type
int PopSize =80; //population size
int MaxGeneration=200; // max number of generation 
double Pc=0.6; //probability of crossover
double Pm=0.001; //probability of mutation 

// The Definition d Data Structure 
struct individual // data structure of individual
{
char chrom[ CHROMLENGTH + 1 ]; // a string of code representing individual
double value; // object value of this individual
double fitness; // fitness value of this individual
};
// The Definition of Global Variables
int generation; // number of generation 
int best_index; // index of best individual 
int worst_index; // index of worst individual
struct individual bestindividual; //best individual of current gentration
struct individual worstindividual; //worst individual of current gentration
struct individual currentbest; //best individual by now 
struct individual population[POPSIZE]; //population

//Declaration of Prototype 
    
void GenerateInitialPopulation (void); 
void GenerateNextPopulation (void); 
void EvaluatePopulation (void); 
long DecodeChromosome (char *, int, int);
void CalculateObjectValue(void); 
void CalculateFitnessValue(void); 
void FindBestAndWorstlndividual (void); 
void PerformEvolution (void); 
void SelectionOperator (void); 
void CrossoverOperator (void); 
void MutationOperator (void); 
void OutputTextReport (void); 

// main program . 
void main ( )
{
generation = 0;
GenerateInitialPopulation();
EvaluatePopulation();
while(generation<MaxGeneration)
{
generation++;
GenerateNextPopulation();
EvaluatePopulation();
PerformEvolution();
OutputTextReport();
}
}

void GnerateInitialPopulation (void)
{
int i,j;
randomize( );
for (i = 0; i< PopSize; i ++)
{
for (i = 0; j < CHROMLENGTH; j++)
{
population [ i ] . chrom [ j ]=(random(10)<5)? '0': '1';
}
population [i].chrom [ CHROMLENGTH]='\0';
}
}

void GenerateNextPopulation (void) 
{
SelectionOperator ( ); 
CrossoverOperator ( ); 
MutationOperator ();
}

void EvaluatePopulation (void)
{ CalculateObjectValue ( ); // calculate object value 
CalculateFitnessValue (); // calculate fitness value 
FindBestAndWorstlndividual(); // find the best and worst individual 
}

DecodeChrnmosome (char * string, int point, int length)
{
int i;
long decimal=0L;
char * pointer;
for( i = 0, pointer = string + point; i < length; i + +,pointer++)
{
decimal + = (*pointer- '0' )< < (length-1-i); 
}
return (decimal);
}

//this example is dealing with Rosenbrock function.
//it is defined as:
//f(x1,x2)=100*(x1*x1-x2)*(x1*x1-x2)+(1-x1)*(1-x1)
void CalculateObjectValue()
{
int i;
long temp1,temp2;
double x1,x2;
//Rosenbrock function
for(i=0;i<PopSize;i++)
{
temp1=DecodeChromosome(population[i].chrom,0,LENGTH1);
temp2=DecodeChromosome(population[i].chrom,LENGTH1,LENGTH2);
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<PopSize;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<Cmax)
{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<PopSize;i++)
{
if(population[i].fitness>bestindividual.fitness)
{
bestindividual=population[i];
best_index=i;
}
else if(population[i].fitness<worstindividual.fitness)
{
worstindividual=population[i];
worst_index=i;
}
sum+=population[i].fitness;
}
if(generation==0)
{
currentbest=bestindividual;
}
else
{
if(bestindividual.fitness>currentbest.fitness) currentbest=bestindividual;
}
}


void PerformEvolution()
{
if(bestindividual.fitness>currentbest.fitness) currentbest=population[best_index];
else population[worst_index]=currentbest;
}

void SelectionOperator
{
int i,index;
double p,sum=0.0;
double cfitness[POPSIZE];//cumulative fitness value
struct individual newpopulation[POPSIZE];

//calculate relative fitness
for(i=0;i<PopSize;i++) sum+=population[i].fitness;
for(i=0;i<PopSize;i++) cfitness[i]=population[i].fitness/sum;
for(i=0;i<PopSize;i++) cfitness[i]=cfitness[i-1]+cfitness[i];
for(i=0;i<PopSize;i++) 
{
p=rand()%1000/1000.0;
index=0;
while(p>cfitness[index]) index++;
newpopulation[i]=population[index];
} 
for(i=0;i<PopSize;i++) population[i]=newpopulation[i];
}


void CrossoverOperator()
{
int i,j;
int index[POPSIZE];
int point,temp;
double p;
char ch;

for(i=0;i<PopSize;i++) index[i]=i;
for(i=0;i<PopSize;i++) 
{
point=random(PopSize-i);
temp=index[i];
index[i]=index[point+i];
index[point+i]=temp;
}

for(i=0;i<PopSize-1;i+=2)
{
p=rand()%1000/1000.0;
if(p<Pc)
{
point=random(CHROMLENGTH-1)+1;
for(j=point;j<CHROMLENGTH;j++)
{
ch=population[index[i]].chrom[j];
population[index[i]].chrom[j]=population[index[i+1]].chrom[j];
population[index[i+1]].chrom[j]=ch; 
}
}
}
}


void MutationOperator()
{
int i,j;
double p;
for(i=0;i<PopSize;i++)
{
for(j=0;j<CHROMLENGTH;j++)
{
p=rand()%1000/1000.0;
if(p<Pm) population[i].chrom[j]=(population[i].chrom[j]=='0')?'1':'0';
}
}
}

void OutputTextReport()
{
int i;
double sum;
double average;
sum=0.0;
for(i=0;i<PopSize;i++) sum+=population[i].value;
average=sum/PopSize;

printf("gen=%d,avg=%f,best=%f,",generation,average,currentbest.value);
printf("chromosome=");
for(i=0;i<CHROMOLENGTH;i++) printf("%c",currentbest,chrom[i]);
printf("\n");
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级欧美一级| 久久婷婷成人综合色| 国产精品99精品久久免费| 麻豆国产精品视频| 久久99九九99精品| 处破女av一区二区| 色94色欧美sute亚洲线路一久| 成人精品免费看| 欧美日韩国产综合一区二区三区| 欧美女孩性生活视频| 欧美α欧美αv大片| 国产精品毛片高清在线完整版 | 亚洲天天做日日做天天谢日日欢| 亚洲激情图片一区| 国产精品综合二区| 日韩欧美国产一区在线观看| 亚洲激情校园春色| 91同城在线观看| 欧美国产丝袜视频| 成人av电影在线播放| 国产精品欧美极品| 91免费观看国产| 中文字幕在线观看不卡视频| 菠萝蜜视频在线观看一区| 日本一区二区三级电影在线观看| 久久99精品国产麻豆不卡| 91精品国产乱| 国产成人在线视频播放| 精品99一区二区三区| 亚洲欧美另类在线| 欧美日韩精品三区| 亚洲一区二区在线视频| 欧美色图免费看| 日韩电影一二三区| 国产日韩欧美精品综合| 91视频观看免费| 亚洲国产中文字幕在线视频综合| 欧美日韩一级片在线观看| 三级成人在线视频| 中文字幕精品三区| 欧美日高清视频| 国产精品69久久久久水密桃 | 亚洲电影视频在线| 精品国产乱码久久久久久1区2区| 黄一区二区三区| 亚洲欧洲中文日韩久久av乱码| 欧美日韩国产经典色站一区二区三区| 视频一区二区三区中文字幕| 久久免费国产精品| 51精品秘密在线观看| 99热这里都是精品| 国产在线视频不卡二| 亚洲综合一二三区| 国产精品第四页| 久久伊99综合婷婷久久伊| 色噜噜夜夜夜综合网| 成人国产精品免费| 国产精品自拍一区| 国内精品在线播放| 国模娜娜一区二区三区| 日韩中文字幕1| 亚洲一区二区三区在线| 综合色中文字幕| 亚洲少妇最新在线视频| 国产欧美一区二区精品久导航| 欧美高清视频www夜色资源网| 色综合天天在线| 色一情一乱一乱一91av| 在线观看视频91| 91精品国产综合久久香蕉的特点| 欧美性猛交xxxx乱大交退制版 | 欧美一区二区福利视频| 日韩午夜av电影| 国产精品国产三级国产普通话蜜臀| 精品国产乱码久久久久久老虎| 日韩一区二区麻豆国产| 欧美国产视频在线| 亚洲精品久久久久久国产精华液| 亚洲综合一二三区| 精品一区二区三区视频| 成人av网址在线| 欧美视频一二三区| 久久久国产一区二区三区四区小说 | 欧美成人高清电影在线| 成人欧美一区二区三区小说| 亚洲在线观看免费| 精品一区二区三区在线观看| 91成人免费网站| 国产精品欧美综合在线| 婷婷综合另类小说色区| caoporm超碰国产精品| 久久久影院官网| 奇米色777欧美一区二区| 一本一道久久a久久精品| 久久精品人人做人人综合 | 五月天网站亚洲| 欧美日韩国产免费一区二区| 国产精品电影院| 粉嫩一区二区三区性色av| 久久综合九色欧美综合狠狠| 亚欧色一区w666天堂| 在线视频欧美区| 亚洲成人动漫av| 91精品免费观看| 精品一区二区三区视频在线观看| 欧美一三区三区四区免费在线看 | 日韩欧美成人激情| 国产真实乱对白精彩久久| 欧美裸体一区二区三区| 午夜精品一区在线观看| 国产suv精品一区二区6| 久久蜜桃一区二区| 亚洲一区二区成人在线观看| 高清不卡一二三区| 一区二区欧美在线观看| 日韩一级片网址| www.欧美.com| 蜜桃av一区二区| 国产精品久久久久久亚洲伦| 欧美自拍丝袜亚洲| 寂寞少妇一区二区三区| 中文字幕亚洲综合久久菠萝蜜| 欧美亚洲综合在线| 国产一区高清在线| 国产精品久久久久永久免费观看| 欧美视频在线播放| 日本在线不卡视频一二三区| 91精品视频网| 在线免费观看视频一区| 国产激情一区二区三区四区| 亚洲国产视频在线| 亚洲欧洲成人精品av97| 久久夜色精品一区| 欧美人动与zoxxxx乱| 91黄视频在线| 精品视频一区三区九区| 欧美在线高清视频| 97久久久精品综合88久久| 国产精品自拍av| 蜜臀av在线播放一区二区三区| 欧美一区二区在线视频| 欧美极品aⅴ影院| 欧美日韩国产免费一区二区 | 日本午夜一本久久久综合| 亚洲色图另类专区| 中文字幕亚洲欧美在线不卡| 日本一区二区三区久久久久久久久不 | 99久久久无码国产精品| 成人免费看视频| 91在线精品一区二区| 欧美色图一区二区三区| 一本色道久久加勒比精品 | 国产河南妇女毛片精品久久久 | 亚洲三级在线看| 亚洲综合色自拍一区| 国产欧美日韩不卡| 国产精品免费久久| 一区二区三区 在线观看视频| 亚洲国产精品精华液网站| 麻豆91在线看| av在线不卡免费看| 91精品国产色综合久久久蜜香臀| 欧美白人最猛性xxxxx69交| √…a在线天堂一区| 蜜臀久久99精品久久久久宅男 | 欧美一级理论性理论a| 国产亚洲婷婷免费| 蜜臀久久久久久久| 色综合中文综合网| 欧美一区二区不卡视频| 国产精品成人免费在线| 美女视频黄免费的久久| 色综合久久综合| 国产精品久久二区二区| 国产一区二区三区观看| 91精品国产一区二区三区| 亚洲视频小说图片| 99精品一区二区| 国产免费成人在线视频| 精品一区二区在线视频| 欧美tickle裸体挠脚心vk| 日韩高清国产一区在线| 岛国精品一区二区| 天堂一区二区在线| 欧美日韩五月天| 亚洲免费av观看| 色吊一区二区三区| 亚洲一区二区偷拍精品| 欧美主播一区二区三区美女| 亚洲美女免费视频| 欧美影院精品一区| 亚洲一二三专区| 欧美精品一区二区精品网| 国产精品资源网| 亚洲一区精品在线| 精品国产不卡一区二区三区| 国产一区不卡在线| 亚洲一区二区三区影院| 久久一区二区三区四区| 91啦中文在线观看|