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

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

?? sga.txt

?? 簡單的遺傳算法
?? TXT
字號:
#include <float.h>
#include <time.h>
#include <math.h>
#include <graphics.h>
#include <stdlib.h>

#define maxpop 100
#define maxstring 64
struct pp
  {unsigned char chrom[maxstring];
   float x,fitness;
   unsigned int parent1,parent2,xsite;
   }
struct pp   *oldpop;
struct pp   *newpop;
struct pp   *p1;
unsigned int  popsize,lchrom,gen,maxgen,nmutation,ncross,jcross,maxpp,
              minpp,jrand;
float   pcross,pmutation,sumfitness,avg,max,min,seed,rj[maxpop],
        oldrand[maxpop];
double  coef;
float   objfunc(float);
void    statistics();
int     select();
int     flip(float);
int     crossover();
int     mutation();
void    generation();
void    initialize();
void    report();
void    initpop();
void    initdata();
void    initreport();
float   decode();
float   random1();
float   randomize1();

main()
{
 long int  gen,k,j;
float  oldmax;
int    oldmaxpp;
if(!(oldpop=(struct pp*)malloc(maxpop*sizeof(struct pp))))
    {printf("memory request failed!\n");exit(0);}
if(!(newpop=(struct pp*)malloc(maxpop*sizeof(struct pp))))
    {printf("memory request failed!\n");exit(0);}
if(!(p1=(struct pp*)malloc(maxpop*sizeof(struct pp))))
    {printf("memory request failed!\n");exit(0);}
for(k=0;k<maxpop;k++) oldpop[k].chrom[0]='\0';
for(k=0;k<maxpop;k++) newpop[k].chrom[0]='\0';
gen=0;
initialize();
clrscr();
p1=newpop;
newpop=oldpop;
statistics(newpop);
report(gen);
newpop=p1;
getch();
do{
   gen=gen+1;
   randomize();
   oldmax=max;
   oldmaxpp=maxpp;
   generation();
   statistics(newpop);
   if(max<oldmax)
      {for(j=0;j<lchrom;j++)
         newpop[minpp].chrom[j]=oldpop[oldmaxpp].chrom[j];
       newpop[minpp].x=oldpop[oldmaxpp].x;
       newpop[minpp].fitness=oldpop[oldmaxpp].fitness;
       statistics(newpop);
      }
   report(gen);
   p1=oldpop;
   oldpop=newpop;
   newpop=p1;
   getch();
  }while (gen<maxgen);
  free(p1);
  free(oldpop);
  free(newpop);
  exit(0);
}

float objfunc(float x1)/*個體適應度計算*/
  {float y;
   y=3.1415926*x1;
   y=sin(2.0*y);
   return y*y;
  }

void statistics(pop) /*群體適應度計算*/
struct pp *pop;
  {int j;
   sumfitness=pop[0].fitness;
   min=pop[0].fitness;
   max=pop[0].fitness;
   minpp=0;
   maxpp=0;
   for(j=1;j<popsize;j++)
     {sumfitness=sumfitness+pop[j].fitness;
      if(pop[j].fitness>max)
        {max=pop[j].fitness;maxpp=j;}
      if(pop[j].fitness<min)
        {min=pop[j].fitness;minpp=j;}
     }
   avg=sumfitness/(float)popsize;
  }

void generation/*群體更新*/
  {unsigned int j,mate1,mate2;
   j=0;
   do{
      mate1=select();
      mate2=select();
      crossover(oldpop[mate1].chrom,oldpop[mate2].chrom,j);
      newpop[j].x=(float)decode(newpop[j].chrom);
      newpop[j].fitness=objfunc(newpop[j].x);
      newpop[j].parent1=mate1;
      newpop[j].parent2=mate2;
      newpop[j].xsite=jcross;
      newpop[j+1].x=(float)decode(newpop[j+1].chrom);
      newpop[j+1].fitness=objfunc(newpop[j+1].x);
      newpop[j+1].parent1=mate1;
      newpop[j+1].parent2=mate2;
      newpop[j+1].xsite=jcross;
      j=j+2;      
   }while(j<popsize);
  }

