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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? bsga.cpp

?? 一個(gè)簡(jiǎn)單遺傳算法的程序
?? CPP
字號(hào):
/*******************************************
*             畢設(shè)遺傳算法程序             *
*          programmed by 朱健華            *
*******************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
/*******************************************
*    the defination of constant            *
*******************************************/
#define POPSIZE 200//種群數(shù)量
#define pi 3.14
/*******************************************
*                用戶(hù)數(shù)據(jù)定義              *
*******************************************/
#define CHROMLENGTH 120
int PopSize =200;//種群規(guī)模
int MaxGeneration =50000;//終止進(jìn)化代數(shù)
double Pc =0.60;//交叉概率
double Pm =0.03;//變異概率
/*******************************************
*                數(shù)據(jù)類(lèi)型定義              *
*******************************************/
struct individual //個(gè)體數(shù)據(jù)定義
{
char chrom[CHROMLENGTH+1];//個(gè)體字符串編碼
double f1,f2,a1,a2,k1,k2;
double value;//個(gè)體表現(xiàn)型值
double fitness;//個(gè)體適應(yīng)度值
};
/*******************************************
*                 定義全局變量             *
*******************************************/
int generation;//進(jìn)化代數(shù)
int best_index;//最佳個(gè)體索引
int worst_index;//最差個(gè)體索引
struct individual bestindividual;//當(dāng)前代最佳個(gè)體
struct individual worstindividual;//當(dāng)前代最差個(gè)體
struct individual currentbest;//迄今為止的最好個(gè)體
struct individual population[POPSIZE];//種群
FILE *galog;
/*******************************************
*            函數(shù)原型聲明                  *
*******************************************/
void GenerateInitialPopulation(void);//產(chǎn)生初始種群
void initreport(void);
void GenerateNextPopulation(void);//產(chǎn)生下一代群體
void EvaluatePopulation(void);//評(píng)價(jià)函數(shù)
double DecodeChromosome1(char *,int,int);//電阻值對(duì)應(yīng)染色體解碼
double DecodeChromosome2(char *,int,int);//電容值對(duì)應(yīng)染色體解碼
void CaculateObjectValue(void);//計(jì)算個(gè)體表現(xiàn)型值
void CaculateFitnessValue(void);//計(jì)算適應(yīng)度
void FindBestAndWorstIndividual(void);//尋找最佳和最差個(gè)體
void PerformEvolution(void);//進(jìn)行評(píng)價(jià)操作
void SelectionOperator(void);//選擇操作
void CrossoverOperator(void);//交叉操作
void MutationOperator(void);//變異操作
void OutputTextReport(void);
void CaculateDeviceValue(char *);
void finalreport(void);
/********************************************
*            主程序                         *
********************************************/
void main(void)
{
srand( (unsigned)time( NULL ) ); 
if ((galog = fopen("galog.txt","w"))==NULL){exit(1);}
generation=0;
GenerateInitialPopulation();
EvaluatePopulation();
while(generation<MaxGeneration)
  {
  generation++;
  GenerateNextPopulation();
  EvaluatePopulation();
  PerformEvolution();
  OutputTextReport();
	}
finalreport();
}    
/********************************************
*            產(chǎn)生初始群體                   *
********************************************/
void GenerateInitialPopulation(void)
{
 int i,j;
 initreport();
 for(i=0;i<PopSize;i++)
 {
	for(j=0;j<CHROMLENGTH;j++)
	{population[i].chrom[j]=(rand()%10<5)?'0':'1';}
 	population[i].chrom[CHROMLENGTH]='\0';
 }	
}
/******************************************** 
*                初始參數(shù)輸出               * 
********************************************/
void initreport()               
{
    fprintf(galog,"             基本遺傳算法參數(shù)\n");
    fprintf(galog," -------------------------------------------------\n");
    fprintf(galog," 種群大小(PopSize)            =   %d\n",PopSize);
    fprintf(galog," 染色體長(zhǎng)度(CHROMLENGTH)      =   %d\n",CHROMLENGTH);
    fprintf(galog," 最大進(jìn)化代數(shù)(MaxGeneration)  =   %d\n",MaxGeneration);
    fprintf(galog," 交叉概率(pcross)             =   %f\n",Pc);
    fprintf(galog," 變異概率(pmutation)          =   %f\n",Pm);
    fprintf(galog," -------------------------------------------------\n");
}
/*********************************************
*              產(chǎn)生下一代                    *
*********************************************/
void GenerateNextPopulation(void)
{
  SelectionOperator();//選擇操作
  CrossoverOperator();//交叉操作
  MutationOperator();//變異操作
}
/*********************************************
*         依據(jù)一定的規(guī)則評(píng)價(jià)種群             *
*********************************************/
void EvaluatePopulation(void)
{
  CaculateObjectValue();//計(jì)算個(gè)體函數(shù)值
  CaculateFitnessValue();//計(jì)算適應(yīng)度
  FindBestAndWorstIndividual();
}
/*********************************************
*將二進(jìn)制染色體碼解碼成十進(jìn)制數(shù) 電阻值解碼   *
*********************************************/
double DecodeChromosome1(char *string,int point,int length)
{
	int i;
	double r=0.0;
	char *pointer;
	for(i=0,pointer=string+point;i<length;i++,pointer++)
	{
		if(i<7)
		{r+=(*pointer-'0')<<(length-1-i);}
        else if(i>=7)
		{r+=((*pointer-'0')<<(length-1-i))/8.0;}
	}
	return(r);
}
/*********************************************
*將二進(jìn)制染色體碼解碼成十進(jìn)制數(shù) 電容值解碼   *
*********************************************/
double DecodeChromosome2(char *string,int point,int length)
{
	int i;
	double c=0.0;
	char *pointer;
	for(i=0,pointer=string+point;i<length;i++,pointer++)
	{c+=(*pointer-'0')<<(length-1-i);}
	c=c/(1024.0*40.0);
	return(c);
}
/****************************************
*    計(jì)算最終濾波器的各元件參數(shù)值       *
****************************************/
void CaculateDeviceValue(char *sstring)
{
   int j=1;
   double y[12];
		for(j=1;j<=12;j++)
		{
			if(j<8)
			{
				y[j-1]=DecodeChromosome1(sstring,10*j,10);
				fprintf(galog,"R[%d]:%f\n",j,y[j-1]);
			}
			else if(j>=8)
			{
				y[j-1]=DecodeChromosome2(sstring,10*j,10);
				fprintf(galog,"C[%d]:%f\n",j-7,y[j-1]);
			}
		}
}
/*********************************************
*           計(jì)算個(gè)體函數(shù)值                   *
*********************************************/
void CaculateObjectValue(void)
{
	int i,j;
	double x[12];
	for(i=0;i<PopSize;i++)
	{
		for(j=0;j<12;j++)
		{
			if(j<8)
			{
				x[j]=DecodeChromosome1(population[i].chrom,10*j,10);
			}
			else if(j>=8)
			{
				x[j]=DecodeChromosome2(population[i].chrom,10*j,10);
			}
		}
		population[i].f1=1000/(2*pi*sqrt(x[0]*x[1]*x[8]*x[9]));
        population[i].f2=1000/(2*pi*sqrt(x[4]*x[5]*x[10]*x[11]));
		population[i].k1=1+x[3]/x[2];
		population[i].k2=1+x[7]/x[6];
        population[i].a1=(sqrt(x[1]*x[9]/(x[0]*x[8]))+sqrt(x[0]*x[9]/(x[1]*x[8]))-(population[i].k1-1)*sqrt(x[0]*x[8]/(x[1]*x[9])))/2;
		population[i].a2=(sqrt(x[5]*x[11]/(x[4]*x[10]))+sqrt(x[4]*x[11]/(x[5]*x[10]))-(population[i].k2-1)*sqrt(x[4]*x[10]/(x[5]*x[11])))/2;
		population[i].value=0.05*fabs(population[i].f1-11940.04)+0.05*fabs(population[i].f2-20625.4)+fabs(population[i].k1*population[i].k2-6)+10*fabs(population[i].a1-0.709)+10*fabs(population[i].a2-0.17)+1;
	}
}
/***********************************************
*          計(jì)算適應(yīng)度值                        *
***********************************************/
void CaculateFitnessValue(void)
{
	int i;
	for(i=0;i<PopSize;i++)
	{
		if(population[i].value==0.00)
		  population[i].fitness=population[i].value;
		else
		  population[i].fitness=1/population[i].value;
	}
}
/***********************************************
*       尋找當(dāng)前代最佳個(gè)體                     *
***********************************************/
void FindBestAndWorstIndividual(void)
{
	int i;
	double sum=0.0;
	//尋找當(dāng)前代最佳和最差個(gè)體
	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;
	//尋找迄今為止最佳個(gè)體
  if(generation==0)
     {currentbest=bestindividual;}
  else
     {if(bestindividual.fitness>currentbest.fitness)
 	      {currentbest=bestindividual;}
     } 	
	}
}
/***********************************************
*          用最優(yōu)保存策略進(jìn)行評(píng)價(jià)操作          *
***********************************************/
void PerformEvolution(void)
{
	if(bestindividual.fitness>currentbest.fitness)
		{currentbest=population[best_index];}
	else 
		{population[worst_index]=currentbest;}
}
/***********************************************
*         用比例選擇的方法復(fù)制染色體           *
***********************************************/
void SelectionOperator(void)
{
	int i,index;
	double p,sum=0.0;
	double cfitness[POPSIZE];
	struct individual newpopulation[POPSIZE];
	//計(jì)算相對(duì)適應(yīng)度
	for(i=0;i<PopSize;i++)
	{sum+=population[i].fitness;}
	for(i=0;i<PopSize;i++)
	{cfitness[i]=population[i].fitness/sum;}
	//計(jì)算
	for(i=1;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];}
}
/***********************************************
*        用單點(diǎn)交叉方法進(jìn)行交叉操作            *
***********************************************/
void CrossoverOperator(void)
{
	int i,j;
	int index[POPSIZE];
	int point,temp;
	double p;
	char ch;
	//隨機(jī)配對(duì)兩個(gè)個(gè)體
	for(i=0;i<PopSize;i++)
	{index[i]=i;}
	for(i=0;i<PopSize;i++)
	{
		point=rand()%(PopSize-i);
		temp=index[i];
		index[i]=index[point+i];
		index[point+i]=temp;
	}
	//單點(diǎn)交叉操作
	for(i=0;i<PopSize-1;i+=2)
	{
		p=rand()%1000/1000.0;
		if(p<Pc)
			{
				point=rand()%(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(void)
{
	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';}
		}
	}
}
/***********************************************
*                     輸出結(jié)果                 *
***********************************************/
void OutputTextReport(void)
{
   /*int i;
   fprintf(galog,"--------------------------------算法統(tǒng)計(jì)報(bào)告------------------------------\n");
   fprintf(galog,"第%d代",generation);
   fprintf(galog,"\n");
   fprintf(galog,"當(dāng)前代最佳染色體編碼\n");
   for(i=0;i<CHROMLENGTH;i++)
   {
	   fprintf(galog,"%c",currentbest.chrom[i]);
   }
   fprintf(galog,"\n");*/
}
void finalreport(void)
{
int i;
fprintf(galog,"最佳染色體編碼\n");
for(i=0;i<CHROMLENGTH;i++)
   {
	   fprintf(galog,"%c",currentbest.chrom[i]);
   }
fprintf(galog,"\n");
fprintf(galog,"個(gè)體最大適應(yīng)度值:%f\n",currentbest.fitness);
fprintf(galog,"第一節(jié)濾波器的頻率:%f\n",currentbest.f1);
fprintf(galog,"第二節(jié)濾波器的頻率:%f\n",currentbest.f2);
fprintf(galog,"第一節(jié)濾波器的增益:%f\n",currentbest.k1);
fprintf(galog,"第二節(jié)濾波器的增益:%f\n",currentbest.k2);
fprintf(galog,"第一節(jié)濾波器的阻尼系數(shù):%f\n",currentbest.a1);
fprintf(galog,"第二節(jié)濾波器的阻尼系數(shù):%f\n",currentbest.a2);
CaculateDeviceValue(currentbest.chrom);
fprintf(galog,"\n\nSimulation Completed\n");
fprintf(galog,"success!\n");
printf("success!\n");
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成a人亚洲精品| 国产欧美va欧美不卡在线| 欧美日韩精品专区| 欧美亚洲禁片免费| 欧美亚洲日本一区| 91.麻豆视频| 日韩欧美国产1| 久久久久国产精品人| 久久精品视频免费观看| 国产欧美一区二区三区鸳鸯浴| 国产亚洲欧洲997久久综合| 久久在线观看免费| 日本一区二区在线不卡| 中文字幕在线视频一区| 自拍偷自拍亚洲精品播放| 亚洲美女视频在线| 日韩高清一级片| 另类综合日韩欧美亚洲| 国产中文字幕精品| 9i在线看片成人免费| 日本韩国欧美国产| 91精品国产美女浴室洗澡无遮挡| 日韩欧美的一区| 中文子幕无线码一区tr| 亚洲一区二区视频| 免费观看成人av| 成人午夜私人影院| 欧美在线免费观看亚洲| 日韩丝袜美女视频| 国产日产欧美一区二区视频| 亚洲免费观看高清在线观看| 丝袜亚洲精品中文字幕一区| 卡一卡二国产精品| 成人av免费在线观看| 欧美私模裸体表演在线观看| 精品国精品国产尤物美女| 国产精品丝袜在线| 视频一区国产视频| 国产精品 欧美精品| 欧美日韩一区二区三区高清| 精品国产伦一区二区三区观看体验| 欧美高清在线精品一区| 午夜精品在线看| 懂色av中文一区二区三区| 欧美日韩一区二区三区四区五区| 欧美精品一区二区久久婷婷| 一区二区三区不卡视频在线观看| 久久精品国产一区二区三区免费看| 波多野结衣视频一区| 欧美丰满少妇xxxbbb| 国产精品无人区| 日本麻豆一区二区三区视频| 99久久久久久| 精品不卡在线视频| 亚洲精品国久久99热| 国产伦精一区二区三区| 欧美色男人天堂| 国产欧美日产一区| 日本成人在线不卡视频| 色综合 综合色| 久久久久久亚洲综合影院红桃| 亚洲成人动漫在线免费观看| 波多野结衣欧美| 久久综合九色欧美综合狠狠| 香蕉成人啪国产精品视频综合网 | 麻豆精品精品国产自在97香蕉| 成人动漫一区二区| 精品美女在线播放| 日本免费在线视频不卡一不卡二| 色呦呦国产精品| 欧美国产1区2区| 国产精品一区二区三区网站| 91精品国产综合久久久蜜臀图片 | av在线不卡网| 精品国产一区二区三区不卡| 石原莉奈在线亚洲三区| 在线亚洲免费视频| 亚洲人成小说网站色在线| 国产91精品一区二区麻豆亚洲| 欧美白人最猛性xxxxx69交| 午夜视频在线观看一区二区三区 | 亚洲人成网站在线| 成人午夜伦理影院| 久久久久久毛片| 极品美女销魂一区二区三区| 欧美一区二区三区不卡| 亚洲国产日日夜夜| 欧美亚一区二区| 亚洲一二三四区| 91福利视频网站| 伊人一区二区三区| 色域天天综合网| 一区二区三区在线观看欧美| 91久久精品一区二区三区| 亚洲欧美韩国综合色| 99久久伊人精品| 亚洲欧美视频在线观看视频| 91在线精品一区二区| ㊣最新国产の精品bt伙计久久| 成人99免费视频| 国产精品成人一区二区三区夜夜夜| 成人的网站免费观看| 国产精品免费看片| 99精品在线观看视频| 亚洲蜜桃精久久久久久久| 色综合久久88色综合天天| 亚洲综合在线视频| 欧美顶级少妇做爰| 免费人成精品欧美精品| 精品欧美久久久| 国产最新精品免费| 国产精品丝袜在线| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲摸摸操操av| 欧美三级一区二区| 午夜精品福利在线| 精品久久国产97色综合| 国产一区二区剧情av在线| 欧美国产精品一区二区三区| 99re这里只有精品视频首页| 亚洲黄色av一区| 69堂精品视频| 国产精品一区三区| 日韩一区有码在线| 欧美午夜一区二区三区| 美美哒免费高清在线观看视频一区二区 | 日本亚洲免费观看| 精品美女在线播放| 99在线精品观看| 亚洲国产精品嫩草影院| 日韩一区二区三区在线观看| 国产精品一区二区免费不卡| 亚洲欧美国产三级| 日韩一区二区在线看片| 国产成人三级在线观看| 亚洲综合精品自拍| 精品少妇一区二区三区视频免付费 | 久久99精品国产麻豆婷婷| 中文字幕av一区二区三区高| 欧美色综合天天久久综合精品| 久久国产精品无码网站| 国产精品久久夜| 欧美精品丝袜中出| 国产精品1024| 污片在线观看一区二区| 国产日本欧美一区二区| 在线观看免费一区| 国产一区二区三区四区在线观看| 亚洲你懂的在线视频| 亚洲另类在线制服丝袜| 日韩欧美一区二区免费| 91丨国产丨九色丨pron| 蜜桃传媒麻豆第一区在线观看| 中文字幕在线免费不卡| 日韩一区二区麻豆国产| 色天使色偷偷av一区二区| 国模大尺度一区二区三区| 一区二区三区av电影| 久久九九久精品国产免费直播| 欧美人与性动xxxx| 成人一区二区三区| 麻豆成人免费电影| 亚洲综合精品久久| 国产精品色哟哟| 欧美一级xxx| 91成人免费电影| 成人国产一区二区三区精品| 免费在线观看视频一区| 亚洲综合男人的天堂| 欧美国产欧美综合| 欧美精品一区二区三区四区| 欧美日韩视频在线一区二区| 不卡av电影在线播放| 麻豆久久久久久| 午夜精品国产更新| 亚洲欧美日韩小说| 国产精品情趣视频| 久久久综合网站| 日韩午夜在线观看视频| 欧美中文字幕一区二区三区| 波多野结衣视频一区| 国产一区91精品张津瑜| 青椒成人免费视频| 亚洲成a人v欧美综合天堂| 亚洲欧美日韩中文播放 | 国产精品私人影院| 久久精品人人做人人综合| 3d动漫精品啪啪一区二区竹菊| 91福利视频久久久久| av电影在线观看完整版一区二区| 国产在线日韩欧美| 毛片av中文字幕一区二区| 午夜婷婷国产麻豆精品| 亚洲一区二区在线免费观看视频| 亚洲免费观看高清完整版在线观看 | 欧美主播一区二区三区美女| 色香色香欲天天天影视综合网| 99视频一区二区| 成人精品国产免费网站| 国产高清不卡一区|