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

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

?? gadelphi.pas

?? 一個用于基本遺傳算法計算得源程序。用dephi編寫的。
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
      oldpop[j].parent[1] := 0;
      oldpop[j].xsite := 0;
      objfunc(oldpop[j]);
    end;
  end;
end;

procedure TGA.objfunc(var critter: individual); //* 計算適應度函數值 */
var
  mask, bitpos, tp: cardinal;
  bitpow: double;
  j, k, stop: integer;
begin
  mask := 1;
  critter.varible := 0.0;
  for k := 0 to chromsize - 1 do
  begin
    if (k = (chromsize - 1)) then
      stop := lchrom - (k * (8 * sizeof(cardinal)))
    else
      stop := 8 * sizeof(cardinal);
    tp := critter.chrom[k];
    for j := 0 to stop - 1 do
    begin
      bitpos := j + (8 * sizeof(cardinal)) * k;
      if ((tp and mask) = 1) then
      begin
        bitpow := power(2.0, bitpos);
        critter.varible := critter.varible + bitpow;
      end;
      tp := tp shr 1;
    end;
  end;
  critter.varible := -1 + critter.varible * 3 / (power(2.0, lchrom) -
    1);
  critter.fitness := critter.varible * sin(critter.varible * 10 * arctan(1)
    * 4) + 2.0;
end;


function TGA.flip(prob: single): boolean; // 以一定概率產生0或1
begin
  if (randomperc <= prob) then
    result := true
  else
    result := false;
end;

function TGA.select: integer; //* 輪盤賭選擇*/
var
  sum, pick: single;
  i: integer;
begin
  pick := randomperc;
  sum := 0;
  i := 0;
  if (sumfitness <> 0) then
    while ((sum < pick) and (i < popsize)) do
    begin
      sum := sum + oldpop[i].fitness / sumfitness;
      inc(i);
    end
  else
    i := rnd(1, popsize);
  result := i - 1;
end;

function TGA.rnd(low, high: integer): integer;
  //*在整數low和high之間產生一個隨機整數*/
var
  i: integer;
begin
  if (low >= high) then
    i := low
  else
  begin
    i := trunc((randomperc * (high - low + 1)) + low);
    if (i > high) then
      i := high;
  end;
  result := i;
end;

function TGA.crossover(var parent1, parent2, child1, child2: PUnsigned): integer;
  // * 由兩個父個體交叉產生兩個子個體 * /
var
  j, jcross, k: integer;
  mask, temp: cardinal;
begin
  if (flip(pcross)) then
  begin
    jcross := rnd(1, (lchrom - 1)); // * Cross between 1 and l - 1 * /
    inc(ncross, 1);
    for k := 1 to chromsize do
    begin
      if (jcross >= (k * (8 * sizeof(cardinal)))) then
      begin
        child1[k - 1] := parent1[k - 1];
        child2[k - 1] := parent2[k - 1];
      end
      else
        if ((jcross < (k * (8 * sizeof(cardinal)))) and (jcross > ((k - 1) * (8 *
          sizeof(cardinal))))) then
        begin
          mask := 1;
          for j := 1 to jcross - 1 - ((k - 1) * (8 * sizeof(cardinal))) do
          begin
            temp := 1;
            mask := mask shr 1;
            mask := mask and temp;
          end;
          child1[k - 1] := (parent1[k - 1] and mask) or (parent2[k - 1] and (not
            mask));
          child2[k - 1] := (parent1[k - 1] and (not mask)) or (parent2[k - 1] and
            mask);
        end
        else
        begin
          child1[k - 1] := parent2[k - 1];
          child2[k - 1] := parent1[k - 1];
        end;
    end;
  end
  else
  begin
    for k := 0 to chromsize - 1 do
    begin
      child1[k] := parent1[k];
      child2[k] := parent2[k];
    end;
    jcross := 0;
  end;
  result := jcross;
end;

procedure TGA.mutation(child: PUnsigned); //*變異操作*/
var
  j, k, stop: integer;
  mask, temp: cardinal;
