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

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

?? operators.bak

?? genetic algorithm c code
?? BAK
字號:
/*=================================================            file : operators.c     purpose : messy GA operators    developed : 1991     author : Kalyanmoy Deb====================================================*/#include "mga.ext"INDV_ID select_pop()/*  determine which selection operator  */{	if (gen < init_select_gen)		return (init_select());	else 	{		if (thresholdingflag)			return(thresholding_select());		else			return(normal_select());	}}INDV_ID select(first, second)INDV_ID first, second;/*  selects the better of first and second  */{	if (oldpop[first].fitness == oldpop[second].fitness) {		if (tiebreakingflag)			return((oldpop[first].chromlen < \				oldpop[second].chromlen) ? first : second);		else 			return(flip(0.5) ? first : second);	}	else if (oldpop[first].fitness > oldpop[second].fitness)	{		return((maximizationflag) ? first : second);	}	else 	{		return((maximizationflag) ? second : first);	}}INDV_ID init_select()/*  tournament selection operator without shuffling  */{	INDV_ID first,second;	if (pick >= popsize-1)		pick = 0;	first = pick;	second = pick + 1;	pick += 2;	return (select(first, second));}INDV_ID normal_select()/*  tournament selection operator with shuffling  */{	INDV_ID first,second;	if (pick >= popsize-1)	{		pick = 0;		shuffle_pop();	}	first = shuffle[pick];	second = shuffle[pick+1];	pick += 2;	return (select(first, second));}INDV_ID thresholding_select()/*  tournament selection operator with thresholding  */{	register int i,j,k;	INDV_ID first, second, fittest, secondid;	int num1, num2, count, temp, threshold;	BOOLEAN flag;	unsigned *rawgn1, *rawgn2;	if (pick >= popsize-1)	{		pick = 0;		shuffle_pop();	}	/*  choose the first individual, default is first  */	fittest = first = shuffle[pick];	rawgn1 = oldpop[first].fullgene;	num1 = oldpop[first].genelen;	for (k=1,flag=0; (k<=shuffle_num && !flag); k++)	{		/*  choose the second individual  */		secondid = pick + k;		/*  if required, scroll to the begining of the array */		if (k >= (popsize - pick))			secondid = k - (popsize - pick);		second = shuffle[secondid];		rawgn2 = oldpop[second].fullgene;		num2 =  oldpop[second].genelen;		/*  count the number of matched genes  */		count = matched_genes(rawgn1, rawgn2);		/*  calculate the threshold value  */		threshold = (num1 * num2);		threshold /= problem_length;		if (count > threshold)		/*  if count > threshold, found a match, perform selection */		{			flag = 1;			temp = shuffle[secondid];			shuffle[secondid] = shuffle[pick + 1];			shuffle[pick + 1] = temp;			fittest = select(first, second);			pick++;		}	}	pick++;	return (fittest);}int matched_genes(rawgn1,rawgn2)unsigned *rawgn1;unsigned *rawgn2;/*  count the number of matched genes  */{	register int i, j;	int num = 0;	unsigned rawgn, mask = 1;	for (i = 0; i < bytesize; i++)	{		/*  get the template of common genes */		rawgn = (rawgn1[i] & rawgn2[i]);		/*  count the number of 1's in the template  */		for (j = 0; j < bytelimit[i]; j++)		{			if (((rawgn >> j) & mask) == 1)				num++;		}	}	return(num);}void cut_and_splice(chr1,chr2)struct INDIVIDUAL chr1,chr2;/*  cut and splice operators  */{	int chr3flag;	struct INDIVIDUAL chr3;	struct INDIVIDUAL chr4;	/*  if first chromosome needs to be cut  */	if (flip(cut_prob * chr1.chromlen))	{		cut(&chr1,&chr4);		/* if chr4 is not empty first element in chrom_stack is chr4 */		if (chr4.firstgene != NIL)			push_stack(&chrom_stack,chr4);	}	chr3.firstgene = NIL;	/*  if second chromosome needs to be cut  */	if (chr3flag = flip(cut_prob * chr2.chromlen))		cut(&chr2,&chr3);	/*  next element in the chrom_stack is chr2  */	push_stack(&chrom_stack,chr2);	/*  if chr3 is not empty, next element in the stack is chr3  */	if (chr3flag && chr3.firstgene != NIL)		push_stack(&chrom_stack,chr3);	/*  top most element is chr1  */	push_stack(&chrom_stack,chr1);	/*  check elements in the stack and splice  */	do  {	}   while (test_splice());}BOOLEAN test_splice()/*  splice two members of the stack, send 1 if there is a member left,    0 otherwise  */{	struct INDIVIDUAL chr1,chr2;	/*  get the first member  */	if (pop_stack(&chrom_stack,&chr1))	{		if (flip(splice_prob))		{			/*  check for another member in the stack  */			/*  splice if yes  */			if (pop_stack(&chrom_stack,&chr2))				splice(&chr1,&chr2);		}		push_stack(&newchrom_stack,chr1);		return(1);	}	else		return(0);}void cut(chr1,chr2)struct INDIVIDUAL *chr1,*chr2;/*   cut chr1 into two pieces: chr1, chr2   */{	register int i;	struct GENE *temp;	int cut_site;	char msg[PAGEWIDTH];	temp = (*chr1).firstgene;	/* find out cut site  */	cut_site = rnd(1,(*chr1).chromlen);	/*  cut chr1 at cut_site  */	for (i = 1; i < cut_site; i++)		temp = temp->nextgene;	/*   assign other members of chr1 and chr2  */	(*chr2).firstgene = temp->nextgene;	(*chr2).lastgene = (*chr1).lastgene;	(*chr1).lastgene = temp;	temp->nextgene = NIL;	(*chr2).chromlen = (*chr1).chromlen - cut_site;	(*chr1).chromlen = cut_site;	/*  allocate memory for chr2 fullchrom and fullgene  */	if(!((*chr2).fullchrom = (unsigned *)malloc(bytesize*sizeof(unsigned)))) {		sprintf(msg, "Insufficient memory for fullchrom\n");		print_error(msg);	}	if(!((*chr2).fullgene = (unsigned *)malloc(bytesize*sizeof(unsigned)))) {		sprintf(msg, "Insufficient memory for fullgene\n");		print_error(msg);	}}void splice(chr1,chr2)struct INDIVIDUAL *chr1,*chr2;/*   splice chr1 and chr2 to chr1  */{	/*  chr2 is appended behind chr1  */	(*chr1).lastgene->nextgene = (*chr2).firstgene;	(*chr1).lastgene = (*chr2).lastgene;	(*chr1).chromlen = (*chr1).chromlen + (*chr2).chromlen;	/*  destroy chr2 fullchrom and fullgene */	free((*chr2).fullchrom);	free((*chr2).fullgene);}void mutation(chr)struct INDIVIDUAL *chr;/*  if mutation probabalities are greater than zero, perform mutation  */{	register int i; 	struct GENE *temp;	if ((allelic_mut_prob > 0.0) || (genic_mut_prob > 0.0)) {		temp = (*chr).firstgene;		while (temp != NIL)		{			if (flip(allelic_mut_prob))			/*   perform allelic mutation  */			{				if (temp->allele == 1)					temp->allele = 0;				else 					temp->allele = 1;				allelicmutation++;			}			if (flip(genic_mut_prob))			/*  perform genic mutation  */			{				temp->genenumber = \					genic_mutation(temp->genenumber);				genicmutation++;			}			temp = temp->nextgene;		}	}}GENE_ID genic_mutation(num)GENE_ID num;/*  change the genenumber to other  */{	GENE_ID n;	do {		n = rnd(0, problem_length-1);	}  while (n == num);	return(n);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产盗摄一区二区| 精品91自产拍在线观看一区| 777午夜精品视频在线播放| 精品国产乱子伦一区| 亚洲综合精品久久| 成人免费看片app下载| 欧美日韩精品久久久| 亚洲人妖av一区二区| 狠狠色丁香久久婷婷综合丁香| 欧美三区在线视频| 亚洲欧美国产高清| 成人av电影免费观看| 久久亚洲精品小早川怜子| 日本一道高清亚洲日美韩| 在线免费观看成人短视频| 国产精品美女视频| 国产91丝袜在线播放| 久久综合九色综合欧美98| 日av在线不卡| 日韩欧美久久一区| 男男视频亚洲欧美| 欧美高清视频不卡网| 亚洲综合久久久| 日本韩国精品一区二区在线观看| 中文字幕日韩av资源站| 丁香婷婷深情五月亚洲| 国产午夜亚洲精品理论片色戒| 麻豆传媒一区二区三区| 欧美成人国产一区二区| 日本女优在线视频一区二区| 欧美日韩二区三区| 亚洲成av人影院| 欧美日韩国产免费一区二区 | 成人开心网精品视频| 日韩免费观看高清完整版| 日本伊人午夜精品| 88在线观看91蜜桃国自产| 奇米精品一区二区三区在线观看 | 亚洲高清不卡在线观看| 色婷婷av一区二区三区gif| 成人欧美一区二区三区小说 | 欧美视频日韩视频| 亚洲综合在线观看视频| 欧美伊人精品成人久久综合97| 亚洲最新在线观看| 欧美三日本三级三级在线播放| 亚洲成人高清在线| 欧美一区二区免费| 韩国女主播一区| 国产精品国产馆在线真实露脸| 成人性生交大片免费看中文 | 五月天一区二区三区| 91精品视频网| 国产美女在线精品| 国产欧美日产一区| 91黄色激情网站| 视频一区二区中文字幕| 久久综合成人精品亚洲另类欧美 | 欧美在线播放高清精品| 日韩国产精品久久| 国产女人aaa级久久久级| 在线观看成人免费视频| 美脚の诱脚舐め脚责91| 中文字幕永久在线不卡| 欧美性生活久久| 国产在线精品不卡| 亚洲一区二区三区在线看| 日韩区在线观看| 色诱视频网站一区| 麻豆成人久久精品二区三区小说| 国产人成亚洲第一网站在线播放| 在线观看成人小视频| 精品一区二区国语对白| 亚洲欧美aⅴ...| 精品福利一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 天天综合日日夜夜精品| 中文字幕欧美区| 欧美一区二区三区思思人| 国产91精品一区二区| 午夜成人免费电影| 国产精品日日摸夜夜摸av| 欧美一区二区在线看| av亚洲精华国产精华精华| 久久成人免费电影| 亚洲综合色区另类av| 欧美经典一区二区| 欧美一区二区三区四区五区| 91免费观看国产| 韩国理伦片一区二区三区在线播放| 亚洲欧美乱综合| 国产日韩欧美亚洲| 欧美一区二区福利在线| 欧美中文字幕不卡| 91丨九色丨蝌蚪丨老版| 国产凹凸在线观看一区二区| 青草国产精品久久久久久| 一区二区成人在线视频| 一区精品在线播放| 国产亚洲欧洲一区高清在线观看| 666欧美在线视频| 91久久精品一区二区二区| 成人蜜臀av电影| 国产福利一区二区三区在线视频| 另类小说一区二区三区| 亚洲成a天堂v人片| 亚洲与欧洲av电影| 一区二区日韩av| 一区二区三区鲁丝不卡| 中文字幕亚洲精品在线观看| 欧美国产激情二区三区| 国产欧美日韩另类视频免费观看| 精品粉嫩超白一线天av| 精品国产三级a在线观看| 欧美一级片在线| 日韩一级大片在线观看| 91精品国产品国语在线不卡| 欧美日韩不卡一区二区| 欧美色涩在线第一页| 欧美视频日韩视频在线观看| 欧美写真视频网站| 717成人午夜免费福利电影| 91精品国产综合久久蜜臀| 在线成人免费观看| 日韩亚洲欧美在线| 欧美精品一区二区三区久久久 | 亚洲大型综合色站| 日韩电影在线免费观看| 美女免费视频一区二区| 国内外成人在线视频| 极品美女销魂一区二区三区| 国内一区二区在线| 成人午夜在线播放| 色综合激情五月| 欧美一区二区三区视频在线 | 国产精品亚洲视频| 成a人片国产精品| 欧洲色大大久久| 日韩一级完整毛片| 国产日韩在线不卡| 18欧美亚洲精品| 午夜影视日本亚洲欧洲精品| 久久99精品一区二区三区三区| 国产精品影音先锋| 久久精品国产精品青草| 欧美成人欧美edvon| 国产suv精品一区二区三区| 午夜久久电影网| 久久99久久99| 色综合天天综合给合国产| 欧美一区永久视频免费观看| 国产亚洲人成网站| 一区二区成人在线观看| 精品一区二区在线播放| 91网站最新地址| 精品免费国产一区二区三区四区| 中日韩av电影| 青娱乐精品在线视频| 成人激情黄色小说| 日韩一级欧美一级| 亚洲美女少妇撒尿| 国产精品一区久久久久| 欧美人牲a欧美精品| 亚洲欧美综合色| 国产资源精品在线观看| 欧美伊人精品成人久久综合97 | 久久久国产一区二区三区四区小说 | 亚洲人成伊人成综合网小说| 理论电影国产精品| 在线观看国产精品网站| 欧美韩日一区二区三区四区| 日本亚洲最大的色成网站www| 粉嫩欧美一区二区三区高清影视| 337p亚洲精品色噜噜| 综合激情成人伊人| 粉嫩av亚洲一区二区图片| 日韩欧美高清在线| 午夜精品久久一牛影视| av毛片久久久久**hd| 久久久久久免费网| 精品在线播放午夜| 91精品国产综合久久国产大片| 亚洲精品视频一区二区| 成人禁用看黄a在线| 国产欧美日韩三区| 国产精品中文字幕欧美| 67194成人在线观看| 一区二区欧美在线观看| 色综合中文字幕国产| 亚洲精品在线观看视频| 偷拍日韩校园综合在线| 在线视频观看一区| 一区二区三区四区五区视频在线观看| 懂色av中文字幕一区二区三区| 精品88久久久久88久久久 | 一区二区三区加勒比av| www.99精品| 国产精品国产三级国产普通话蜜臀| 丁香啪啪综合成人亚洲小说 | 久久亚洲欧美国产精品乐播|