void initdata()/*控制參數輸入*/
  {unsigned int ch,j;
   clrscr();
   printf("------------------------------\n");
   printf("A Simple Genetic Algorithm-SGA\n");
   printf("(c)X.F.CHEN JUNE 1994\n");
   printf("  All Rights Reserved\n");
   printf("------------------------------\n");
   pause();clrscr();
   printf("********SGA DATA ENTRY AND INITIALIZATION********\n");
   printf("\n");
   printf("Enter population size-------->\n");scanf("%d",&popsize);
   printf("Enter chromosome length-------->\n");scanf("%d",&lchrom);
   printf("Enter max.generation-------->\n");scanf("%d",&maxgen);
   printf("Enter crossover probability-------->\n");scanf("%d",&pcross);
   printf("Enter mutation probability-------->\n");scanf("%d",&pmutation);
   clrscr();
   randomize();
   randomize1();
   nmutation=0;
   ncross=0;
  }

void initreport()/*初始化信息輸出*/
  {int j,k;
   printf("------------------------------\n");
   printf("A Simple Genetic Algorithm-SGA\n");
   printf("(c)X.F.CHEN JUNE 1994\n");
   printf("  All Rights Reserved\n");
   printf("------------------------------\n");
   printf("SGA Parameters\n");
   printf("-----------------\n");
   printf("\n");
   printf("Population size(popsize)=%d\n",popsize);
   printf("Chromosome length(lchrom)=%d\n",lchrom);
   printf("Maximum#of generation(maxgen)=%d\n",maxgen);
   printf("Crossover probability(pcross)=%f\n",pcross);
   printf("Mutation probability(pmutation)=%f\n",pmutation);
   printf("-----------------\n");
   printf("\n");
   printf("Initial Popolation Maximum Fitness=%f\n",max);
   printf("Initial Popolation Average Fitness=%f\n",avg);
   printf("Initial Popolation Minimum Fitness=%f\n",min);
   printf("Initial Popolation Sam of Fitness=%f\n",sumfitness);
   pause();
  }

void initpop()/*生成初始群體*/
  {int j,j1;
   randomize();
   for(j=0;j<popsize;j++)
     {for(j1=0;j1<lchrom;j1++)
         oldpop[j].chrom[j1]=random(2);
      oldpop[j].x=(float)decode(oldpop[j].chrom);
      oldpop[j].fitness=objfunc(oldpop[j].x);
      oldpop[j].parent1=0;
      oldpop[j].parent2=0;
      oldpop[j].xsite=0;
     }
  }

void initialize()/*初始化*/
  {initdata();
   coef=pow(2.00,lchrom)-1.0
   initpop();
   statistics(oldpop);
   initreport();
  }

void report(int gen)/*數據輸出*/
  {int k,j;
   for(j=0;j<79;j++) print("*");
   printf("\n");
   printf("                 Population Report\n");
   printf("                     Generation %3d\n",gen);
   printf("#parents xsite   string         x    fitness\n");
   for(j=0;j<79;j++) print("+");
   printf("\n");
   for(j=0;j<popsize;j++) 
      {printf("%2d)(%2d,",j,newpop[j].parent1)
       printf("%2d)%2d",newpop[j].parent2,newpop[j].xsite);
       for(k=0;k<lchrom;k++)
         printf("%d",newpop[j].chrom[k]);
       printf("%12.1f",newpop[j].x)
       printf("%6.4f-New.\n",newpop[j].fitness);
      }
   for(k=0;k<79;k++) print("*");
   printf("\n");
   printf("RESULT:GEN:%3d\n",gen);   
   printf("AVG=%8.4d MIN=%8.4f MAX=%8.4f\n",avg,min,max);
   printf("ncross=%4d nmutation=%4d\n",ncross,nmutation);
  }

float decode(unsigned char *pp)/*譯碼*/
  {int j;
   float tt,tt1;
   tt1=1.0;
   tt=0.0;
   for(j=lchrom-1;j>-1;j--)
     {if(pp[j]) tt=tt+tt1;
      tt1=2.0*tt1;
     }
   tt=tt/coef;
   return tt;
  }

pause()/*延時*/
  {int j,j1;
   int x1;
   x1=0;
   for(j=1;j<=25;j++)
     {for(j1=1;j1<2;j1++) x1=x1+1;}
   return x1;
  }

