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

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

?? crosso~1.c

?? 簡(jiǎn)單遺傳算法經(jīng)典例子?。?SGPC: Simple Genetic Programming in C by Walter Alden Tackett and Aviram Carmi
?? C
字號(hào):
/*
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 lint
static char crossover_c_rcsid[]="$Id: crossover.c,v 2.6 1993/04/22 07:39:12 gpc-avc Exp gpc-avc $";
#endif

/*
 *
 * $Log: crossover.c,v $
 * Revision 2.6  1993/04/22  07:39:12  gpc-avc
 * Removed old log messages
 *
 * Revision 2.5  1993/04/14  05:07:57  gpc-avc
 * removed #ifdef TRACE code
 *
 *
 */

#include <stdio.h>
#include <malloc.h>
#include <errno.h>
#include "gpc.h"


/*
#define TRACEcaap
#define TRACEcafp
*/

#ifdef ANSI_FUNC

VOID crossover_at_any_pt(
  pop_struct 	*pop,
  tree 		*p1,
  tree 		*p2,
  tree 		**o1,
  tree 		**o2
  )
#else

VOID crossover_at_any_pt(pop,p1, p2, o1, o2)
  pop_struct	*pop;
  tree		*p1, *p2, **o1, **o2;
#endif
{
  tree	*st1, *st2, **st1ptr, **st2ptr;
  int	xpt1, xpt2;

  xpt1 = random_int(count_crossover_pts(p1));
  xpt2 = random_int(count_crossover_pts(p2));

  *o1 = copy_tree(p1);
  *o2 = copy_tree(p2);

  st1 = get_subtree(*o1, xpt1);
  st2 = get_subtree(*o2, xpt2);

  st1ptr = pointer_to_subtree(o1, st1);
  st2ptr = pointer_to_subtree(o2, st2);

  *st1ptr = st2;
  *st2ptr = st1;

  validate_crossover(pop, p1, p2, o1, o2);

}

#ifdef ANSI_FUNC

VOID crossover_at_func_pt(
  pop_struct 	*pop,
  tree 		*p1,
  tree 		*p2,
  tree 		**o1,
  tree 		**o2
  )
#else

VOID crossover_at_func_pt(pop, p1, p2, o1, o2)
  pop_struct 	*pop;
  tree		*p1, *p2, **o1, **o2;
#endif
{
  tree	*st1, *st2, **st1ptr, **st2ptr;
  int	xpt1, xpt2;

  xpt1 = random_int(count_function_pts(p1));
  xpt2 = random_int(count_function_pts(p2));

  *o1 = copy_tree(p1);
  *o2 = copy_tree(p2);

  st1 = get_function_subtree(*o1, xpt1);
  st2 = get_function_subtree(*o2, xpt2);

  st1ptr = pointer_to_subtree(o1, st1);
  st2ptr = pointer_to_subtree(o2, st2);

  *st1ptr = st2;
  *st2ptr = st1;

  validate_crossover(pop, p1, p2, o1, o2);
}


#ifdef ANSI_FUNC

VOID validate_crossover(
  pop_struct 	*pop,
  tree 		*p1,
  tree 		*p2,
  tree 		**o1,
  tree 		**o2
  )
#else

VOID validate_crossover(pop, p1, p2, o1, o2)
  pop_struct 	*pop;
  tree		*p1, *p2, **o1, **o2;
#endif
{
  int	d1, d2;

  d1 = depth_of_tree(*o1);
  d2 = depth_of_tree(*o2);

  if (d1 > pop[(*o1)->pop].max_depth_after_crossover) {
    free_tree(*o1);
    *o1 = copy_tree(p1);

  }	      
  if (d2 > pop[(*o2)->pop].max_depth_after_crossover) {
    free_tree(*o2);
    *o2 = copy_tree(p2);

  }	      
}

#ifdef ANSI_FUNC

int depth_of_tree(
	tree *t
	)
#else

int depth_of_tree(t)
tree	*t;
#endif
{
  int	i, n, maxn=0;
  pop_struct *pop = POP;

  if (t->nodetype == FUNCTION) {
    for (i=0; i<function_arity(t); i++) {
      n = depth_of_tree(t->type.func->arg[i]);
      maxn = max(maxn,n);
    }
    return 1+maxn;
  } else {
    return 0;
  }
}
  
#ifdef ANSI_FUNC

int count_crossover_pts(
	tree *t
	)
#else

int count_crossover_pts(t)
tree	*t;
#endif
{
  int	i, n=1;
  pop_struct *pop = POP;

  if (t->nodetype == FUNCTION) {
    for (i=0; i<function_arity(t); i++) {
      n += count_crossover_pts(t->type.func->arg[i]);
    }
  }
  return n;
}

#ifdef ANSI_FUNC

int count_function_pts(
	tree *t
	)
#else

