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

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

?? operators_nsga2.cpp

?? 多目標(biāo)優(yōu)化進(jìn)化算法目前公認(rèn)效果收斂性最好的算法NSGA2c++源碼,具有一般性
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
	int n_Genes=id.InumberofGenes; 
	
	double *fitness=new double[n_Objs];
	
	N_evals++;
	
	for(j=0;j<n_Objs;j++)   // calculate fitness value without noise
	{
		if (objID==7)
			fitness[j]=obj.problem7(id.Dgenes,n_Genes,j,N_evals,genNo);   
		else if (objID==8)
			fitness[j]=obj.problem8(id.Dgenes,n_Genes,j,N_evals,genNo);   
		else if(objID==9)
			fitness[j]=obj.problem9(id.Dgenes,n_Genes,j,N_evals,genNo); 
		else if(objID==10)
			fitness[j]=obj.problem10(id.Dgenes,n_Genes,j,N_evals,genNo); 
		else if(objID==11)
			fitness[j]=obj.problem11(id.Dgenes,n_Genes,j,N_evals,genNo); 
		else 
			fitness[j]=obj.problem12(id.Dgenes,n_Genes,j,N_evals,genNo); 
		
	}
	if (objID==9)
	{
		fitness[0]=-fitness[1];
	}
	id.set_Dfitness(fitness);
	if (fitness) {delete [] fitness; fitness=NULL;}
}

void operators_NSGA2::combination(population &Q, population &P)
{
	int size=P.pop_size;
	int i;
	for (i=size;i<2*size;i++)
	{
		Q.individuals[i]=P.individuals[i-size];
	}
}