int select()/*選擇操作*/
 {double rand1,partsum;
  int j;
  partsum=0.0;
  j=0;
  rand1=random1()*sumfitness;
  do{
     partsum=partsum+oldpop[j].fitness;
     j=j+1;
  }while ((partsum<rand1)&&(j<popsize));
  return j-1;
 }

int mutation(ch)/*變異操作*/
unsigned char ch;  
  {int mutate,j;
   mutate=flip(pmutation);
   if(mutate)
     {nmutation=nmutation+1;
      if(ch) ch=0;
        else ch=1;
     }
   if(ch) return 1;
     else return 0;
  }

int crossover(unsigned char *parent1,unsigned char *parent2,int k5)/*交叉操作*/
  {int i,j,j1;
   if(flip(pcross))
     {jcross=random(lchrom-1);
      ncross=ncross+1;
     }
   else jcross=lchrom;
   if (jcross!=lchrom)
     {for(j=0;j<jcross;j++)
        {newpop[k5].chrom[j]=mutation(parent1[j]);
         newpop[k5+1].chrom[j]-mutation(parent2[j])l
        }
      for(j=jcross;j<lchrom;j++)
        {newpop[k5].chrom[j]=mutation(parent2[j]);
         newpop[k5+1].chrom[j]-mutation(parent1[j])l
        }
     }
   else 
      {for(j=0;j<lchrom;j++)
        {newpop[k5].chrom[j]=mutation(parent1[j]);
         newpop[k5+1].chrom[j]-mutation(parent2[j])l
        }
      }
   return 1;
  }

void randomize1()/*重啟動隨機數發生器*/
  {int i;
   randomize();
   for(i=0;i<lchrom;i++)
     oldrand[i]=random(30001)/30000.0;
   jrand=0;
  }

float random1()/*隨機數發生器*/
  {jrand=jrand+1;
   if(jrand>=lchrom)
     {jrand=0;
      randomize1();
     }
   return oldrand[jrand];
  }

