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

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

?? smlp-2.cpp

?? 多目標(biāo)分析的源程序
?? CPP
字號:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "conio.h"
#include <math.h>
#include "UTLab.h"

#define FollowerNumber 3    //Number of followers in the decentralized decision-making problems.
#define PrintNumber   100   //
#define LN 2                // number of variables controled by the leader.
#define FN 2                // number of variables controled by each follower.
#define LM 1                // number of objectives of the leader.
#define FM 1                // number of objectives of each follower.
#define LeaderType 1        // 1=max;-1=min.
#define LeaderGen 500      // maximum generation number of genetic algorithm at the leader's level.
#define PopSize 50          //Population size in genetic algorithm.
#define PrMutation 0.1      //Probability of one chromosome's being selected to mutate.
#define PrCrossover 0.2     //Probability of one chromosome's being selected to crossover.  

static void Simu(unsigned FollowerNo,double Input[9], double Output[2]);

// Define variables and functions related to genetic algorithm procedure of the leader's level. 
double LeaderObj[PopSize+1][LM+1],LeaderChromosome[PopSize+1][LN+1];

static void LeaderInitialization(void);
static int  LeaderConstraintCheck(double LeaderSolution[LN+1]);
static void LeaderEvaluation(unsigned Gen);
static void LeaderSelection(void);
static void LeaderCrossover(void);
static void LeaderMutation(void);
static void LeaderObjective(void);


// Define the routhllete used in selection process of GA procedure.
double Roulette[PopSize+1];
static void RouletteInitialization(void);

static void Simu(unsigned FollowerNo,double Input[3], double Output[2])
{
	unsigned i;

	double xi1,xi2,xi3,xi;
	double z[5001];
	if(FollowerNo==0)
	{
		for(i=1;i<=5000;i++)
		{
			xi=myn(4,1);
			z[i]=sqrt(Input[1]*Input[2]+Input[3]*Input[4]+Input[5]*Input[6]+Input[7]*Input[8]+xi*xi);
		}
		Output[1]=findminn(z,1,5000,500);
	}
	if(FollowerNo==1)
	{
		for(i=1;i<=5000;i++)
		{
			xi1=myn(1,1);
			z[i]=sqrt(Input[1]*Input[1]+Input[3]*Input[3]+2*Input[4]*Input[4]+xi1*xi1);
		}
		Output[1]=findminn(z,1,5000,1000);
	}
	if(FollowerNo==2)
	{
		for(i=1;i<=5000;i++)
		{
			xi2=myn(2,1);
			z[i]=sqrt(Input[1]*Input[1]+Input[3]*Input[3]+2*Input[4]*Input[4]+xi2*xi2);
		}
		Output[1]=findminn(z,1,5000,1000);
	}	
	if(FollowerNo==3)
	{
		for(i=1;i<=5000;i++)
		{
			xi3=myn(3,1);
			z[i]=sqrt(Input[1]*Input[1]+Input[3]*Input[3]+2*Input[4]*Input[4]+xi3*xi3);
		}
		Output[1]=findminn(z,1,5000,1000);
	}
}

static int LeaderConstraintCheck(double LeaderDecision[])
{
	if(0>LeaderDecision[1]||LeaderDecision[1]>10) return 0;
	if(0>LeaderDecision[2]||LeaderDecision[2]>10) return 0;
	if(LeaderDecision[1]+LeaderDecision[2]>10) return 0;
	return 1;
}

static void LeaderInitialization(void)
{
	double LeaderDecision[LN+1];
	unsigned i,j;
	for(i=1; i<=PopSize; i++)
	{
		do
		{
			LeaderDecision[1]=myu(0,10);
			LeaderDecision[2]=myu(0,10);
		}while(LeaderConstraintCheck(LeaderDecision)==0);
		for(j=1;j<=LN;j++) 
			LeaderChromosome[i][j]=LeaderDecision[j];
	}
}