void operators_NSGA2::Evolve(int population_size, int N_generation, int SEED, int n_Genes,int n_Objs,int *GSize,double *Ub,double *Lb)
{
	P.set_pop_size(population_size);     // parrent population: size N
	Q.set_pop_size(2*population_size);     // offspring population: size N
	
	int rk;    // to store rank maximum
	int *nrank=NULL;   // to store the total individuals belong to each rank
	int i,j;
	
	genNo=0;
	n_SEED=SEED;
	n_GEN=N_generation;
	rnd.setSeed(n_SEED);
	
	obj.cur_SEED =n_SEED;
	obj.al_pc =pc;obj.al_pm =pm;
	obj.peaksetting(n_Genes); 
	
	min_values= new double[n_Objs];
	max_values= new double[n_Objs];
	
	// intialize the population P
	initialize_population(n_Genes,n_Objs,GSize,Ub,Lb,P); 
	
	
	// print to file
	
	char *filename=new char[45];
	
	char *st_prob=new char[2];
	sprintf(st_prob,"%d_",objID);
	
	char *st_seed=new char[5];
	sprintf(st_seed,"%d_",n_SEED);
	
	char *st_pc=new char[5];
	sprintf(st_pc,"%1.2f_",pc);
	
	char *st_pm=new char[5];
	sprintf(st_pm,"%1.2f_",pm);
	
	strcpy(filename,".//data//");
	
	strcat(filename,st_prob);
	
	strcat(filename,st_pc);
	strcat(filename,st_pm);
	
	strcat(filename,st_seed);
	strcat(filename,"Pareto_NSGA2");
	
	
	strcat(filename,".txt");
	ofstream f1(filename);
	
	strcpy(filename,"best_");
	
	strcat(filename,st_prob);
	
	strcat(filename,st_pc);
	strcat(filename,st_pm);
	
	strcat(filename,st_seed);
	strcat(filename,".txt");
	
	ofstream f2(filename);
	// Main NSGA2 loop	
	
	while (genNo<=n_GEN)
	{
		
		cout << genNo<< endl;
		
		///////	// CREATE offspring Q from P /////////////////////////////////////////////
		
		// find max min between objective values /////////////////
		set_objectivevalue_maxmin(P,n_Objs); 
		
		
		P.rankingN(); 
		f1<< "1" << endl;
		
		
		f2 << setiosflags(ios::fixed|ios::showpoint) << setprecision(3) << global_max << "\t"
			<< setiosflags(ios::fixed|ios::showpoint) << setprecision(3) << P.diversity() << "\t";
		//	<< setiosflags(ios::fixed|ios::showpoint) << setprecision(3) << t          << "\t"
		//	<< setiosflags(ios::fixed|ios::showpoint) << setprecision(3) << t1         << "\t";
		P.print_ParetoOptimal_fn(genNo,f1,f2); 
		
		genNo++;
		if (genNo % 25 == 0) 
			
		{
			change_peaks();
			for (i=0;i<population_size;i++)
				if (objID<=9)
					re_evaluate(P.individuals[i]);
				else
					set_objectivevalue(P.individuals[i],P.individuals[i].Dgenes); 
				
				add_secondobjective(P,population_size);
		}
		// variation
		
		selection(Q,P);  // create mating pool Q
		crossover(Q);
		mutation(Q);
		add_secondobjective(Q,population_size);
		
		// combine P and Q -> R
		combination(Q,P); 	
		
		//////////// BUILD P(t+1) from different fronts, and assign to P for next generation
		
		set_objectivevalue_maxmin(Q,n_Objs);    // minmax values need to be recalculated after each generation
		
		
		Q.rankingN();
		
		rk=Q.rank_level;      // get max rank
		
		if (nrank) {delete [] nrank; nrank=NULL;}
		nrank = new int[rk];        
		
		for (i=0;i<rk;i++)       // initialize ranking array
			nrank[i]=0;
		
		for (i=0;i<2*population_size;i++)      // calaculate total individuals belong to each rank
			nrank[Q.individuals[i].rank]+=1; 
		
		int counter=0; // to track the index in F
		int current_count=0;    // to store the current size of P(t+1)
		
		for (i=0;i<rk;i++)
		{
			if (current_count>=population_size) break;
			
			counter=0;
			int counter1=current_count;
			if (!(current_count+nrank[i]<=population_size)) F.set_pop_size(nrank[i]);     // get each front into F
			
			for (j=0;j<2*population_size;j++)           
				if (Q.individuals[j].rank==i)
				{
					if (current_count+nrank[i]<=population_size)
						
					{
						P.individuals[counter1]=Q.individuals[j];
						counter1++;
					}
					else
					{
						F.individuals[counter]=Q.individuals[j];
						counter++;
					}
				}
				//..process F..................
				
				if (current_count+nrank[i]<=population_size)   //check the current P(t+1)'s size
				{
					// put the current F into P(t+1)
					//for(j=current_count;j<current_count+nrank[i];j++)
					//	P.individuals[j]=F.individuals[j-current_count];  
					current_count += nrank[i];
				}
				else
				{
					
					// to estimate the density of solutions srrounding a particular solution
					crowding_sort(F,TRUE);   
					
					int remain= population_size - current_count;
					for(j=current_count;j<current_count+remain;j++)
						P.individuals[j]=F.individuals[j-current_count];			
					current_count += remain;
				}
		}
	}
	
	f1.close();
	f2.close();
	obj.f1.close(); 
	delete [] st_prob;
	delete [] st_pm;
	delete [] st_pc;
	delete [] st_seed;
	delete [] max_values;
	delete [] min_values;	
	delete [] filename;
	if (nrank) {delete [] nrank; nrank=NULL;}    
}

void operators_NSGA2::setAge()
{
	
}

// just for second objective of objectives <=9
void operators_NSGA2::re_evaluate(individual &id)
{
	int n_Genes=id.InumberofGenes; 
	double fitness;//=new double[n_Objs];
	
	N_evals++;
	
	if (objID==7)
		fitness=obj.problem7(id.Dgenes,n_Genes,1,N_evals,genNo);   
	else if (objID==8)
		fitness=obj.problem8(id.Dgenes,n_Genes,1,N_evals,genNo);   
	else
	{
		
		fitness=obj.problem9(id.Dgenes,n_Genes,1,N_evals,genNo);   
	}
	id.DfitnessC[1]=fitness;
	id.DfitnessN[1]=fitness;
	
}