begin
  temp := 1;
  for k := 0 to chromsize - 1 do
  begin
    mask := 0;
    if (k = (chromsize - 1)) then
      stop := lchrom - (k * (8 * sizeof(cardinal)))
    else
      stop := 8 * sizeof(cardinal);
    for j := 0 to stop - 1 do
    begin
      if (flip(pmutation)) then
      begin
        mask := mask or (temp shl j);
        inc(nmutation, 1);
      end;
    end;
    child[k] := child[k] xor mask;
  end;
end;

procedure TGA.generation;
var
  mate1, mate2, jcross, j: integer;
begin
  j := 0;
  //*  每代運算前進行預選 */
  preselect;
  //* 選擇, 交叉, 變異 */
  repeat
      //* 挑選交叉配對 */
    mate1 := select();
    mate2 := select();
      //* 交叉和變異 */
    jcross := crossover(oldpop[mate1].chrom, oldpop[mate2].chrom, newpop[j].chrom,
      newpop[j + 1].chrom);
    mutation(newpop[j].chrom);
    mutation(newpop[j + 1].chrom);
      //* 解碼, 計算適應度 */
    objfunc(newpop[j]);
      //*記錄親子關系和交叉位置 */
    newpop[j].parent[0] := mate1 + 1;
    newpop[j].xsite := jcross;
    newpop[j].parent[1] := mate2 + 1;
    objfunc(newpop[j + 1]);
    newpop[j + 1].parent[0] := mate1 + 1;
    newpop[j + 1].xsite := jcross;
    newpop[j + 1].parent[1] := mate2 + 1;
    j := j + 2;
  until (j >= (popsize - 1));
end;

procedure TGA.preselect;
var
  j: integer;
begin
  sumfitness := 0;
  for j := 0 to popsize - 1 do
    sumfitness := sumfitness + oldpop[j].fitness;
end;

procedure TGA.Go;
begin
  gen := 0;
  while (gen < maxgen) do
  begin
      //fprintf(outfp, "\n第 %d / %d 次運行: 當前代為 %d, 共 %d 代\n", run, maxruns,
        //gen, maxgen);
      // * 產生新一代 * /
    generation;
      // * 計算新一代種群的適應度統計數據 * /
    statistics(newpop);
      // * 輸出新一代統計數據 * /
    report;

    temp := copy(oldpop);
    oldpop := copy(newpop);
    newpop := copy(temp);
    inc(gen, 1);
  end;
//  freeall();
end;

procedure TGA.repchar(ch: pchar; repcount: integer);
var
  j: integer;
begin
  for j := 1 to repcount - 1 do
    write(ch);
end;

procedure TGA.report; //* 輸出種群統計結果 */

begin
  repchar('-', 80);
  skip(1);
  if (printstrings = 1) then
  begin
    repchar(' ', ((80 - 17) div 2));
    writeln('模擬計算統計報告  ');
    write('世代數 ', gen);
    repchar(' ', (80 - 28));
    writeln('世代數 ', (gen + 1));
    write('個體  染色體編碼');
    repchar(' ', lchrom - 5);
    write('適應度    父個體 交叉位置  ');
    write('染色體編碼 ');
    repchar(' ', lchrom - 5);
    write('適應度');
    repchar('-', 80);
    skip(1);
    writepop();
    repchar('-', 80);
    skip(1);
  end;
  writeln(format('第 %d 代統計: ', [gen]));
  writeln('總交叉操作次數 = ', ncross, ' 總變異操作數 = ', nmutation);
  writeln(' 最小適應度:', min, ' 最大適應度:', max, '  平均適應度 %f', avg);
  writeln(format(' 迄今發現最佳個體 =>  所在代數: %d  ', [bestfit.generation]));
  writeln(' 適應度:  染色體:', bestfit.fitness);
  writechrom(bestfit.chrom);
  writeln(' 對應的變量值: ', bestfit.varible);
  skip(1);
  repchar('-', 80);
  skip(1);
