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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ebf847eb-572a-4b85-95e0-e3d0c5d9bf50.cpp

?? 一個典型的遺傳算法源程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// 遺傳算法.cpp : Defines the entry point for the console application.
//
#include "stdlib.h"
#include "time.h"
#include "math.h"
#include "Fzc.h"
struct Mat
{
	
	double C;              //材料的Paris C常數
	double N;              //材料的Paris n常數
	double Kc;             //材料的斷裂韌性
	double Thema_B;        //材料屈服極限
};

struct structure
{
	double A0;             //結構分析的初始裂紋長
	double S0;             //結構的初始截面積
	double T;              //結構的厚度
	double R;              //結構外載的應力比
	double Thema;          //結構的外載
};

/*宏定義*/
#define MaxGeneration 200                    //最大遺傳數    
#define POPSIZE 500                          //種群大小
#define Cmax 100                             //某一個極大值    
#define Cmin 0                               //某一個極小值
#define Length1   15                         //第一變量的染色體的長度  P
#define Length3   20                         //第三變量的染色體的長度  t1
#define Length4   20                         //第四變量的染色體的長度  t2
#define E    70                              //板的彈性模量
#define ES   70                              //筋的彈性模量
#define ROU1 2.69e3                          //筋材料密度
#define ROU2 2.69e3                          //板材料的密度kg/m3
#define BANKAN 200                           //板寬mm
#define BANCHANG 350                         //板長mm
#define BANHOU 1.5                           //板厚mm
#define Chromlength Length1+Length3+Length4  //總的染色體的長度
#define NMAX   1e6
#define NMIN   1.5e3
#define TMAX  (ROU2*BANKAN*BANHOU*BANCHANG+ROU1*BANKAN*BANKAN*BANCHANG)/1e9  //  kg
#define TMIN  (ROU2*BANKAN*BANHOU*BANCHANG)/1e9            //kg
#define QMAX  1/(BANKAN*BANHOU)*1e6                        //1N/m2
#define QMIN  1/(BANKAN*BANHOU+BANKAN*BANKAN)*1e6          //1N/m2
#define QUANN  0.5
#define QUANT  0.3
#define QUANQ  0.2



double  Pc=0.6;										 //交叉率
double  Pm=0.001;									 //變異率
int MAXIMIZATION;									 //優化模式
double Zid[3]={0.1e7,ROU2*BANKAN*BANHOU*BANCHANG/1e9,1/(BANKAN*BANHOU+BANKAN*BANKAN)*1e6};  //理想點初始值

/*定義個體結構體*/
struct individual									 //個體數據結構
{
	char    chrom[Chromlength+1];					 //個體的染色體編碼,最后一位為'\0'.
	double  value;									 //該個體的目標函數值
	double  fitness;								 //該個體的置信度
};

/*全局變量的定義*/
int    generation;									 //遺傳數
int    best_index;									 //最佳染色體的地址
int    worst_index;									 //最差染色體的地址
struct individual bestindividual;					 //當前遺傳代的最佳個體
struct individual worstindividual;					 //當前遺傳代的最差個體
struct individual currentbest;					     //現在的最佳個體
struct individual population[POPSIZE];               //種群
double best[MaxGeneration+1];                        //適應值最佳個體集合
double worst[MaxGeneration+1];                       //適應值最差個體集合
double ave[MaxGeneration+1];                         //個體平均適應值集合
double P[MaxGeneration+1];                           //變量P的值
double T1[MaxGeneration+1];                          //變量t1的值
double T2[MaxGeneration+1];                          //變量t2的值
double zhongliang[MaxGeneration+1];                  //重量數組
double shouming[MaxGeneration+1];                    //壽命數組
double yingli[MaxGeneration+1];                      //應力數組
/*函數聲明*/
void GenerateInitialPopulation();          
void GenerateNextPopulation();
void EvaluatePopulation();
long DecodeChromosome(char* , int ,int);
void CalculateObjectValue();
void CalculateFitnessValue();
void FindBestAndWorstIndividual();
void PerformEvolution();
void SelectionOperator();
void CrossoverOperator();
void MutationOperator();
void OutputTextReport();
double abb(int a, int b);
double Cal_N(double PP, double RR, struct Mat *P, struct structure *Structure);
double NN(double PP, double R);