// for objectives: 10,11,12 only
void operators_NSGA2::add_secondobjective(population &pop, int pop_size)
{
	if (objID<10) return;
	
	int i,j, i_best=0;
	double f_best=D_MAX;
	double f_min, f_arg=0;
	
	double dis;
	
	for (i=0;i<pop_size;i++)
	{
		i_best=0;f_best=D_MAX; f_min=D_MAX; f_arg=0;
		for (j=0;j<pop_size;j++)
		{
			if ((pop.individuals[j].DfitnessN[1]<f_best ) && (i!=j))
			{
				i_best=j;f_best=pop.individuals[j].DfitnessN[1];
			}
			
			dis=eDistance(pop.individuals[i],pop.individuals[j]); 
			f_arg += dis;
			
			if ((f_min>dis)&&(dis!=0)) f_min=dis;
			
		}
		
		if(f_min==D_MAX) f_min=0;
		
		f_arg=f_arg/pop_size;
		
		if (objID==10)   // smallest distance to the neighbors
		{
			
			pop.individuals[i].DfitnessC[0]=-f_min;
			pop.individuals[i].DfitnessN[0]=-f_min;
		}
		else if (objID==11) //averaged distance to the neighbors
		{
			pop.individuals[i].DfitnessC[0]=-f_arg;
			pop.individuals[i].DfitnessN[0]=-f_arg;
		}
		else   // objID==12
		{
			pop.individuals[i].DfitnessC[0]=-eDistance(pop.individuals[i],pop.individuals[i_best]);
			pop.individuals[i].DfitnessN[0]=pop.individuals[i].DfitnessC[0];
		}
	}
	
}
double operators_NSGA2::eDistance(individual &id1, individual &id2)
{
	int i,NObjs=id1.InumberofObjs;
	double temp=0;
	for (i=0;i<NObjs;i++)
		temp+=pow((id1.Dgenes[i]-id2.Dgenes[i]),2) ;
	return sqrt(temp);
}

