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

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

?? geneticalgorithm.txt

?? 本程序是用MATALAB編寫的遺傳算法遠程序
?? TXT
字號:
 f(x1,x2)=100*(x1^2-x2)^2+(1-x1)^2的   
    
  /***************************************************************/   
  *                   Simple   Genetic   Algorithm                               
  *                                   2002/7/18   
  *   
  *                 對于整體過程的說明   
  *         main   
  *                       GenerateInitialPopulation   //產生初始子代,本程序產生0,1   序列     
  *                       EvalutePopulation       
  *                                     |   
  *       |--------CalculateObjectValue       //計算目標函數值     
  *       |   
  *       |--------CalculateFitnessValue     //計算適應度   
  *       |     
  *       |--------FindBestAndWorstIndividual //計算最好與最差個體   
  *         
  *               以下循環到GENERATION代               
  *                       GenerateNextPopulation   
  *                                     |   
  *       |--------SelectOperator                       //選擇操作   
  *                                     |   
  *                                     |--------CalculateFitnessValue         //單點交叉   
  *                                     |   
  *                                     |--------FindBestAndWorstIndividual   //變異操作   
  *                           
  *                       EvalutePopulation     //該函數同上   
  *                                                   .......   
  *                                                   .......   
  *                                                   .......   
  *                       PerformEvolution                 //遺傳   
  *                       OutputTextReport                 //輸出報告   
  *               循環結束           
  ****************************************************************   
  {$N+}                                       //打開8087,因為使用double   
  program   SGA_pascal;           //Simple   Genetic   Algorithm   
  const   
        PopSize=160;                   //Simple   Genetic   Algorithm   
        MAXIMIZATION=1;             //最大標志     
        MINIZATION=2;                 //最小標志   
        Cmax=100;   
        Cmin=0;   
        LENGTH1=10;                     //第一個變量的遺傳變量的長度         
        LENGTH2=10;                     //第二個變量的遺傳變量的長度     
        CHROMLENGTH=LENGTH1+LENGTH2;     //變量總長度     
        MaxGeneration=400;       //最大遺傳代數     
        Pc=0.6;                             //交叉概率   
        Pm=0.001;                         //變異概率   
  type   
      individual   =record         //個體結構     
                              chrom:array[1..CHROMLENGTH]   of   char;   
                              value:double;   
                              fitness:double;   
                              end;   
    
  var   
      
      generation                         :integer;   
      best_index                         :integer;                   //記錄最優秀個體     
      worst_index                       :integer;                   //記錄最劣質個體   
      bestindividual                 :individual;             //當前代最優秀個體   
      worstindividual               :individual;             //當前代最差個體   
      currentbest                       :individual;             //現在得到的最優秀個體   
      population                         :array[1..PopSize]   of   individual;   
                                                                                      //種群空間       
      functionmode                     :integer;                   //最優化類型   
    
  procedure   init;                         //初始化   
    
  procedure   generateinitpopulation;                   //生成最先一代   
  var   i,j:integer;     
  begin   
      randomize;     
      for   i:=1   to   PopSize   do                                     //種群大小         
          for   j:=1   to   CHROMLENGTH   do                         //基因長度         
              if   random(10)<5     
                    then   population[i].chrom[j]:='0'       //以相同概率產生'0','1'   
                    else   population[i].chrom[j]:='1';       
    
        functionMode:=MAXIMIZATION;                             //最優化類型   
    
  end;   
    
  begin   
      generateinitpopulation;   
  end;   {end   of   init}   
    
    
  procedure   main;   
    
  procedure   EvaluatePopulation;   
    
  function   DecodeChromosome(s:string;strstart,strend:integer):longint;   
  //基因解碼過程,對于本程序,是將2進制基因轉化成10進制數值   
  var   
        decimal       :longint;     
        temp             :longint;   
        i           :integer;   
  begin   
      decimal:=0;   
      temp:=1;       //以左到右,權值升高   
      for   i:=strstart   to   strend   do   
          begin   
              if   copy(s,i,1)='1'   then   decimal:=decimal+temp;     //轉化到十進制   
              temp:=temp*2;   
          end;   
      decodechromosome:=decimal;   
  end;   
    
  procedure   calculateobjectvalue;   
  //計算目標函數值,本程序目前計算為f(x1,x2)=100*(x1^2-x2)^2+(1-x1)^2   
  var   
        i:integer;   
        temp1,temp2:longint;   
        x1,x2:double;   
  begin     
      for   i:=1   to   PopSize   do   
          begin   
              temp1:=DecodeChromosome(population[i].chrom,1,LENGTH1);   
                                  //分別對兩個基因解碼   
              temp2:=DecodeChromosome(population[i].chrom,LENGTH1+1,LENGTH1+LENGTH2);   
              x1:=4.096*temp1/1023.0-2.048;   
                                  //從這里可以看出,本程序是采用均勻量化   
              x2:=4.096*temp2/1023.0-2.048;   
              population[i].value:=100*(x1*x1-x2)*(x1*x1-x2)+(1-x1)*(1-x1);   
          end;   
  end;   
    
  procedure   calculatefitnessvalue;   
  //計算適應度   
  var   
        i       :integer;   
        temp:double;   
  begin   
      for   i:=1   to   PopSize   do   
          begin   
              if   functionmode=MAXIMIZATION   
                              then     
                                  if   population[i].value+Cmin>0.0     
                                            then   
                                                temp:=Cmin+population[i].value   
                                            else   
                                                temp:=0.0   
                              else   
                                  if   functionmode=MINIZATION     
                                            then   
                                                if   population[i].value<Cmax     
                                                          then   
                                                              temp:=Cmax-population[i].value   
                                                          else   
                                                              temp:=0.0;   
              population[i].fitness:=temp;   
          end;   
  end;   
    
  procedure   findbestandworstindividual;   
  //找到當前種群中最優秀個體   
  var   
      i     :integer;   
      sum:double;   
  begin   
      sum:=0.0;   
      bestindividual:=population[1];   
      worstindividual:=population[1];   
      for   i:=2   to   PopSize   do   
          begin   
              if   population[i].fitness>bestindividual.fitness   
                                then   
                                    begin   
                                        bestindividual:=population[i];   
                                        best_index:=i;   
                                    end;   
              if   population[i].fitness<worstindividual.fitness     
                                then   
                                    begin   
                                        worstindividual:=population[i];   
                                        worst_index:=i;     
                                    end;                                                                                     
              sum:=sum+population[i].fitness;   
          end;   
    
      if   generation=1   
              then   
                  currentbest:=bestindividual   
              else   
                  if   bestindividual.fitness>currentbest.fitness   
                        then   
                            currentbest:=bestindividual;   
  end;   
    
  begin   
      calculateobjectvalue;   
      calculatefitnessvalue;   
      findbestandworstindividual;   
  end;   
    
  procedure   generatenextpopulation;   
    
  procedure   selectionoperator;   
  //通過比例選擇產生新的基因   
  var   
      i,index:integer;   
      p,sum:double;   
      cfitness:array[1..PopSize]   of   double;   
      newpopulation:array[1..popsize]   of   individual;   
  begin       
      sum:=0.0;   
      for   i:=1   to   PopSize   do   
          sum:=sum+population[i].fitness;   
        
      for   i:=1   to   PopSize   do   
          cfitness[i]:=population[i].fitness/sum;   
    
        for   i:=2   to   PopSize   do   
          cfitness[i]:=cfitness[i-1]+cfitness[i];   
    
        for   i:=1   to   popsize   do   
          begin   
              p:=random(1000)   /   1000.0;   
              index:=0;   
              while   p>cfitness[index]   do   
                index:=index+1;   
              newpopulation[i]:=population[index];   
        end;   
    
        for   i:=1   to   popsize   do   
            population[i]:=newpopulation[i];   
    
  end;   
    
  procedure   crossoveroperator;   
  //單點交叉   
  var   
        i,j:integer;   
        index:array[1..PopSize]   of   integer;   
        point,temp:integer;   
        p:double;   
        ch:char;   
  begin   
          
      for   i:=1   to   PopSize   do   
                    index[i]:=i;   
      for   i:=1   to   PopSize   do   
          begin     
              point:=random(PopSize-i+1);   
              temp:=index[i];   
              index[i]:=index[point+i];   
              index[point+i]:=temp;   
          end;         
      //隨機選擇一對個體   
    
      for   i:=1   to   PopSize   do   
          begin   
              p:=random(1000)   /   1000.0;   
              if   p<Pc     
                  then   
                    begin   
                        point:=random(CHROMLENGTH-1)+1;   
                        for   j:=point   to   CHROMLENGTH   do   
                            begin   
                  ch:=population[index[i]].chrom[j];   
                  population[index[i]].chrom[j]:=population[index[i+1]].chrom[j];   
                  population[index[i+1]].chrom[j]:=ch;   
                            end;   
                    end;   
                i:=i+1;   
          end;   
          //單點交叉   
    
  end;   
    
  procedure   mutationoperator;   
  //基因變異   
  var   
      i,j:integer;   
      p:double;   

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久成人18免费观看| 国产成都精品91一区二区三| 国产视频一区不卡| 日韩一区二区三区电影| 欧美精品视频www在线观看| 色欧美日韩亚洲| 在线一区二区三区四区| 91一区二区三区在线观看| 91女人视频在线观看| 色噜噜夜夜夜综合网| 色综合婷婷久久| 欧美在线色视频| 91精品欧美综合在线观看最新| 欧美日韩国产另类一区| 欧美狂野另类xxxxoooo| 欧美一级夜夜爽| 久久美女艺术照精彩视频福利播放| 欧美成人免费网站| 中文字幕电影一区| 亚洲另类在线制服丝袜| 视频在线观看一区二区三区| 久久99最新地址| 国产成人久久精品77777最新版本| 成人一区二区三区视频在线观看| 成人v精品蜜桃久久一区| 欧美在线影院一区二区| 制服丝袜中文字幕一区| 26uuu国产日韩综合| 国产精品亲子伦对白| 一区二区三区小说| 美女www一区二区| 成a人片国产精品| 欧美精品视频www在线观看| 久久久精品tv| 性欧美大战久久久久久久久| 国产在线不卡视频| 91麻豆高清视频| 精品欧美一区二区在线观看| 亚洲日本乱码在线观看| 奇米精品一区二区三区四区| 成人免费看视频| 884aa四虎影成人精品一区| 国产日韩精品视频一区| 天堂蜜桃91精品| av电影在线不卡| 日韩视频一区在线观看| 亚洲免费在线视频一区 二区| 视频一区欧美精品| 91在线视频播放| 欧美精品一区在线观看| 亚洲一区视频在线| 粉嫩嫩av羞羞动漫久久久 | 日韩免费高清av| 美女mm1313爽爽久久久蜜臀| 成人一区二区三区在线观看 | 欧美日韩高清一区二区| 欧美激情综合在线| 蜜臂av日日欢夜夜爽一区| 色婷婷综合激情| 国产精品福利电影一区二区三区四区| 天天影视涩香欲综合网| 97成人超碰视| 国产精品嫩草影院com| 精品一区二区三区蜜桃| 欧美色窝79yyyycom| 亚洲精品视频在线观看免费| 国产大片一区二区| 久久久精品欧美丰满| 精久久久久久久久久久| 欧美一区午夜视频在线观看| 五月天网站亚洲| 欧美日韩国产bt| 日韩国产欧美在线观看| 欧美日产在线观看| 亚洲第一综合色| 欧美视频在线观看一区二区| 一区二区免费在线| 91精彩视频在线观看| 亚洲精品成a人| 欧美中文字幕一区二区三区| 亚洲午夜视频在线| 欧美日本精品一区二区三区| 婷婷久久综合九色综合绿巨人| 欧美日韩国产一级| 日韩精品一二三区| 欧美肥妇bbw| 奇米色一区二区| 欧美曰成人黄网| 亚洲黄网站在线观看| 欧美日韩免费视频| 亚洲精品高清视频在线观看| 不卡av在线网| 国产精品丝袜黑色高跟| 国产白丝精品91爽爽久久| 久久久青草青青国产亚洲免观| 国产凹凸在线观看一区二区| 欧美zozo另类异族| 精品写真视频在线观看| 亚洲精品一区二区三区影院| 久久福利视频一区二区| 日韩欧美激情四射| 日本三级韩国三级欧美三级| ww亚洲ww在线观看国产| 国产一区二区三区精品视频 | 欧美国产精品中文字幕| 国产精品一区二区91| 久久新电视剧免费观看| 91久久精品日日躁夜夜躁欧美| 亚洲人妖av一区二区| 91黄色在线观看| 亚洲h动漫在线| 精品久久久久久久久久久院品网| 国内精品伊人久久久久影院对白| 久久久精品黄色| 色综合一区二区三区| 亚洲国产日韩精品| 日韩欧美一二区| 成人深夜视频在线观看| 亚洲免费av在线| 欧美一区二区高清| 国产精品1区2区3区| 国产日韩欧美一区二区三区乱码| 美女www一区二区| 亚洲欧洲日韩在线| 欧美精品粉嫩高潮一区二区| 国产精品中文字幕欧美| 精品精品国产高清一毛片一天堂| 在线视频观看一区| 久久99久久久欧美国产| 亚洲私人黄色宅男| 日韩三级精品电影久久久| 成人国产亚洲欧美成人综合网| 一区二区三区四区视频精品免费| 精品人在线二区三区| 91蜜桃视频在线| 韩国欧美国产1区| 亚洲精品中文字幕乱码三区| 日韩免费视频一区| 欧美精品一卡二卡| eeuss国产一区二区三区| 毛片不卡一区二区| 一区二区三区不卡视频在线观看| 久久夜色精品国产噜噜av| 国产精品一品二品| 国内精品久久久久影院一蜜桃| 一区二区日韩电影| 日本一区二区三区电影| 日韩欧美在线观看一区二区三区| 成人午夜激情影院| 国产成人精品aa毛片| 麻豆久久久久久| 亚洲在线中文字幕| 亚洲视频免费在线观看| 欧美吻胸吃奶大尺度电影| 欧美制服丝袜第一页| 97超碰欧美中文字幕| 国产成人av一区二区三区在线观看| 三级久久三级久久| 亚洲自拍偷拍欧美| 亚洲一线二线三线久久久| 中文字幕一区二区三区四区不卡| 精品美女一区二区三区| 欧美一区二区三区视频免费播放| 色94色欧美sute亚洲线路一ni| 韩国精品在线观看| 成人性生交大片免费看中文| 韩国v欧美v日本v亚洲v| 久久99精品国产麻豆婷婷洗澡| 亚洲chinese男男1069| 国产精品久久久久久久久果冻传媒 | 91女神在线视频| 波多野结衣的一区二区三区| 国产福利一区二区三区| 激情综合色播激情啊| 久久99国产乱子伦精品免费| 国产精品亚洲综合一区在线观看| 国内精品伊人久久久久av影院| 免费在线观看不卡| 精品一区二区三区在线观看 | 青青草97国产精品免费观看 | 久色婷婷小香蕉久久| 日韩va亚洲va欧美va久久| 麻豆成人av在线| 麻豆91精品91久久久的内涵| 成人手机电影网| 99精品一区二区| 欧美网站大全在线观看| 日韩一级免费观看| 国产欧美1区2区3区| 亚洲丝袜另类动漫二区| 一区二区三区在线影院| 日韩精品欧美精品| 看电影不卡的网站| 成人aaaa免费全部观看| av色综合久久天堂av综合| aaa国产一区| 欧美日韩国产美女| 久久久久国产精品人| 亚洲精品日韩一| 免费观看久久久4p|