int count_function_pts(t)
tree	*t;
#endif
{
  int	i, n=1;
  pop_struct *pop = POP;

  if (t->nodetype == FUNCTION) {
    for (i=0; i<function_arity(t); i++) {
      n += count_function_pts(t->type.func->arg[i]);
    }
    return n;
  } else {
    return 0;
  }
}

#ifdef ANSI_FUNC

tree *get_subtree(
	tree *t,
	int n
	)
#else

tree *get_subtree(t,n)
tree	*t;
int	n;
#endif
{
  int	m;

  m = n;
  return gs(t,&m);
}  

#ifdef ANSI_FUNC

tree *gs(
	tree *t,
	int *n
	)
#else

tree *gs(t,n)
tree	*t;
int	*n;
#endif
{
  tree	*st;
  int	i;
  pop_struct *pop = POP;

  if (!(*n)) return(t);
  else if (t->nodetype == FUNCTION) {
    for (i=0; i<function_arity(t); i++) {      
      --(*n);
      st = gs(t->type.func->arg[i],n);
      if (!(*n)) break;
    }
    return st;
  } else {
    return (tree *) NULL;
  }
}

#ifdef ANSI_FUNC

tree *get_function_subtree(
	tree *t,
	int n
	)
#else

tree *get_function_subtree(t,n)
tree	*t;
int	n;
#endif
{
  int	m;
  
  m = n;
  return gfs(t,&m);
}  

#ifdef ANSI_FUNC

tree *gfs(
	tree *t,
	int *n
	)
#else

tree *gfs(t,n)
tree	*t;
int	*n;
#endif
{
  tree	*st;
  int	i;
  pop_struct *pop = POP;

  if (!(*n)) return(t);
  for (i=0; i<function_arity(t); i++) {      
    if (t->type.func->arg[i]->nodetype == FUNCTION) {
      --(*n);
      st = gfs(t->type.func->arg[i],n);
      if (!(*n)) break;
    }
  }
  return st;
}

#ifdef ANSI_FUNC

tree **pointer_to_subtree(
	tree **pointer,
	tree *subt
	)
#else