int main()
{
	srand(100);
	//UncertainFunctionAppoximation();
	RouletteInitialization();
	LeaderInitialization();
	LeaderEvaluation(0);
	FILE *fp;
	fp=fopen("RESULT.dat","w");
	unsigned i,j,FollowerNo;
	for(i=1;i<=LeaderGen;i++) 
	{
		LeaderSelection();
		LeaderCrossover();
		LeaderMutation();
		LeaderEvaluation(i);
		if(i%PrintNumber==0)
		{
			printf("\nGeneration NO.%d\n", i);
			fprintf(fp,"\nGeneration NO.%d\n",i);
			printf("Leader's decision x=(");
			fprintf(fp,"Leader's decision x=(");
			double LeaderDecision[LN+1],FollowerDecision[FollowerNumber+1][FN+1];
			for(j=1;j<=LN;j++) 
			{
				LeaderDecision[j]=LeaderChromosome[0][j];
				printf("%f",LeaderChromosome[0][j]);
				if(j<LN) printf(",");
				fprintf(fp,"%f",LeaderChromosome[0][j]);
				if(j<LN) fprintf(fp,",");
			}
			printf("),");
			fprintf(fp,"),");
			printf(" objective F=");
			fprintf(fp," objective F=");
			for(j=1;j<=LM;j++) 
			{
				printf("%f.\n",LeaderObj[0][j]);
				fprintf(fp,"%f.\n",LeaderObj[0][j]);
			}

			FollowerDecision[1][1]=LeaderDecision[2];
			FollowerDecision[1][2]=0;
			FollowerDecision[2][1]=LeaderDecision[2]/2;
			FollowerDecision[2][2]=0;
			FollowerDecision[3][1]=0;
			FollowerDecision[3][2]=LeaderDecision[2]/4;

			double Input[9],Output[2];
			for(j=1;j<=LN;j++) 
			{
				Input[j]=LeaderChromosome[0][j];
			}
			for(FollowerNo=1;FollowerNo<=FollowerNumber;FollowerNo++) 
			{
				for(j=1;j<=FN;j++) 
				{
					Input[LN+j]=FollowerDecision[FollowerNo][j];
				}
				Simu(FollowerNo,Input,Output);
				printf("Follower%d's decision y%d=(",FollowerNo,FollowerNo);
				fprintf(fp,"Follower%d's decision y%d=(",FollowerNo,FollowerNo);
				for(j=1;j<=FN;j++) 
				{
					printf("%f",FollowerDecision[FollowerNo][j]);
					if(j<FN) printf(",");
					fprintf(fp,"%f",FollowerDecision[FollowerNo][j]);
					if(j<FN) fprintf(fp,",");
				}
				printf("),");
				fprintf(fp,"),");
				printf(" objective f%d=",FollowerNo);
				fprintf(fp," objective f%d=",FollowerNo);
				for(j=1;j<=FM;j++) 
				{
					printf("%6.4f.\n",Output[j]);
					fprintf(fp,"%6.4f.\n",Output[j]);
				}
			}

		}
	}
	fclose(fp);
	return 1;
}

//Define the function to calculate a population's objective function value. 
static void LeaderObjective(void)
{
	double LeaderDecision[LN+1],FollowerDecision[FollowerNumber+1][FN+1];
	double Input[MaxDimInput],Output[MaxDimOutput];
	unsigned i,j;
	for(i=1;i<=PopSize;i++) 
	{
		for(j=1;j<=LN;j++) 
		{
			LeaderDecision[j]=LeaderChromosome[i][j];
		}
		FollowerDecision[1][1]=LeaderDecision[2];   FollowerDecision[1][2]=0;
		FollowerDecision[2][1]=LeaderDecision[2]/2; FollowerDecision[2][2]=0;
		FollowerDecision[3][1]=0; FollowerDecision[3][2]=LeaderDecision[2]/4;
		for(j=1;j<=LN;j++) Input[j]=LeaderDecision[j];
		Input[1]=LeaderDecision[1];      Input[2]=LeaderDecision[2];
		Input[3]=FollowerDecision[1][1]; Input[4]=FollowerDecision[1][2];
		Input[5]=FollowerDecision[2][1]; Input[6]=FollowerDecision[2][2];
		Input[7]=FollowerDecision[3][1]; Input[8]=FollowerDecision[3][2];
		Simu(0,Input,Output);
		LeaderObj[i][1]=Output[1];
	}
	for(i=1;i<=PopSize;i++) 
	{
		LeaderObj[i][0]=LeaderObj[i][1];
	}	
}