double Cal_N(double PP, double RR, struct Mat *P, struct structure *Structure)
{
	double K_Max;
	double Thema_Max;
	double Temp_a;
	double Da_DN;
	double A0,A1;
	double N_N;
	int NGS;
	NGS=4;
	double *POSGP=new double[NGS];
	double *WEIGP=new double[NGS];
	double A[30],K[300],R[10];
	int Num_A,Num_R;
	int i,j;
	FILE *fp;
	fp=fopen("ak.dat","r");
	fscanf(fp,"%d",&Num_R);

	for(i=0;i<Num_R;i++)
		fscanf(fp,"%lf",&R[i]);

	fscanf(fp,"%d",&Num_A);
	for(i=0;i<Num_A;i++)
	{
		fscanf(fp,"%lf",&A[i]);
		for(j=0;j<Num_R;j++)
			fscanf(fp,"%lf",&K[j*Num_A+i]);
	}
	fclose(fp);
	Temp_a=0.0001;								//積分區間劃分的大小
	Gauss(NGS,POSGP,WEIGP);
	N_N=0.;
	A0=Structure->A0;
	A1=A0+Temp_a;
	Thema_Max=Structure->Thema*0.1/(0.10-A1);   //0.1為板的半寬
	K_Max=CA(Num_R,Num_A,   RR*A0   ,PP/A1,R,A,K);

	while(K_Max<P->Kc && Thema_Max<P->Thema_B && A1<0.1)//0.1為板的半寬
	{
		for(j=0;j<NGS;j++)
		{ 
			K_Max=CA(Num_R,Num_A,   RR*A0   ,PP/((A1-A0)/2.*POSGP[j]+(A1+A0)/2.),R,A,K);

			K_Max=K_Max*Structure->Thema*sqrt(3.1415926*((A1-A0)/2.*POSGP[j]+(A1+A0)/2.));
			
			Da_DN=P->C*pow(K_Max,P->N);

			N_N=N_N+(1./Da_DN*WEIGP[j])*(A1-A0)/2.;			
		}
		A0=A1;
		A1=A1+Temp_a;
		Thema_Max=Structure->Thema*0.1/(0.10-A1);//0.1為板的半寬
	}
	return(N_N);
}


