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

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

?? generations.c

?? 一個完整的C語言遺傳程序包
?? C
字號:
/*SGPC: Simple Genetic Programming in C(c) 1993 by Walter Alden Tackett and Aviram Carmi  This code and documentation is copyrighted and is not in the public domain. All rights reserved.   - This notice may not be removed or altered.  - You may not try to make money by distributing the package or by using the   process that the code creates.  - You may not distribute modified versions without clearly documenting your   changes and notifying the principal author.  - The origin of this software must not be misrepresented, either by   explicit claim or by omission.  Since few users ever read sources,   credits must appear in the documentation.  - Altered versions must be plainly marked as such, and must not be   misrepresented as being the original software.  Since few users ever read   sources, credits must appear in the documentation.  - The authors are not responsible for the consequences of use of this    software, no matter how awful, even if they arise from flaws in it. If you make changes to the code, or have suggestions for changes,let us know!  (gpc@ipld01.hac.com)*/#ifndef lintstatic char generations_c_rcsid[]="$Id: generations.c,v 2.13 1993/04/22 07:39:12 gpc-avc Exp gpc-avc $";#endif/* * * $Log: generations.c,v $ * Revision 2.13  1993/04/22  07:39:12  gpc-avc * Removed old log messages * * Revision 2.12  1993/04/15  09:10:10  gpc-avc * Added bsd_qsort() * * */#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <errno.h>#include "gpc.h"#ifdef ANSI_FUNCVOID generations(  int		numpops,  int		numgens,  int		start_gen,  pop_struct	*pop,  int		demes,  pop_struct	***grid,  int		demerows,  int		demecols  )#elseVOID generations(numpops,numgens,start_gen,pop,demes,grid,demerows,demecols)  int		numpops;  int		numgens;  int		start_gen;  pop_struct	*pop;  int		demes;  pop_struct	***grid;  int		demerows;  int		demecols;#endif{  int	g, p, i, j;  float valperf;  for (g=start_gen; g<numgens; g++) {    if (g) {      for (p = 0; p<numpops; p++) {	if (demes) {	  for (i=0;i<demerows;i++) {	    for (j=0;j<demecols;j++) {	      if (pop[p].steady_state) {		/* not strictly necessary, really, but removes what		   i think would otherwise be a trend for the upper		   left hand of the grid to have much lower fitness		   than the lower right */		breed_new_population(grid[random_int(demerows)]				         [random_int(demecols)],				     p,demes,demerows,demecols,				     pop[p].steady_state);	      } else  {		breed_new_population(grid[i][j],p,demes,demerows,demecols,				   pop[p].steady_state);	      }	    }	  }	} else {	  breed_new_population(pop,p,0,0,0,pop[p].steady_state);	}	if (!(pop[p].steady_state)) {	  free_population(pop,p);	  load_new_population(pop,p);	}      }    } else {      /* generation 0 is random */      initialize_populations(numpops,pop);      for (p = 0; p<numpops; p++) {	if (pop[p].steady_state) {	  evaluate_fitness_of_populations(numpops,numgens,pop,p);	  if (pop[p].parsimony_factor > 0.0) add_parsimony_to_fitness(pop,p);	}      }    }    /* NOTE that we breed ALL populations before we evaluate their fitness       (except in the case of steady-state).  This is done to support       co-evolution where there are multiple interacting populations       who are co-evaluated at each generation */    for (p = 0; p<numpops; p++) {      if (!(pop[p].steady_state)) {	zero_fitness_of_populations(numpops,pop,p);	evaluate_fitness_of_populations(numpops,numgens,pop,p);	if (pop[p].parsimony_factor > 0.0) add_parsimony_to_fitness(pop,p);      }      normalize_fitness_of_population(pop,p);      sort_population_by_fitness(pop,p);      pop[p].best_of_gen_fitness =	pop[p].standardized_fitness[pop[p].fitness_sort_index[0]];      pop[p].best_of_generation =	copy_tree(pop[p].population[pop[p].fitness_sort_index[0]]);#if REP_ON_GEN == 1      report_on_generation(g,pop,p);#endif#if ((DEBUG == 1)||(DBSS == 1))      dump_population(pop,p);#endif      #if ((DBDEMES == 1)||(DBSS == 1))      if (demes) { /* this should alway be true, but still.... */	for (i=0;i<demerows;i++) {	  for (j=0;j<demecols;j++) {	    printf("\nDUMPING DEME row=%d col=%d\n",i,j);	    dump_population(grid[i][j],p);	  }	}      }#endif      valperf =	validate_fitness_of_tree(numpops, numgens, pop, p,				 pop[p].population[pop[p].fitness_sort_index[0]]);#if REP_ON_GEN == 1      printf("\nValidation Fitness= %f\n", valperf);#endif      if (!g) {	pop[p].best_of_run_fitness = valperf;	pop[p].best_of_run = copy_tree(pop[p].population[pop[p].fitness_sort_index[0]]);	pop[p].best_of_run_gen = 0;      }      else if (valperf < pop[p].best_of_run_fitness) {	pop[p].best_of_run_fitness = valperf;	free((char *)pop[p].best_of_run);	pop[p].best_of_run = copy_tree(pop[p].best_of_generation);	pop[p].best_of_run_gen = g;      }            free_tree(pop[p].best_of_generation);    }    if (CHECKPOINT_FREQUENCY) {      if (g && !(g % CHECKPOINT_FREQUENCY)) {	checkpoint(numpops, numgens, demes, demerows, demecols, pop, g);      }    }    if (terminate_early(numpops,numgens,pop)) break;  }  /* checkpoint the last generation, if it was not just saved */  if (CHECKPOINT_FREQUENCY) {    if ((numgens-1) % CHECKPOINT_FREQUENCY) {      checkpoint(numpops,numgens,demes,demerows,demecols,pop,numgens-1);    }  }}#ifdef ANSI_FUNCVOID dump_population(  pop_struct 	*pop,  int 		p  )#elseVOID dump_population(pop,p)  pop_struct	*pop;  int		p;#endif{  int	i, index;  for (i=0; i<pop[p].population_size; i++) {    index = (DEMES? i : pop[p].fitness_sort_index[i]);    printf("pop= %d standardized = %f, adjusted = %f, norm = %f\n",	   p,	   pop[p].standardized_fitness[index],	   pop[p].adjusted_fitness[index],	   pop[p].normalized_fitness[index]);    write_tree(pop,pop[p].population[index],pop[p].ckpt_format,stdout);  }}#ifdef ANSI_FUNCVOID zero_fitness_of_populations(  int		numpops,  pop_struct	*pop,  int		p				   )#elseVOID zero_fitness_of_populations(numpops,pop,p)  int		numpops;  pop_struct	*pop;  int		p;#endif{  int	i;  for (i=0; i<pop[p].population_size; i++) {    pop[p].standardized_fitness[i] 	= 0.0;    pop[p].adjusted_fitness[i] 		= 0.0;    pop[p].normalized_fitness[i] 	= 0.0;  }}int	global_p;#ifdef ANSI_FUNCstatic int fitness_compare(  int *i,  int *j)#elsestatic int fitness_compare(i,j)  int	*i;  int	*j;#endif{  pop_struct *pop = POP;  if (pop[global_p].normalized_fitness[*j] > pop[global_p].normalized_fitness[*i]) {    return 1;  } else if (pop[global_p].normalized_fitness[*j] < pop[global_p].normalized_fitness[*i]) {    return -1;  } else return 0;}    #ifdef ANSI_FUNCVOID sort_population_by_fitness(  pop_struct	*pop,  int 	p  )#elseVOID sort_population_by_fitness(pop,p)  pop_struct	*pop;  int		p;#endif{  int	i;  global_p = p; /* kludge for fitness_compare */  for (i=0; i<pop[p].population_size; i++) {    pop[p].fitness_sort_index[i] = i;  }#ifdef STD_QSORT  qsort(pop[p].fitness_sort_index, pop[p].population_size, sizeof(int),	fitness_compare);#else  bsd_qsort(pop[p].fitness_sort_index, pop[p].population_size, sizeof(int),	fitness_compare);#endif}#ifdef ANSI_FUNCVOID add_parsimony_to_fitness(  pop_struct 	*pop,  int 		p  )#elseVOID add_parsimony_to_fitness(pop,p)  pop_struct 	*pop;  int		p;#endif{  int	i;  for (i=0; i<pop[p].population_size; i++) {    pop[p].standardized_fitness[i] +=       ((float) count_crossover_pts(pop[p].population[i]))*pop[p].parsimony_factor;  }}#ifdef ANSI_FUNCVOID normalize_fitness_of_population(  pop_struct	*pop,  int 		p)#elseVOID normalize_fitness_of_population(pop,p)  pop_struct	*pop;  int	       	p;#endif{  float	sum = 0.0;  int	i;  for (i=0; i<pop[p].population_size; i++) {    sum += (pop[p].adjusted_fitness[i] = 1.0/(1.0 + pop[p].standardized_fitness[i]));  }  for (i=0; i<pop[p].population_size; i++) {    pop[p].normalized_fitness[i] = (pop[p].adjusted_fitness[i]/sum);  }}#ifdef ANSI_FUNCVOID report_on_generation(  int 		g,  pop_struct	*pop,  int 		p  )#elseVOID report_on_generation(g,pop,p)  int		g;  pop_struct	*pop;  int		p;#endif{  int	i;  float	sum = 0.0;  sum = 0.0;  for (i=0; i<pop[p].population_size; i++) {    sum += pop[p].standardized_fitness[i];  }    printf("\nGeneration %d Population %d   Avg Std Fitness: %f\n",	 g, p, sum/(float)pop[p].population_size);  printf("Best-of-gen fitness: %f\nBest-of-gen tree:\n",	 pop[p].best_of_gen_fitness);  write_tree(pop,pop[p].best_of_generation,pop[p].format,stdout);}#ifdef ANSI_FUNCVOID report_on_run(  int		numpops,  pop_struct	*pop  )#elseVOID report_on_run(numpops,pop)  int		numpops;  pop_struct	*pop;#endif{  int	p;  for (p=0; p<numpops; p++) {    printf("Best tree for pop#%d found on gen %d, VALIDATED fitness = %f:\n",	   p, pop[p].best_of_run_gen, pop[p].best_of_run_fitness);    write_tree(pop, pop[p].best_of_run, pop[p].format, stdout);  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu精品一区二区三区四区在线| 在线观看www91| 韩国精品主播一区二区在线观看 | 日韩和的一区二区| 亚洲国产精品综合小说图片区| 亚洲欧洲一区二区三区| 国产欧美视频在线观看| 亚洲国产成人一区二区三区| 久久精品一级爱片| 国产精品三级av在线播放| 日本一区二区三区dvd视频在线| 中文字幕乱码日本亚洲一区二区| 国产喷白浆一区二区三区| 国产欧美视频在线观看| 亚洲欧美偷拍三级| 亚洲国产成人av好男人在线观看| 亚洲成人福利片| 久久av资源网| 成年人国产精品| 在线观看亚洲a| 日韩欧美激情一区| 国产三级久久久| 洋洋av久久久久久久一区| 午夜精彩视频在线观看不卡| 免费成人在线网站| 粉嫩av亚洲一区二区图片| 色婷婷综合久色| 日韩欧美中文一区| 国产精品欧美一区二区三区| 亚洲1区2区3区4区| 国产精品99久| 欧美性欧美巨大黑白大战| 欧美成人精品高清在线播放| 国产精品久久国产精麻豆99网站 | 久久精品国产亚洲a| 成人小视频免费观看| 欧美色视频一区| 久久精子c满五个校花| 亚洲一区二区精品3399| 极品美女销魂一区二区三区免费| 9i看片成人免费高清| 日韩一级二级三级| 亚洲精品国产视频| 国产乱码字幕精品高清av | av网站免费线看精品| 91精品国产综合久久久久久漫画| 日本一区二区三级电影在线观看| 亚洲午夜激情av| 成人免费视频app| 欧美videossexotv100| 亚洲猫色日本管| 国产a久久麻豆| 日韩一区国产二区欧美三区| 一区二区三区四区在线免费观看| 国产高清精品久久久久| 欧美日韩精品专区| 亚洲免费在线观看| 成人一二三区视频| 久久久午夜电影| 麻豆91在线看| 制服丝袜亚洲网站| 亚洲成av人影院在线观看网| 91麻豆蜜桃一区二区三区| 国产欧美日韩在线看| 激情综合一区二区三区| 欧美videos中文字幕| 视频在线观看91| 欧美高清激情brazzers| 一区二区三区欧美久久| 色综合 综合色| 亚洲激情校园春色| 一道本成人在线| 亚洲免费在线电影| 欧美在线观看你懂的| 亚洲曰韩产成在线| 欧美亚日韩国产aⅴ精品中极品| 樱花草国产18久久久久| 一本大道久久a久久精品综合| 亚洲色图欧洲色图婷婷| 91色综合久久久久婷婷| 亚洲综合色噜噜狠狠| 欧美在线|欧美| 天堂在线亚洲视频| 欧美在线短视频| 蜜臀av亚洲一区中文字幕| 欧美xxxx老人做受| 国产麻豆成人精品| 国产精品久久99| 91一区二区在线观看| 亚洲福利视频导航| 欧美一区二区三区在线电影 | 久久先锋影音av| 丁香五精品蜜臀久久久久99网站| 国产精品入口麻豆原神| 91黄视频在线| 免费成人在线观看| 久久夜色精品国产噜噜av| 国产成人高清在线| 中文字幕一区二区三区不卡在线| 色综合久久综合网97色综合 | 久久免费视频色| 国产成人午夜99999| 一区精品在线播放| 69久久夜色精品国产69蝌蚪网| 久久99国产精品免费网站| 国产精品网站一区| 欧美特级限制片免费在线观看| 欧美aⅴ一区二区三区视频| 久久精品日产第一区二区三区高清版 | 在线免费亚洲电影| 美腿丝袜亚洲三区| 亚洲久草在线视频| 日韩视频国产视频| 91国在线观看| 国内精品伊人久久久久av一坑| 亚洲色图.com| 精品国产乱码久久| 欧美色图免费看| 成人h动漫精品一区二区| 天天影视网天天综合色在线播放| 国产午夜亚洲精品羞羞网站| 欧美视频三区在线播放| 白白色 亚洲乱淫| 免费欧美日韩国产三级电影| 亚洲蜜桃精久久久久久久| 欧美激情中文字幕一区二区| 欧美在线高清视频| 99久久精品国产一区二区三区| 日韩成人伦理电影在线观看| 亚洲欧美日韩人成在线播放| 欧美精品一区二区三区蜜桃视频| 色拍拍在线精品视频8848| 国产一区二区三区免费看| 亚洲国产成人porn| 亚洲欧美二区三区| 久久久不卡网国产精品二区| 日韩一级黄色大片| 欧美日韩亚洲丝袜制服| 色婷婷综合久色| 色综合一区二区三区| 粉嫩aⅴ一区二区三区四区| 久久99精品一区二区三区| 亚洲成a人v欧美综合天堂下载| 亚洲色图视频网| 亚洲人成影院在线观看| 国产精品美女久久久久久2018 | 91啪亚洲精品| 99久久精品国产麻豆演员表| 国产激情一区二区三区四区 | 国产日韩欧美在线一区| 精品国产乱码久久久久久浪潮| 欧美一区三区二区| 日韩一本二本av| 日韩视频免费观看高清完整版| 欧美一卡二卡在线观看| 7777精品伊人久久久大香线蕉超级流畅| 欧美在线视频不卡| 欧美日韩电影在线播放| 欧美剧情片在线观看| 宅男噜噜噜66一区二区66| 91精品国产全国免费观看| 欧美一区二区三区在线电影| 日韩视频一区二区在线观看| 精品国内片67194| 国产日韩综合av| 亚洲男女一区二区三区| 亚洲综合视频在线观看| 首页欧美精品中文字幕| 日本成人在线网站| 精品一区二区三区免费| 国产69精品久久久久777| 波多野结衣在线aⅴ中文字幕不卡| www.欧美日韩| 制服丝袜亚洲精品中文字幕| 精品va天堂亚洲国产| 国产精品久久久久久妇女6080| 亚洲人成网站在线| 日韩在线a电影| 色视频一区二区| 欧美www视频| 亚洲美女屁股眼交3| 日本在线不卡一区| 成人一区二区三区视频| 欧美中文字幕亚洲一区二区va在线 | 久久综合综合久久综合| 成人激情黄色小说| 欧美久久久久中文字幕| 久久精品日韩一区二区三区| 亚洲国产视频一区| 国产乱国产乱300精品| 色一区在线观看| 精品国产在天天线2019| 亚洲日穴在线视频| 国产精品综合网| 欧美日韩精品专区| 综合色天天鬼久久鬼色| 美女脱光内衣内裤视频久久网站| 国产成人精品网址| 日韩一区二区三区在线| 亚洲精品国产精华液|