static void LeaderEvaluation(unsigned Gen)
{
	double temp;
	unsigned i,j,k,label;
	LeaderObjective();
	if(Gen==0)
	{
		for(i=0;i<=LM;i++) LeaderObj[0][i]=LeaderObj[1][i];
		for(i=1;i<=LN;i++) LeaderChromosome[0][i]=LeaderChromosome[1][i];
	}

	for(i=0;i<=PopSize;i++)
	{
		label=0;  
		temp=LeaderObj[i][0];
		for(j=i+1;j<=PopSize;j++)
		{
			if((LeaderType*temp)<(LeaderType*LeaderObj[j][0])) 
			{
				temp=LeaderObj[j][0];
				label=j;
			}
		}
		if(label!=0) 
		{
			for(k=0;k<=LM;k++) 
			{
				temp=LeaderObj[i][k];
				LeaderObj[i][k]=LeaderObj[label][k];
				LeaderObj[label][k]=temp;
			}
			for(j=1;j<=LN;j++) 
			{
				temp=LeaderChromosome[i][j];
				LeaderChromosome[i][j]=LeaderChromosome[label][j];
				LeaderChromosome[label][j]=temp;
			}
		}
	}
}

static void LeaderSelection(void)
{
	double r, temp[PopSize+1][LN+1];
	unsigned i,j,k;
	for(i=1;i<=PopSize;i++) 
	{
		r=myu(0,0.785);
		for(j=0;j<=PopSize; j++) 
		{
			if(r<=Roulette[j]) 
			{
				for(k=1;k<=LN;k++) temp[i][k]=LeaderChromosome[j][k];
				break;
			}
		}
	}
	for(i=1; i<=PopSize; i++)
		for(k=1;k<=LN;k++)
			LeaderChromosome[i][k]=temp[i][k];
}

static void LeaderCrossover(void)
{
	int   i, j, jj, k, pop;
	double r, x[LN+1], y[LN+1];
	pop=PopSize/2;
	for(i=1; i<=pop; i++) 
	{
		if(myu(0,1)>PrCrossover) continue;
		j=1+rand()%PopSize;
		jj=1+rand()%PopSize;
		do
		{
			r=myu(0,1);
			for(k=1;k<=LN;k++) 
			{
				x[k]=r*LeaderChromosome[j][k]+(1-r)*LeaderChromosome[jj][k];
			}
		}while(LeaderConstraintCheck(x)==0);
		do
		{
			r=myu(0,1);
			for(k=1;k<=LN;k++) 
			{
				y[k]=r*LeaderChromosome[jj][k]+(1-r)*LeaderChromosome[j][k];
			}
		}while(LeaderConstraintCheck(y)==0);

		for(k=1;k<=LN;k++) LeaderChromosome[j][k]=x[k];
		for(k=1;k<=LN;k++) LeaderChromosome[jj][k]=y[k];
	}
}