tree 	**pointer_to_subtree(pointer, subt)
tree	**pointer, *subt;
#endif
{
  int	i;
  tree	**pos;
  pop_struct *pop = POP;

  if (*pointer == subt) {
    return pointer;
  }
  
  for (i=0; i<function_arity(*pointer); i++) {
    if ((*pointer)->type.func->arg[i]->nodetype == FUNCTION) {
      pos = pointer_to_subtree(&((*pointer)->type.func->arg[i]), subt);
      if ((pos != NULL) && ((*pos) == subt)) return pos;
    } else {
      if ((*pointer)->type.func->arg[i] == subt)
	return &((*pointer)->type.func->arg[i]);
    }
  }
  return ((tree **)NULL); /* make lint happy */
}
  if ((*pointer)->type.func->arg[i]->nodetype == FUNCTION) {
      pos = pointer_to_subtree(&((*pointer)->type.func->arg[i]), subt);
      if ((pos != NULL) && ((*pos) == subt)) return pos;
    } else {
      if ((*pointer)->type.func->arg[i] == subt)
	return &((*pointer)->type.func->arg[i]);
    }
  }
  return ((tree **)NULL); /* make lint happy */
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
紧缚捆绑精品一区二区| 国产99久久久精品| 国产精品久久久久9999吃药| 欧美日韩不卡在线| 97久久精品人人澡人人爽| 精品一区二区三区久久| 亚洲电影中文字幕在线观看| 国产精品卡一卡二| 国产亚洲va综合人人澡精品| 欧美色视频在线观看| 波多野结衣91| 国产69精品久久久久毛片| 激情综合网激情| 久久精品国产亚洲a| 亚洲3atv精品一区二区三区| 亚洲精品久久嫩草网站秘色| 日韩**一区毛片| 亚洲综合无码一区二区| 亚洲欧美日韩国产综合| 亚洲国产精品99久久久久久久久 | 天堂影院一区二区| 亚洲精品国产a久久久久久 | 精品不卡在线视频| 91精品国产91久久久久久一区二区 | 日本韩国一区二区| www.欧美色图| 成人教育av在线| 国产精品自拍网站| 国产精品一卡二卡| 国产老肥熟一区二区三区| 久久精品久久综合| 国产在线精品免费| 国产麻豆日韩欧美久久| 国产高清无密码一区二区三区| 韩国欧美国产一区| 国产精品一二三区在线| 国产成人aaa| 99久久国产免费看| 在线一区二区视频| 欧美日韩美少妇| 337p亚洲精品色噜噜| 7777女厕盗摄久久久| 日韩精品影音先锋| 国产色产综合色产在线视频| 欧美激情一区二区| 亚洲特黄一级片| 亚洲成人av资源| 另类的小说在线视频另类成人小视频在线 | 樱桃视频在线观看一区| 国产精品久久久久久久久动漫| 中文av一区特黄| 国产精品五月天| 亚洲视频资源在线| 一区二区高清在线| 青青草97国产精品免费观看| 精品在线你懂的| 国产大陆亚洲精品国产| 成人sese在线| 欧美色老头old∨ideo| 日韩欧美在线综合网| 久久久久久久久岛国免费| 中文字幕字幕中文在线中不卡视频| 亚洲精品网站在线观看| 欧美a一区二区| 高清在线观看日韩| 欧美专区在线观看一区| 日韩欧美电影一区| 亚洲人亚洲人成电影网站色| 首页国产欧美久久| 国产91精品一区二区麻豆亚洲| 一本一道久久a久久精品| 日韩三级视频在线观看| 国产精品夫妻自拍| 日本欧美在线看| 成人午夜视频在线| 777亚洲妇女| 国产精品美女久久久久久久网站| 亚洲综合色在线| 国产精品一区二区不卡| 在线看国产一区| 久久嫩草精品久久久精品| 一区二区三区在线免费视频 | 国产麻豆精品一区二区| 色欲综合视频天天天| 久久色视频免费观看| 亚洲一区二区三区美女| 成人性视频免费网站| 制服丝袜日韩国产| 亚洲欧洲精品一区二区三区| 免费高清在线一区| 一本色道久久综合精品竹菊| 久久久精品人体av艺术| 亚洲成av人片| av影院午夜一区| 精品国产91乱码一区二区三区| 亚洲美女屁股眼交3| 国产精品456露脸| 欧美一级淫片007| 亚洲一区免费观看| 北条麻妃一区二区三区| 日韩视频一区在线观看| 亚洲综合色网站| 不卡视频在线观看| 国产亚洲精品超碰| 日本免费新一区视频| 欧美视频精品在线观看| 亚洲欧美怡红院| 国产白丝网站精品污在线入口| 欧美一区二区三区系列电影| 亚洲国产成人tv| 日本韩国精品一区二区在线观看| 久久精品夜色噜噜亚洲aⅴ| 日本在线观看不卡视频| 欧美三级乱人伦电影| 亚洲精品自拍动漫在线| 成人午夜大片免费观看| 久久久夜色精品亚洲| 美女视频黄免费的久久| 欧美日韩精品一区视频| 亚洲成a人片在线观看中文| 欧美曰成人黄网| 亚洲乱码国产乱码精品精小说 | 欧美一区二区视频在线观看2020| 亚洲免费观看高清| 97久久精品人人做人人爽| 国产精品乱人伦中文| 高清不卡一区二区在线| 国产精品视频线看| 成人午夜激情在线| 国产精品久久久久久户外露出| 成人网页在线观看| 经典三级在线一区| 精品国产乱码久久久久久浪潮| 另类的小说在线视频另类成人小视频在线| 欧美丰满美乳xxx高潮www| 亚洲h在线观看| 91精品久久久久久蜜臀| 久久精品理论片| 久久久久久久久久久久久女国产乱 | www国产成人| 国产高清久久久| 国产精品久久久久久久久动漫| 99久久国产综合精品女不卡| 亚洲欧美视频在线观看视频| 色噜噜狠狠成人中文综合| 亚洲午夜三级在线| 日韩一区二区三区视频在线观看| 美女视频黄 久久| 国产欧美日韩一区二区三区在线观看| 国产成人亚洲精品青草天美 | 国产精品自产自拍| 国产精品久久久久9999吃药| 日本国产一区二区| 日本成人在线网站| 久久精品欧美一区二区三区不卡 | 日韩欧美不卡一区| 国产精品888| 一区二区在线免费观看| 亚洲第一福利一区| 日韩欧美成人一区二区| 成人精品一区二区三区四区| 一区二区在线观看免费视频播放| 欧美美女一区二区三区| 国产精品一线二线三线| 亚洲欧美一区二区三区国产精品 | 7777精品伊人久久久大香线蕉 | 99久久精品国产网站| 亚洲午夜激情av| 精品国产免费久久| 91丨国产丨九色丨pron| 日韩av电影天堂| 国产精品传媒入口麻豆| 欧美日韩aaaaaa| 成人h动漫精品| 日韩精品一二三| 国产精品嫩草影院av蜜臀| 欧美日韩电影一区| 成人伦理片在线| 麻豆91在线播放| 亚洲免费在线播放| 久久伊99综合婷婷久久伊| 欧美在线三级电影| 国产91精品欧美| 蜜乳av一区二区| 亚洲一区自拍偷拍| 欧美国产激情一区二区三区蜜月 | 国产精品久久久久永久免费观看| 欧美日韩成人综合| 成人免费观看男女羞羞视频| 青青草91视频| 亚洲一区二区3| 国产欧美日韩视频在线观看| 欧美年轻男男videosbes| 国产91精品在线观看| 日韩专区中文字幕一区二区| 最新成人av在线| 国产片一区二区| 欧美变态口味重另类| 欧美乱妇23p| 欧美自拍丝袜亚洲|