void operators_NSGA2::init(double _pc, double _pm, int ObjID)
{
	pc=_pc;pm=_pm;obj.setObjID(ObjID);
	objID=ObjID;
	max_values=NULL;
	min_values=NULL;
	N_evals=0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人自拍视频在线| 欧美日韩国产综合一区二区三区| 夜夜嗨av一区二区三区| 日韩欧美二区三区| 91毛片在线观看| 国产麻豆精品在线| 五月天激情综合网| 一卡二卡欧美日韩| 国产精品免费人成网站| 日韩美女一区二区三区四区| 日本精品免费观看高清观看| 国产成人精品综合在线观看 | av电影在线观看不卡| 免费观看在线综合| 在线一区二区三区做爰视频网站| 韩国午夜理伦三级不卡影院| 午夜成人免费视频| 狠狠色丁香久久婷婷综合_中| www.亚洲免费av| 国产亚洲一区二区三区在线观看 | 欧美丰满美乳xxx高潮www| 国产精品对白交换视频| 国产精品99久久久久| 欧美大片在线观看一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美在线|欧美| 一区二区欧美精品| 在线观看91精品国产入口| 亚洲欧美在线另类| 91社区在线播放| 亚洲欧美在线高清| 91福利国产精品| 夜夜精品视频一区二区| 欧美亚洲丝袜传媒另类| 五月天欧美精品| 欧美一区三区四区| 九九国产精品视频| 久久精品欧美一区二区三区麻豆 | 日韩av一二三| 91精品国产福利在线观看| 蜜臀av国产精品久久久久 | 在线视频欧美精品| 亚洲制服丝袜av| 欧美日韩大陆在线| 久久国产尿小便嘘嘘尿| 久久精品亚洲精品国产欧美kt∨| 粉嫩蜜臀av国产精品网站| 国产精品毛片久久久久久| 一本色道久久综合狠狠躁的推荐| 樱花影视一区二区| 日韩一区国产二区欧美三区| 国产精品一区二区在线观看网站| 国产精品视频麻豆| 欧美在线播放高清精品| 激情综合色播激情啊| 国产婷婷色一区二区三区四区| av一区二区三区| 石原莉奈一区二区三区在线观看| 久久在线免费观看| 一本色道久久综合亚洲91| 午夜视频一区二区| 久久理论电影网| 在线观看欧美日本| 激情丁香综合五月| 一区二区三区精品在线| 日韩欧美久久久| 99久久综合99久久综合网站| 亚洲福利视频三区| 国产日产欧美一区二区视频| 色婷婷综合中文久久一本| 美女视频黄 久久| 中文字幕一区视频| 欧美一级搡bbbb搡bbbb| 91在线视频18| 久久成人18免费观看| 亚洲综合丝袜美腿| 26uuu国产在线精品一区二区| 91婷婷韩国欧美一区二区| 精品一区二区三区在线播放视频| 1024亚洲合集| 久久一夜天堂av一区二区三区| 色一区在线观看| 高清国产午夜精品久久久久久| 日韩不卡免费视频| 亚洲曰韩产成在线| 国产精品不卡在线观看| 精品少妇一区二区三区视频免付费 | 亚洲一区二区欧美日韩 | 精品成人佐山爱一区二区| 91精彩视频在线| 99久久伊人精品| 成人精品视频网站| 国内国产精品久久| 日韩国产欧美三级| 亚洲小少妇裸体bbw| 亚洲欧美日韩国产手机在线 | 日韩午夜激情视频| 欧美在线观看一区| 91免费在线看| 色8久久人人97超碰香蕉987| 成+人+亚洲+综合天堂| 成人深夜在线观看| 国产河南妇女毛片精品久久久| 美女一区二区三区| 日韩电影免费一区| 日韩经典中文字幕一区| 日韩精品视频网| 天天射综合影视| 免费在线一区观看| 日本色综合中文字幕| 天堂在线一区二区| 视频精品一区二区| 毛片不卡一区二区| 美女一区二区在线观看| 久久国产生活片100| 激情五月播播久久久精品| 黄页视频在线91| 风流少妇一区二区| 91在线观看一区二区| 色综合色狠狠天天综合色| 色婷婷av一区二区三区gif | 久久精品一区二区三区四区| 久久久久久久久伊人| 国产日韩欧美精品综合| 中文字幕精品一区二区三区精品| 国产精品美女久久久久久 | 日本一区二区电影| 亚洲天堂成人在线观看| 亚洲精品成人在线| 日韩专区一卡二卡| 国产在线国偷精品免费看| 成人免费毛片片v| 91传媒视频在线播放| 欧美久久高跟鞋激| www一区二区| 中文字幕在线播放不卡一区| 亚洲综合激情网| 国产精品中文字幕一区二区三区| 99视频一区二区三区| 欧美高清视频www夜色资源网| 日韩精品一区二区三区四区| 国产精品视频你懂的| 亚洲成人在线观看视频| 韩国精品一区二区| 色哟哟欧美精品| 337p粉嫩大胆噜噜噜噜噜91av| 中文字幕一区二区三区在线观看| 午夜精品福利一区二区蜜股av| 精品一区二区三区免费毛片爱| 暴力调教一区二区三区| 欧美另类高清zo欧美| 国产清纯白嫩初高生在线观看91| 亚洲激情自拍视频| 国产超碰在线一区| 欧美老女人第四色| 国产精品美女www爽爽爽| 婷婷成人激情在线网| 国产成人超碰人人澡人人澡| 欧美日韩性生活| 国产精品久久久久9999吃药| 日本不卡中文字幕| 95精品视频在线| 26uuu久久综合| 日韩电影免费在线观看网站| av电影天堂一区二区在线观看| 91精品国产综合久久福利| 亚洲视频一区二区在线| 国内精品写真在线观看| 欧美日韩激情一区二区| 亚洲丝袜另类动漫二区| 韩国精品主播一区二区在线观看 | 91精品国产色综合久久不卡电影| 中文字幕第一区综合| 久久国产精品免费| 欧美日韩一区二区三区免费看 | 国产欧美日韩久久| 久热成人在线视频| 欧美三级乱人伦电影| 1000部国产精品成人观看| 国内精品嫩模私拍在线| 91麻豆精品国产91久久久更新时间 | 一本大道av一区二区在线播放| 精品对白一区国产伦| 麻豆精品一二三| 宅男在线国产精品| 日韩电影在线一区二区三区| 91国偷自产一区二区三区成为亚洲经典 | 亚洲私人黄色宅男| 福利电影一区二区三区| 国产丝袜欧美中文另类| 国产福利一区二区三区视频在线 | 欧美网站一区二区| 一区二区成人在线| 欧美无人高清视频在线观看| 伊人性伊人情综合网| 色综合天天综合色综合av | 欧美一区二区免费观在线| 亚洲不卡一区二区三区| 欧美三级在线视频| 三级在线观看一区二区|