static void LeaderMutation(void)
{
	unsigned i, j, k;
	double x[LN+1],y[LN+1],infty,direction[LN+1];
	double INFTY=10,precision=0.0001;
	for(i=1; i<=PopSize; i++) 
	{
		if(myu(0,1)>PrMutation) continue;
		for(k=1;k<=LN;k++) x[k]=LeaderChromosome[i][k];
		for(k=1; k<=LN; k++)
		{
			if(myu(0,1)<0.5) direction[k]=myu(-1,1);
			else direction[k]=0;
		}
		infty=myu(0,INFTY);
		while(infty>precision) 
		{
			for(j=1;j<=LN;j++) y[j]=x[j]+infty*direction[j];
			if(LeaderConstraintCheck(y)==1) 
			{
				for(k=1;k<=LN;k++) 
					LeaderChromosome[j][k]=y[k];
				break;
			}
			else
			{
				infty=myu(0,infty);
			}
		}
	}
}

static void RouletteInitialization(void)
{
	Roulette[0]=0.05; 
	double temp=0.05;
	for(unsigned i=1;i<=PopSize;i++) 
	{
		temp=temp*0.95; 
		Roulette[i]=Roulette[i-1]+temp;
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久蜜桃一区二区| 蜜臀av一区二区在线免费观看| 精品噜噜噜噜久久久久久久久试看| 91蜜桃免费观看视频| 高清不卡一区二区在线| 久久超碰97人人做人人爱| 天天色天天爱天天射综合| 一级精品视频在线观看宜春院| 日韩理论电影院| 亚洲欧洲国产日韩| 一区二区中文视频| 亚洲精品一二三四区| 亚洲激情在线播放| 午夜精品久久久久久久99水蜜桃| 午夜欧美一区二区三区在线播放| 视频一区国产视频| 日韩成人一区二区三区在线观看| 日产国产高清一区二区三区| 日韩精品三区四区| 精品一区二区三区在线观看 | 久久精品国产秦先生| 麻豆国产精品一区二区三区| 久久99热狠狠色一区二区| 国产精品一区不卡| 93久久精品日日躁夜夜躁欧美| 91丨九色丨国产丨porny| 亚洲欧美日韩一区二区| 亚洲一区二区在线观看视频| 婷婷中文字幕综合| 黑人巨大精品欧美黑白配亚洲| 国产资源在线一区| av在线不卡电影| 欧美三级蜜桃2在线观看| 欧美一区二区三区视频免费播放 | 欧美一区二区三区免费视频| 91精品国产综合久久久蜜臀粉嫩| 91国产丝袜在线播放| 91亚洲资源网| 欧美亚洲动漫精品| 日韩精品一区二区三区中文精品| 国产亚洲综合性久久久影院| 一区精品在线播放| 日本女优在线视频一区二区| 国产精品资源在线观看| 欧美午夜一区二区三区免费大片| 日韩一区二区精品葵司在线| 久久精品免视看| 亚洲国产色一区| 国产精品白丝jk白祙喷水网站| 在线精品视频免费播放| 精品少妇一区二区三区日产乱码| 自拍偷自拍亚洲精品播放| 日本中文字幕不卡| 成人av中文字幕| 欧美一级免费观看| 成人欧美一区二区三区黑人麻豆 | 亚洲欧美另类久久久精品| 石原莉奈在线亚洲三区| 成人福利视频网站| 日韩欧美亚洲另类制服综合在线| 最新日韩在线视频| 另类小说视频一区二区| 99热99精品| 精品久久久久久久久久久久久久久 | 欧美国产精品v| 日本视频中文字幕一区二区三区| 91免费视频网| 2020国产精品自拍| 日韩精品国产精品| 色综合久久久网| 久久久久一区二区三区四区| 午夜一区二区三区视频| 亚洲超碰精品一区二区| 国产成+人+日韩+欧美+亚洲| 色偷偷久久人人79超碰人人澡| 欧美成人国产一区二区| 亚洲一区中文在线| 不卡的电影网站| 欧美哺乳videos| 天堂蜜桃一区二区三区 | 欧美日韩在线一区二区| 国产精品视频在线看| 老司机免费视频一区二区三区| 欧美日韩视频专区在线播放| 综合久久给合久久狠狠狠97色| 国产精品一二二区| 精品日本一线二线三线不卡| 亚洲成人动漫一区| 色哟哟一区二区| 国产精品久久久久久久久动漫| 久久精品国产一区二区三 | 日韩和的一区二区| 91豆麻精品91久久久久久| 国产精品久久久久9999吃药| 国产不卡在线一区| 欧美经典一区二区三区| 激情欧美一区二区三区在线观看| 欧美一区二区大片| 奇米一区二区三区| 91精品国产色综合久久久蜜香臀| 午夜精品一区二区三区电影天堂 | 中文字幕乱码日本亚洲一区二区| 国产又粗又猛又爽又黄91精品| 精品久久久久99| 狠狠色综合色综合网络| 欧美xxxx老人做受| 国产乱人伦偷精品视频不卡| 久久久久国产精品人| 国v精品久久久网| 中文字幕欧美一| 99精品黄色片免费大全| 亚洲色图.com| 在线精品视频小说1| 亚洲香肠在线观看| 在线不卡一区二区| 日本女优在线视频一区二区| 欧美一区二区三区视频在线观看 | 色欧美88888久久久久久影院| 最新国产成人在线观看| 91久久线看在观草草青青| 亚洲免费av高清| 欧美午夜精品一区二区蜜桃| 亚洲精品乱码久久久久久黑人| 在线免费观看成人短视频| 天天影视涩香欲综合网| 欧美tickling网站挠脚心| 日韩欧美国产1| 丁香激情综合五月| 一区二区三区av电影| 6080yy午夜一二三区久久| 久久99久久99小草精品免视看| 国产亚洲成av人在线观看导航| 99精品久久99久久久久| 亚洲v日本v欧美v久久精品| 欧美蜜桃一区二区三区| 欧美aa在线视频| 国产视频在线观看一区二区三区 | 中文字幕亚洲精品在线观看| 色综合久久六月婷婷中文字幕| 日韩高清中文字幕一区| 久久久久久久综合日本| 91在线精品一区二区| 亚洲图片欧美综合| 精品对白一区国产伦| 高清国产一区二区| 亚洲福利一区二区三区| 欧美哺乳videos| 91亚洲午夜精品久久久久久| 日本中文字幕一区二区视频| 国产三区在线成人av| 日本电影亚洲天堂一区| 国产乱码字幕精品高清av| 亚洲一级在线观看| 国产午夜精品福利| 欧美另类z0zxhd电影| 成人黄动漫网站免费app| 偷拍自拍另类欧美| 国产精品精品国产色婷婷| 在线成人av网站| 91麻豆免费观看| 国产在线播放一区| 三级精品在线观看| 中文字幕一区二区三区色视频| 日韩精品影音先锋| 色成人在线视频| 国产成人免费av在线| 日本女人一区二区三区| 伊人开心综合网| 国产亚洲精品7777| 日韩三级中文字幕| 欧美日韩亚州综合| av欧美精品.com| 国精产品一区一区三区mba桃花| 亚洲成人一区二区| 亚洲欧美日韩在线| 欧美激情在线一区二区| 精品人在线二区三区| 88在线观看91蜜桃国自产| 色噜噜狠狠一区二区三区果冻| 国产suv精品一区二区6| 久久精品国产一区二区三区免费看| 亚洲一区免费观看| 国产麻豆精品在线| 欧美日韩欧美一区二区| 国产一区二区三区四区五区美女 | 欧美日韩免费在线视频| 国产高清久久久久| 日韩成人精品在线观看| 一个色在线综合| 中文字幕制服丝袜一区二区三区| 日韩精品一区二| 欧美日韩免费一区二区三区| 91丝袜国产在线播放| 久久久国际精品| 日韩欧美在线影院| 91精品一区二区三区久久久久久 | 亚洲欧洲国产日韩| 中文在线资源观看网站视频免费不卡 | 国产麻豆一精品一av一免费 | 欧美在线影院一区二区|