double NN(double PP, double R)					 //鉚距PP,R:參數r
{

	double N;
	char string[100];
	struct Mat AL_Mat;
	struct structure Structure;
	int flag=1;
	FILE *fp;
	fp=fopen("mat.dat","r");
	fscanf(fp,"%s",string);
	fscanf(fp,"%lf,%lf",&AL_Mat.C,&AL_Mat.N);
	fscanf(fp,"%s",string);
	fscanf(fp,"%lf",&AL_Mat.Kc);
	fscanf(fp,"%s",string);
	fscanf(fp,"%lf",&AL_Mat.Thema_B);
	fclose(fp);
	fp=fopen("structure.dat","r");
	fscanf(fp,"%s",string);
	fscanf(fp,"%lf,%lf",&Structure.R,&Structure.Thema);
	fscanf(fp,"%s",string);
	fscanf(fp,"%lf,%lf",&Structure.S0,&Structure.T);
	fscanf(fp,"%s",string);
	fscanf(fp,"%lf",&Structure.A0);
	fclose(fp);
	N=Cal_N(PP,R,&AL_Mat,&Structure);
//	printf("N=%e\n",N);
	return N;

}
/*主函數*/
void main()
{   FILE  *fp1,*fp2,*fp3,*tp1,*tp3,*tp4,*tmp1,*tmp2,*tmp3;
   int i;
loop:	printf("請選擇優化模式.即優化目標是最大值時,輸入 1,優化目標是最小值時,輸入 2\n");
	scanf("%d",&MAXIMIZATION);
	if(MAXIMIZATION==1||MAXIMIZATION==2)
	{
	generation=0;
    GenerateInitialPopulation();               //調用第一代種群生成函數;
	EvaluatePopulation();                      //調用適應值計算函數
	while(generation<MaxGeneration)            //迭代過程
	{
		generation++;
	    GenerateNextPopulation();
		EvaluatePopulation();
		PerformEvolution();
	    OutputTextReport();
	}
	if((fp1=fopen("適應值最大個體集合.txt","w"))==NULL)       
   {
         printf("不能打開這個文件!\n");
		 exit(0);
	}

    if((fp2=fopen("適應值最差個體集合.txt","w"))==NULL)              
   {
         printf("不能打開這個文件!\n");
		 exit(0);
	}
    if((fp3=fopen("平均適應值個體集合.txt","w"))==NULL)   
   {
         printf("不能打開這個文件!\n");
		 exit(0);
	}
  for(i=0;i<MaxGeneration;i++)                          
	 {
	  fprintf(fp1,"%f",best[i]);                  //輸出適應值最大個體集合 
	  fprintf(fp1,"%c",'\n');
  }
  for(i=0;i<MaxGeneration;i++)
	 {
	  fprintf(fp2,"%f",worst[i]);                 //輸出適應值最差個體集合
	  fprintf(fp2,"%c",'\n');
  }
  for(i=0;i<MaxGeneration;i++)
	 {
	  fprintf(fp3,"%f",ave[i]);                   //輸出平均適應值個體集合
	  fprintf(fp3,"%c",'\n');
  }
	
    fclose(fp1);
	fclose(fp2);
	fclose(fp3);
	
		if((tp1=fopen("P最佳值.txt","w"))==NULL)       
   {
         printf("不能打開這個文件!\n");
		 exit(0);
	}

    
    if((tp3=fopen("t1最佳值.txt","w"))==NULL)   
   {
         printf("不能打開這個文件!\n");
		 exit(0);	
	}
	if((tp4=fopen("t2最佳值.txt","w"))==NULL)   
   {
         printf("不能打開這個文件!\n");
		 exit(0);	
	}
	
	 for(i=0;i<MaxGeneration;i++)
	 {
	  fprintf(tp1,"%f",P[i]);                
	  fprintf(tp1,"%c",'\n');
	 }
	 
	   for(i=0;i<MaxGeneration;i++)
	 {
	  fprintf(tp3,"%f",T1[i]);               
	  fprintf(tp3,"%c",'\n');
	 }
	    for(i=0;i<MaxGeneration;i++)
	 {
	  fprintf(tp4,"%f",T2[i]);                 
	  fprintf(tp4,"%c",'\n');
	 }
    fclose(tp1);
	fclose(tp3);
	fclose(tp4);

	if((tmp1=fopen("壽命最佳值.txt","w"))==NULL)       
   {
         printf("不能打開這個文件!\n");
		 exit(0);
	}
	if((tmp2=fopen("重量最佳值.txt","w"))==NULL)       
   {
         printf("不能打開這個文件!\n");
		 exit(0);
	}
	if((tmp3=fopen("應力最佳值.txt","w"))==NULL)       
   {
         printf("不能打開這個文件!\n");
		 exit(0);
	}

 for(i=0;i<MaxGeneration;i++)
	 {
	  fprintf(tmp1,"%f",shouming[i]);                
	  fprintf(tmp1,"%c",'\n');
	 }
  for(i=0;i<MaxGeneration;i++)
	 {
	  fprintf(tmp2,"%f",zhongliang[i]);                
	  fprintf(tmp2,"%c",'\n');
	 }
   for(i=0;i<MaxGeneration;i++)
	 {
	  fprintf(tmp3,"%f",yingli[i]);                
	  fprintf(tmp3,"%c",'\n');
	 }

    fclose(tmp1);
	fclose(tmp2);
	fclose(tmp3);
	
	}
	else 
	{
		printf("您的輸入有錯誤!!請重新輸入!\n");
	    goto loop;
	}
	
}
/****************************************************************/
/*   函數:讀取第一代種群編碼.txt文件中存放的第一代種群編碼  ok */
/****************************************************************/  
void GenerateInitialPopulation()                                                  
{
	FILE *fp;
	int i,j;
   if((fp=fopen("第一代種群編碼.txt","r"))==NULL)
   {
         printf("不能打開此文件!\n");
		 exit(0); 
   }  
   for(i=0;i<POPSIZE;i++)
   {
	   for(j=0;j<Chromlength+1;j++)
		   fscanf(fp,"%c",&population[i].chrom[j]);
	           population[i].chrom[Chromlength]='\0';
   }
   fclose(fp);

}