int flip(float probability)/*貝努力試驗*/
  {float ppp;
   ppp=random(20001)/20000.0;
   if(ppp<=probability)  return 1;
   return 0;
  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一二三专区| 成人国产精品免费网站| 国产精品福利影院| 精品国产乱码久久久久久浪潮| 欧美最猛性xxxxx直播| 成人av资源站| 一本色道久久综合狠狠躁的推荐| 久久成人羞羞网站| 老司机免费视频一区二区| 美女一区二区久久| 狠狠色丁香九九婷婷综合五月| 免费视频最近日韩| 国产在线精品视频| 免费不卡在线视频| 欧美激情一区不卡| 日韩欧美精品在线| 在线欧美一区二区| 91麻豆文化传媒在线观看| 国产原创一区二区三区| 天天av天天翘天天综合网色鬼国产| 久久久99精品免费观看| 日韩精品在线一区| 欧美美女bb生活片| 欧洲国内综合视频| 91麻豆.com| 欧美系列日韩一区| 波多野结衣精品在线| 国产大陆亚洲精品国产| 一区二区免费在线播放| 亚洲欧美乱综合| 美女被吸乳得到大胸91| 日本一二三四高清不卡| 精品国产伦一区二区三区观看体验 | 亚洲一区二区三区四区在线| 久久一二三国产| 精品国产亚洲一区二区三区在线观看| 99精品视频在线观看免费| 成人综合婷婷国产精品久久蜜臀| 日本成人在线看| 狠狠色综合日日| 国产v综合v亚洲欧| 粉嫩一区二区三区性色av| 高清不卡一区二区| 国产另类ts人妖一区二区| 精品一区二区日韩| 国产麻豆精品久久一二三| 国产乱人伦精品一区二区在线观看 | 91在线丨porny丨国产| 94-欧美-setu| 91精品国产91热久久久做人人| 欧美色网站导航| 久久久av毛片精品| 国产精品美女一区二区| 一区二区三区在线视频播放| 亚洲电影在线免费观看| 日本欧美久久久久免费播放网| 三级欧美韩日大片在线看| 国产福利一区二区| 欧美日韩国产成人在线免费| 日韩视频免费直播| 中文字幕中文字幕在线一区| 亚洲最新在线观看| 懂色av噜噜一区二区三区av| 一本色道久久加勒比精品| 久久这里只有精品视频网| 最新热久久免费视频| 韩国女主播一区二区三区| 在线亚洲免费视频| 国产精品久久久久aaaa| 丝袜亚洲另类丝袜在线| 色老头久久综合| 国产精品国产a| 9l国产精品久久久久麻豆| 日韩精品一区二区三区视频 | 国产精品欧美极品| 中文字幕一区二区日韩精品绯色| 卡一卡二国产精品| 91原创在线视频| 国产清纯美女被跳蛋高潮一区二区久久w | 波多野结衣亚洲一区| 国产精品丝袜久久久久久app| 麻豆精品在线播放| 精品国产1区二区| 经典三级一区二区| 久久久99久久| 91亚洲精品一区二区乱码| 亚洲三级小视频| 欧美视频在线播放| 国产一区二区三区四| 国产精品视频你懂的| 91久久免费观看| 偷拍一区二区三区| 久久综合九色综合97婷婷| 国产精品一区二区黑丝| 亚洲色欲色欲www在线观看| 欧美午夜精品一区二区三区| 日本成人在线网站| 亚洲另类春色国产| 色婷婷精品久久二区二区蜜臂av| 亚欧色一区w666天堂| 亚洲精品一区二区在线观看| 91黄色免费网站| 国产大陆a不卡| 麻豆精品一二三| 国产精品久久毛片| 欧美精品aⅴ在线视频| 国产精品一区二区在线看| 午夜久久久久久久久久一区二区| 久久久青草青青国产亚洲免观| 在线国产电影不卡| 岛国一区二区三区| 国产一区二区毛片| 捆绑变态av一区二区三区| 亚洲国产毛片aaaaa无费看 | 欧美喷潮久久久xxxxx| 成人三级在线视频| 美女在线视频一区| 欧美三级欧美一级| 懂色一区二区三区免费观看| 亚洲成人在线网站| 图片区小说区国产精品视频| 一区二区三区四区不卡视频| 中文字幕亚洲视频| 亚洲激情网站免费观看| 亚洲桃色在线一区| 亚洲最新视频在线播放| 亚洲一区二区四区蜜桃| 午夜精品在线看| 麻豆精品一区二区| 成人精品视频网站| 欧美视频一二三区| 欧美xfplay| 亚洲精品视频一区二区| 奇米色一区二区三区四区| 黄色资源网久久资源365| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 中文字幕欧美日韩一区| 国产精品欧美一区二区三区| 亚洲精品视频在线观看免费| 日韩二区在线观看| www.亚洲精品| 精品三级av在线| 亚洲精品欧美综合四区| 极品销魂美女一区二区三区| 成人av在线播放网站| 欧美精品粉嫩高潮一区二区| 久久久美女毛片| 青青国产91久久久久久 | 国产一区二区不卡老阿姨| 国产精品88av| 欧美成人video| 一区二区三区欧美在线观看| 美脚の诱脚舐め脚责91| 日本高清视频一区二区| 国产欧美精品区一区二区三区 | 亚洲理论在线观看| 免费在线看成人av| 欧美一区二区美女| 日韩精品一区第一页| 欧美色中文字幕| 污片在线观看一区二区| 欧美乱妇一区二区三区不卡视频| 中文字幕欧美国产| 91在线精品一区二区| 国产欧美精品区一区二区三区 | 日韩国产欧美在线播放| 欧美手机在线视频| 五月天亚洲婷婷| 欧美一区二区在线观看| 日本不卡高清视频| 26uuu国产电影一区二区| 国产一级精品在线| 国产日韩v精品一区二区| 蜜臀精品一区二区三区在线观看| 国产综合色视频| 欧美成人三级在线| 国产精品91xxx| 亚洲视频在线一区观看| 色屁屁一区二区| 蜜桃精品视频在线| 中文幕一区二区三区久久蜜桃| 色综合久久综合网欧美综合网| 亚洲综合在线第一页| 日韩视频在线观看一区二区| 成人18视频在线播放| 图片区小说区国产精品视频| 国产三级一区二区三区| 国模无码大尺度一区二区三区| 精品成人a区在线观看| 色一情一乱一乱一91av| 久久激情五月激情| 亚洲制服丝袜在线| 国产欧美久久久精品影院| 欧美一二三区在线| 欧美日韩在线不卡| 91官网在线免费观看| www.亚洲国产| 波多野结衣91| 成人精品视频一区二区三区尤物| 久久99国产精品久久99果冻传媒|