end;

procedure TGA.writepop;
var
  pind: individual;
  j: integer;
begin
  for j := 0 to popsize - 1 do
  begin
    write(format('%3d)  ',[j + 1]));
        //* 當前代個體 */
    pind := oldpop[j];
    writechrom(pind.chrom);
    write(format('  %8f | ', [pind.fitness]));
        //* 新一代個體 */
    pind := newpop[j];
    write(format('(%2d,%2d)   %2d   ', [pind.parent[0], pind.parent[1],
      pind.xsite]));
    writechrom(pind.chrom);
    writeln(format('  %8f  ', [pind.fitness]));
  end;
end;

procedure TGA.writechrom(chrom: PUnsigned); //* 輸出染色體編碼 */
var
  j, k, stop: integer;
  mask, tmp: Cardinal;
begin
  mask := 1;
  for k := 0 to chromsize - 1 do
  begin
    tmp := chrom[k];
    if (k = (chromsize - 1)) then
      stop := lchrom - (k * (8 * sizeof(cardinal)))
    else
      stop := 8 * sizeof(cardinal);
    for j := 0 to stop - 1 do
    begin
      if (tmp and mask) = 1 then
        write('1')
      else
        write('0');
      tmp := tmp shr 1;
    end;
  end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女直播网站| 国产v日产∨综合v精品视频| 在线观看日韩电影| 一区二区三区精品久久久| 一本色道综合亚洲| 亚洲午夜av在线| 日韩一区二区三区电影 | 国产在线不卡一卡二卡三卡四卡| 午夜视频在线观看一区二区| 欧美精品99久久久**| 久久9热精品视频| 亚洲国产精品av| 91麻豆.com| 青娱乐精品视频| 精品国产免费人成在线观看| 国产不卡视频在线播放| 一区二区三区在线免费| 日韩一区二区在线播放| 国产高清久久久久| 亚洲香肠在线观看| 精品国产a毛片| 91黄色在线观看| 久久99国产精品麻豆| 国产精品久久久久久久久久免费看| 老司机精品视频一区二区三区| 色综合天天狠狠| 国产综合成人久久大片91| 国产精品少妇自拍| 欧美日韩一区二区在线观看 | 男女性色大片免费观看一区二区 | www.亚洲色图.com| 亚洲国产精品一区二区www| 精品精品国产高清a毛片牛牛| 一区二区三区在线视频观看58 | 国产大陆a不卡| 亚洲一区二区高清| 欧美激情资源网| 制服丝袜中文字幕一区| 99精品视频一区| 老司机一区二区| 亚洲高清中文字幕| 国产精品国产三级国产普通话99| 国产成人av电影在线观看| 亚洲精品乱码久久久久久黑人| www.欧美.com| 韩国一区二区视频| 天天综合天天做天天综合| 国产精品久久久久一区二区三区共| 国产99久久久国产精品 | 国产精品看片你懂得 | eeuss鲁一区二区三区| 天天做天天摸天天爽国产一区| 中文字幕在线观看一区二区| 欧美日韩国产一二三| 99视频精品在线| 国产一区二区三区四区五区入口 | 日本一区二区成人| 日韩精品中文字幕在线不卡尤物| 久久99精品久久久久久久久久久久| 日韩一区二区免费电影| 欧美性大战久久| 色系网站成人免费| 懂色av噜噜一区二区三区av| 久久99精品视频| 五月婷婷激情综合| 亚洲国产精品久久人人爱蜜臀| 日韩免费在线观看| 日韩限制级电影在线观看| 99re成人精品视频| 成人丝袜高跟foot| 从欧美一区二区三区| 国产揄拍国内精品对白| 久久精品国产成人一区二区三区| 国产无人区一区二区三区| 欧美成人vps| 精品免费日韩av| 91精品国产高清一区二区三区 | 日韩一区二区免费在线观看| 欧美日韩国产中文| 欧美日韩一区二区三区四区| 欧美色国产精品| 欧美视频一区二| 欧美日本精品一区二区三区| 在线欧美日韩国产| 欧美日韩美女一区二区| 欧美高清视频www夜色资源网| 国产成人综合在线播放| 国产91精品久久久久久久网曝门| 亚洲精品欧美激情| 亚洲美女偷拍久久| 亚洲线精品一区二区三区| 婷婷久久综合九色综合绿巨人| 久久日韩粉嫩一区二区三区| 国产午夜精品久久久久久久| 国产精品妹子av| 一区二区三区在线视频免费观看| 欧美成人官网二区| 久久久久9999亚洲精品| 国产精品欧美精品| 一区二区在线观看免费 | 欧美亚洲另类激情小说| 欧美日韩不卡在线| 精品国产一二三| 国产精品久久久久久户外露出| 欧美女孩性生活视频| 日韩欧美国产精品| 久久色在线视频| 自拍偷拍国产亚洲| 蜜臂av日日欢夜夜爽一区| 国产福利91精品一区二区三区| 日本成人在线一区| 国产成人午夜高潮毛片| 日本韩国一区二区| 日韩免费一区二区| 国产精品久久久久久久久快鸭 | 欧美日韩高清一区二区不卡| 欧美成人a∨高清免费观看| 日本一区二区电影| 日韩影院免费视频| 成人免费观看视频| 在线成人高清不卡| 中文字幕一区二| 蜜桃视频在线观看一区二区| 99在线视频精品| 精品国产区一区| 亚洲欧美日韩在线播放| 黄色精品一二区| 欧美曰成人黄网| 国产欧美精品在线观看| 婷婷久久综合九色国产成人| jvid福利写真一区二区三区| 91精品国产色综合久久| 亚洲男同性恋视频| 国产伦精品一区二区三区视频青涩 | 国产精品美女久久久久久| 亚洲一区二区三区三| 成人午夜激情影院| 日韩精品一区二区三区视频播放 | 久久国产夜色精品鲁鲁99| 国产98色在线|日韩| 欧美一级专区免费大片| 亚洲美女屁股眼交| 国产福利一区在线| 欧美成人精品福利| 婷婷国产在线综合| 欧美曰成人黄网| 亚洲欧美色一区| 成人app在线| 日本一区二区三区四区在线视频| 国产精品电影院| 国产精品一品二品| 欧美电影免费观看高清完整版在| 日韩欧美激情一区| 日韩激情视频在线观看| 色国产综合视频| 日韩一区欧美一区| 成人av网站免费| 国产欧美日韩综合| 狠狠网亚洲精品| 在线播放中文一区| 亚洲成人在线免费| 欧美三级三级三级| 亚洲一区中文日韩| 在线免费亚洲电影| 一区二区在线观看视频在线观看| 日韩avvvv在线播放| 欧美色大人视频| 午夜日韩在线观看| 欧美亚洲一区二区在线观看| 亚洲欧洲精品一区二区三区 | 精品国产伦理网| 日韩中文字幕一区二区三区| 欧美色图天堂网| 午夜久久久久久久久久一区二区| 国产一区二区不卡老阿姨| 精品成人一区二区三区| 国产美女精品一区二区三区| 精品国产乱码久久久久久老虎| 亚洲精品中文在线观看| 色88888久久久久久影院按摩| 91精品国产综合久久香蕉麻豆 | 日韩va亚洲va欧美va久久| 欧美日韩精品一区二区三区四区| 久久这里只有精品首页| 韩国三级中文字幕hd久久精品| 在线精品亚洲一区二区不卡| 亚洲精品视频在线| 欧美人与禽zozo性伦| 婷婷开心激情综合| xnxx国产精品| 91视频在线看| 日本亚洲三级在线| 久久精品人人做人人综合| av不卡免费在线观看| 亚洲一区二区三区自拍| 欧美电影免费观看高清完整版在线 | 美脚の诱脚舐め脚责91| 欧美激情一区在线观看| 在线国产亚洲欧美| 久久99热国产|