/*********************************************************/
/*      函數:根據具體的公式進行目標函數的適應值計算     */
/*********************************************************/
void EvaluatePopulation()	
{	
	CalculateObjectValue();         //調用計算目標函數值函數
	CalculateFitnessValue();        //調用計算適應值函數 
	FindBestAndWorstIndividual();   //調用尋找當前代中的最佳個體函數  
}


/*****************************************************************/
/*                   函數:計算目標函數值                        */
/* 5<p<40 15位 1.5<B<3.5 10位 10<t1<200 20位 1<t2<t1 20位 單位mm */
/*****************************************************************/

void CalculateObjectValue()
{
	int i;
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美欧美欧美欧美| 亚洲色图欧洲色图| 亚洲黄色在线视频| 国产精品系列在线观看| 欧美中文一区二区三区| 中文字幕免费不卡| 久久97超碰色| 欧美精品一卡二卡| 亚洲免费观看高清| 成人性生交大片| 精品对白一区国产伦| 日韩高清国产一区在线| 色欧美乱欧美15图片| 国产精品素人视频| 国产大片一区二区| 欧美成人精品1314www| 天天综合色天天综合| 一本大道综合伊人精品热热| 欧美国产97人人爽人人喊| 捆绑紧缚一区二区三区视频| 欧美伦理影视网| 亚洲成人在线免费| 欧美日韩国产片| 亚洲一二三区在线观看| 色94色欧美sute亚洲13| 亚洲精品你懂的| 在线观看国产精品网站| 亚洲综合在线五月| 色94色欧美sute亚洲线路一久 | 日韩精品一区二区三区三区免费| 亚洲一区二区精品3399| 色av成人天堂桃色av| 亚洲欧美激情一区二区| 在线精品视频小说1| 亚洲激情在线播放| 色94色欧美sute亚洲线路一久| 亚洲男女一区二区三区| 91小视频免费观看| 亚洲成年人影院| 在线播放/欧美激情| 欧美a级理论片| 亚洲精品一区二区三区99| 国产乱人伦偷精品视频不卡 | 国产一区二区h| 久久综合色婷婷| 国产99久久精品| 亚洲欧美日韩中文播放| 欧美日韩aaaaaa| 国产一本一道久久香蕉| 国产精品成人网| 欧美日本一区二区在线观看| 欧美aⅴ一区二区三区视频| 久久久亚洲精品一区二区三区| 成人免费视频免费观看| 一区二区三区四区av| 欧美一区二区视频在线观看| 国产麻豆视频精品| 亚洲精品欧美二区三区中文字幕| 欧美精品少妇一区二区三区| 国产精品91xxx| 亚洲精品老司机| 精品国产凹凸成av人网站| gogogo免费视频观看亚洲一| 亚洲成人在线观看视频| 久久亚洲一区二区三区明星换脸| av成人老司机| 久久99热狠狠色一区二区| 综合网在线视频| 欧美一级欧美一级在线播放| 粉嫩在线一区二区三区视频| 婷婷一区二区三区| 国产精品色呦呦| 337p亚洲精品色噜噜噜| voyeur盗摄精品| 美女mm1313爽爽久久久蜜臀| 亚洲免费在线电影| 久久久一区二区三区捆绑**| 欧美日韩一本到| 成人黄色电影在线| 极品美女销魂一区二区三区免费| 一片黄亚洲嫩模| 亚洲国产成人在线| 日韩精品在线网站| 欧美另类久久久品| 在线观看亚洲精品视频| 粉嫩av一区二区三区| 国内外成人在线| 天堂va蜜桃一区二区三区| 亚洲欧美国产77777| 久久久99久久| 日韩一区二区三区视频| 欧美中文字幕不卡| 色爱区综合激月婷婷| 波多野结衣在线一区| 极品瑜伽女神91| 蜜桃久久久久久| 亚洲一区二区三区国产| 亚洲图片另类小说| 中文字幕一区二区三区在线播放 | 日韩欧美在线观看一区二区三区| 色综合天天综合给合国产| 国产盗摄女厕一区二区三区 | 91在线视频播放地址| 国产成人免费视频网站| 久久精品国产一区二区三| 日产国产欧美视频一区精品| 性久久久久久久久久久久| 一区二区欧美精品| 亚洲国产视频在线| 亚洲国产一区二区a毛片| 夜夜嗨av一区二区三区网页| 亚洲精品免费电影| 亚洲黄色av一区| 亚洲综合成人在线| 视频在线观看一区| 日本成人在线电影网| 免费观看在线综合| 美女一区二区三区| 国产一区在线观看麻豆| 国产激情一区二区三区| 国产成人在线视频网址| 成人av资源在线观看| 91麻豆免费在线观看| 欧美日韩日日骚| 欧美zozozo| 国产精品久久久久天堂| 一区二区三区精品久久久| 亚洲成人777| 久久99国内精品| 成人动漫中文字幕| 欧洲另类一二三四区| 91精品国产免费久久综合| 欧美精品一区二区久久婷婷| 欧美国产精品一区二区三区| 亚洲精品成人精品456| 日日骚欧美日韩| 国产999精品久久久久久绿帽| 色妞www精品视频| 欧美一二区视频| 亚洲欧洲av一区二区三区久久| 亚洲一区二区三区自拍| 欧美bbbbb| 91婷婷韩国欧美一区二区| 欧美猛男gaygay网站| 精品久久国产老人久久综合| 中文字幕精品—区二区四季| 亚洲午夜精品久久久久久久久| 日韩av成人高清| 成人爽a毛片一区二区免费| 色国产精品一区在线观看| 精品国产一区二区三区久久影院| 国产精品五月天| 日韩中文字幕一区二区三区| 成人美女视频在线观看| 在线播放91灌醉迷j高跟美女 | 久久精品日产第一区二区三区高清版| 亚洲欧美在线高清| 蜜桃av一区二区三区电影| 成人91在线观看| 日韩精品一区二区三区老鸭窝| 中文一区二区完整视频在线观看| 亚洲成人福利片| 成人av网在线| 精品国产一区二区三区av性色 | 国产精品久久久久一区 | 精品国产免费一区二区三区香蕉| 亚洲色图欧洲色图| 国产激情一区二区三区四区| 欧美二区乱c少妇| 亚洲精品国产视频| 国产91精品免费| 日韩一区二区在线看| 伊人色综合久久天天人手人婷| 国产精品88av| 精品久久久久久无| 欧美aaaaaa午夜精品| 在线观看av一区二区| √…a在线天堂一区| 国产精品一区二区在线观看不卡| 在线播放91灌醉迷j高跟美女| 亚洲精品免费在线播放| 99久久国产免费看| 欧美极品少妇xxxxⅹ高跟鞋 | 久久精品日产第一区二区三区高清版| 亚洲成人av电影在线| 欧美中文字幕亚洲一区二区va在线| 国产精品第四页| 99久久精品一区| 成人免费一区二区三区在线观看| 国产高清不卡一区| 国产视频一区在线观看| 国产精品一区二区91| 国产亚洲综合色| 国产乱色国产精品免费视频| 欧美精品一区二区三区蜜臀| 精品一区二区三区久久久| 精品日韩欧美在线| 国产麻豆午夜三级精品| 国产日产欧美一区二区三区 | 亚洲人吸女人奶水|