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

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

?? _evec3v4.pas

?? 微分進化法的pascal程序
?? PAS
字號:
program devec3;

{* About devec3                                                   *}
{* Differential Evolution for MATLAB                              *}
{* Copyright (C) 1996, 1997 R. Storn                              *}
{* International Computer Science Institute (ICSI)                *}
{* 1947 Center Street, Suite 600                                  *}
{* Berkeley, CA 94704                                             *}
{* E-mail: storn@icsi.berkeley.edu                                *}
{* WWW:    http://www.icsi.berkeley.edu/~storn/                   *}
{* Translated into Pascal by Hubert Geldon hgeldon@wp.pl          *}
{*                           and                                  *}
{*                           Piotr A. Gauden gaudi@cc.uni.toun.pl *}
{*                           N. Copernicus Univ.                  *}
{*                           Department of Chemistry              *}
{*                           87-100 Torun                         *}

{$IFDEF CPU87}
{$N+}
uses crt , printer, graph;
     type real = extended;

{$ELSE}
uses crt , printer;
{$ENDIF}


{ Include definitions and declarations }
{$I d:\dysk_13\decl.de }

{ Include procedures and functions for generating random }
{$I d:\dysk_13\genps.de }

{ Include procedures and functions for calculating DC }
{$I d:\dysk_13\deter.de }


{ Include procedures and functions for printing in output and data files }
{$I d:\dysk_13\out_proc.de }


{############################################################################}
BEGIN           {* main program *}

clrscr;
assign(xs,'d:\dysk_13\x.txt');
assign(ys,'d:\dysk_13\y.txt');

repeat
   begin
      writeln('Enter seed random number (0.000 ... 1.000).');
      readln(randomseed);
   end;
until (randomseed>0) and (randomseed<1.0);
warmup_random(randomseed);

{* pop is a matrix of size NPxD. It will be initialized with random values *}
{* between the min and max values of the parameters *}
for i := 1 to NP do
    for j := 1 to D do
        begin
          randtest:=rand;
          pop[i,j] := XVmin[j] + (randtest * (XVmax[j] - XVmin[j]));
        end;

{* Evaluate the best member after initialization *}
reset(xs);
reset(ys);
readln(xs,FDX);
readln(ys,FDY);
if FDX <> FDY then
   begin
      writeln('Number of data points in data files is different. Correct it.');
      halt;
   end;
if FDX <> XY then
   begin
      writeln('Number of data points in data files is different then XY value');
      writeln('in "const" part of program. Correct it.');
      halt;
   end;
for datnum := 1 to XY do
   begin
      readln(xs,xdata[datnum]);
      readln(ys,ydata[datnum]);
   end;
close(xs);
close(ys);

cur_gen := 1;
n_pop := 1;                        {* check the first member *}
DC:=Determination(n_pop,pop);
memberval[1] := odch_st;
bestval := memberval[1];
tempmemberval:=memberval[1];
ClrScr;
Print_Out;
Print_File;
for i := 1 to D do
    bestmemiter[1,i] := pop[1,i];  {* check the first member *}
for j := 2 to NP do		   {* check the rest of members *}
    begin
       tempmemberval:=memberval[j];
       Print_Out;
       n_pop := j;
       DC:=Determination(n_pop,pop);
       memberval[j] := odch_st;
       if memberval[j] < bestval  then
          begin
            bestval := memberval[j];
            for k := 1 to D do
                bestmemiter[1,k] := pop[j,k];
          Print_File;
          end;
    end;

for k := 1 to D do
    bestmem[1,k] := bestmemiter[1,k];  {* best member ever, after first generation *}
    bestvalev := bestval;          {* check the rest of members *}


cur_gen := 2;
while cur_gen <= itermax do
   begin
      for i := 1 to NP do
          for j := 1 to D do
              popold[i,j] := pop[i,j];      {* save the old population *}

{%%%%%% ind}
      for i := 1 to 4 do
          begin
             randmatrix[i] := rand;
             randmatrixint[i] := i;
          end;
      for j := 1 to 4 do
          begin
             valmin := 1.0;
             for i := 1 to 4 do
	         begin
                    if randmatrix[i] < valmin
                    then
                      begin
                         valmin := randmatrix[i];
                         ind[j] := randmatrixint[i] {* shuffle locations of vectors *}
                      end;
                 end;
             for k := 1 to 4 do
                 begin
                    if randmatrix[k] = valmin
                    then randmatrix[k] := 1;
                 end;
          end;
{%%%%%% ind}

{%%%%%% rot}
          for i := 1 to NP do
              rot[i] := i-1;
{%%%%%% rot}

{%%%%%% a1}
      for i := 1 to NP do
          begin
             randmatrixnp[i] := rand;
             randmatrixnpint[i] := i;
          end;
      for j := 1 to NP do
          begin
             valmin := 1.0;
             for i := 1 to NP do
	         begin
                    if randmatrixnp[i] < valmin
                    then
                      begin
                         valmin := randmatrixnp[i];
                         a1[j] := randmatrixnpint[i]; {* shuffle locations of vectors *}
                      end;
                 end;
             for k := 1 to NP do
                 begin
                    if randmatrixnp[k] = valmin
                    then randmatrixnp[k] := 1;
                 end;
          end;
{%%%%%% a1}

{%%%%%% a2}
          for i := 1 to NP do
              begin
                 transmata[i] := rot[i] + ind[1];
                 tempmata[i]  := transmata[i]/NP;
                 rt[i]  := trunc(tempmata[i]);
                 rt[i]  := transmata[i] - NP * rt[i]; {* rotate indices by ind[1] position *}
              end;

        for i := 1 to NP do
              begin
                 k := rt[i] + 1;
                 a2[i] := a1[k];    {* rotate vector locations *}
              end;
{%%%%%% a2}

{%%%%%% a3}
          for i := 1 to NP do
              begin
                 transmata[i] := rot[i] + ind[2];
                 tempmata[i]  := transmata[i]/NP;
                 rt[i]  := trunc(tempmata[i]);
                 rt[i]  := transmata[i] - NP * rt[i]; {* rotate indices by ind[1] position *}
              end;
          for i := 1 to NP do
              begin
                 k := rt[i] + 1;
                 a3[i] := a2[k];
              end;
{%%%%%% a3}

{%%%%%% a4}
          for i := 1 to NP do
              begin
                 transmata[i] := rot[i] + ind[3];
                 tempmata[i]  := transmata[i]/NP;
                 rt[i]  := trunc(tempmata[i]);
                 rt[i]  := transmata[i] - NP * rt[i]; {* rotate indices by ind[1] position *}
              end;
          for i := 1 to NP do
              begin
                 k := rt[i] + 1;
                 a4[i] := a3[k];
              end;
{%%%%%% a4}

{%%%%%% a5}
          for i := 1 to NP do
              begin
                 transmata[i] := rot[i] + ind[4];
                 tempmata[i]  := transmata[i]/NP;
                 rt[i]  := trunc(tempmata[i]);
                 rt[i]  := transmata[i] - NP * rt[i]; {* rotate indices by ind[1] position *}
              end;
          for i := 1 to NP do
              begin
                 k := rt[i] + 1;
                 a5[i] := a4[k];
              end;
{%%%%%% a5}

{%%%%%% pm1}
          for i := 1 to NP do
              begin
                 k := a1[i];
                 for j := 1 to D do
                     pm1[i,j] := popold[k,j]; {* shuffled population 1 *}
              end;
{%%%%%% pm1}

{%%%%%% pm2}
          for i := 1 to NP do
              begin
                 k := a2[i];
                 for j := 1 to D do
                     pm2[i,j] := popold[k,j]; {* shuffled population 2 *}
              end;
{%%%%%% pm2}

{%%%%%% pm3}
          for i := 1 to NP do
              begin
                 k := a3[i];
                 for j := 1 to D do
                     pm3[i,j] := popold[k,j]; {* shuffled population 3 *}
              end;
{%%%%%% pm3}

{%%%%%% pm4}
          for i := 1 to NP do
              begin
                 k := a4[i];
                 for j := 1 to D do
                     pm4[i,j] := popold[k,j]; {* shuffled population 4 *}
              end;
{%%%%%% pm4}

{%%%%%% pm5}
          for i := 1 to NP do
              begin
                 k := a5[i];
                 for j := 1 to D do
                     pm5[i,j] := popold[k,j]; {* shuffled population 5 *}
              end;
{%%%%%% pm5}

{%%%%%% bm}
          for i := 1 to NP do
              for j := 1 to D do
                  bm[i,j] := bestmemiter[1,j]; {* population filled with *}
{%%%%%% bm}	                               {* the best member of the last iteration *}

{%%%%%% mui<CR}
          for i := 1 to NP do
              for j := 1 to D do
                  begin
                     teval := rand;
                     if teval < CR   {* all random numbers < CR are 1, 0 otherwise *}
                     then mui[i,j] := 1
                     else mui[i,j] := 0;
                  end;
{%%%%%% mui<CR}


{%%%%%% strategy<5}
      if  strategy > 5
        then st := strategy - 5
      else
        begin
            st := strategy;
            for i:= 1 to NP do    {* transpose, collect 1's in each column *}
                for j := 1 to D do
                    muitrans[j,i] := mui[i,j];

          for j := 1 to NP do
              begin
               ip:=0;
               ik:=D+1;
               for i := 1 to D do
                 begin
                   if muitrans[i,j]=0 then
                     begin
                       ip:=ip+1;
                       muitratm[ip,j]:=0;      {* shuffle locations of vectors *}
                     end
                   else
                     begin
                       ik:=ik-1;
                       muitratm[ik,j]:=1;
                     end;
                 end;
               end;

          for j := 1 to NP do
               for i := 1 to D do
                  muitrans[i,j]:=muitratm[i,j];

          for i := 1 to D do
              rotd[i] := i-1;

          for j := 1 to NP do
              begin
                 teval := rand * D;
	         n := trunc(teval);
	         if n > 0 then
                   begin
                     for i:=1 to D do
                       begin
                         transmata[i] := rotd[i] + n;
                         tempmata[i]  := transmata[i]/D;
                         rtd[i]  := trunc(tempmata[i]);
                         rtd[i]  := transmata[i] - D * rtd[i]; {* rotate column i by n *}
                       end;
                     for i :=1 to D do
                       begin
                         k := rtd[i] + 1;
                         muitratm[i,j] := muitrans[k,j];
                       end;
                   end;
              end;

          for i:= 1 to D do    {* transpose back *}
             for j := 1 to NP do
                mui[j,i] := muitratm[i,j];
        end;
{%%%%%% strategy<5}

{%%%%%% mpo}
          for i :=1 to NP do
              for j := 1 to D do
                  if mui[i,j] = 1
                  then mpo[i,j] := 0
                  else mpo[i,j] := 1;	{* inverse mask to mui *}
{%%%%%% mpo}

{%%%%%% st=1}
          if st = 1             {* DE/best/1 *}
          then
             for i := 1 to NP do
                 for j := 1 to D do
	             ui[i,j] := (popold[i,j] * mpo[i,j]) + ((bm[i,j] + F * (pm1[i,j] - pm2[i,j])) * mui[i,j])
          else
{%%%%%% st=2}
            if st = 2           {* DE/rand/1 *}
            then
               for i := 1 to NP do
                   for j :=1 to D do
                       ui[i,j] := (popold[i,j] * mpo[i,j]) + ((pm3[i,j] + F * (pm1[i,j] - pm2[i,j])) * mui[i,j])
            else
{%%%%%% st=3}
              if st = 3         {* DE/rand-to-best/1 *}
              then
                 for i := 1 to NP do
                     for j :=1 to D do
                       begin
                         ui[i,j] := popold[i,j] + F * (bm[i,j] - popold[i,j]) + F * (pm1[i,j] - pm2[i,j]);
                         ui[i,j] := (popold[i,j] * mpo[i,j]) + (ui[i,j] * mui[i,j]);
                       end
              else
{%%%%%% st=4}
                if st = 4       {* DE/best/2 *}
                then
	           for i := 1 to NP do
                       for j :=1 to D do
                           ui[i,j] := (popold[i,j] * mpo[i,j]) + ((bm[i,j] +
                           F * (pm1[i,j] - pm2[i,j] + pm3[i,j] - pm4[i,j])) * mui[i,j])
                else
{%%%%%% st=5}
                  if st = 5     {* DE/rand/2 *}
                  then
	             for i := 1 to NP do
                         for j :=1 to D do
                      	     ui[i,j] := (popold[i,j] * mpo[i,j]) + ((pm5[i,j] +
                             F * (pm1[i,j] - pm2[i,j] + pm3[i,j] - pm4[i,j])) * mui[i,j]);
{%%%%%% end st}



{%%%%%% start of main loop}
  for i:=1 to NP do
  begin
    for j:=1 to D do   {check range}
      if (ui[i,j]<XVmin[j]) then
         begin
           randtest:=rand;
           ui[i,j]:=XVmin[j] + randtest*(XVmax[j] - XVmin[j])
         end
      else if (ui[i,j]>XVmax[j]) then
         begin
           randtest:=rand;
           ui[i,j]:=XVmin[j] + randtest*(XVmax[j] - XVmin[j]);
         end;


    n_pop:=i;
    DC:=Determination(n_pop,ui);
    tempmemberval := odch_st;
    i:=n_pop;
    if (tempmemberval <= memberval[i]) then { if competitor is better than value in "cost array"}
       begin
         for j:=1 to D do
           begin
             pop[i,j] := ui[i,j];              { replace old vector with new one (for new iteration}
           end;
         memberval[i] := tempmemberval;     { save value in "cost array"}
       end;
       {----we update bestval only in case of success to save time-----------}
    if (tempmemberval < bestval) then       { if competitor better than the best one ever}
       begin
         bestval := tempmemberval;          { new best value}
         for j:=1 to D do
           begin
             bestmemiter[1,j] := ui[i,j];      { replace old vector with new one (for new iteration}
           end;
         Print_File;
         Print_Out;
       end;

  { freeze the best member of this iteration for the coming}
  { iteration. This is needed for some of the strategies.}
  end;
{%%%%%% end of main loop}

{*-----Select which vectors are allowed to enter the new population-----*}
  for j := 1 to D do
    begin
      bestmem[1,j] := bestmemiter[1,j];
      bestvalev := bestval;
    end;


      if bestvalev < VTR
      then goto theend;

      cur_gen := cur_gen + 1;


   end;

theend: writeln;
writeln('Calculations are done. "Value To Reach" has been reached.');
writeln('Results are in c:/result.txt file.');
writeln('Press any key...');
repeat until keypressed;

END.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女与黑人做爰| 国产高清不卡一区二区| 国产在线视频一区二区| 97超碰欧美中文字幕| 亚洲精品一区二区三区福利| 一区二区视频在线| 国产成人小视频| 日韩欧美一级特黄在线播放| 一区二区三区四区在线| 国产一区二区三区电影在线观看| 欧美亚洲国产一区二区三区| 国产精品欧美经典| 国产一区二区在线免费观看| 欧美高清一级片在线| 亚洲精品视频免费观看| 国产91综合网| 久久久噜噜噜久久中文字幕色伊伊| 亚洲h精品动漫在线观看| 91丨九色porny丨蝌蚪| 国产日韩欧美一区二区三区综合| 蜜桃在线一区二区三区| 欧美日本乱大交xxxxx| 亚洲精品国产无天堂网2021| 成人av片在线观看| 国产精品色在线观看| 国产精品综合视频| 欧美不卡一区二区| 麻豆成人av在线| 91精品国产综合久久久久久| 天天免费综合色| 欧美男生操女生| 日韩国产精品91| 91精品久久久久久久99蜜桃| 免费人成网站在线观看欧美高清| 这里只有精品视频在线观看| 日韩极品在线观看| 日韩精品最新网址| 国产一区二区三区在线观看免费| 久久综合九色综合久久久精品综合| 麻豆91免费看| 国产欧美一区二区三区沐欲| 在线一区二区三区| 一二三区精品福利视频| 欧美性生活大片视频| 亚洲成a天堂v人片| 日韩视频永久免费| 国产很黄免费观看久久| 欧美高清在线视频| 91福利视频久久久久| 性做久久久久久免费观看欧美| 欧美三级电影一区| 久久国产精品第一页| 欧美国产精品v| 一本久久a久久精品亚洲| 亚洲成人福利片| 欧美成人伊人久久综合网| 国产在线播放一区| 日韩美女精品在线| 欧美一级电影网站| 成人免费观看视频| 亚洲成人三级小说| 久久免费国产精品| 色婷婷国产精品久久包臀| 天堂蜜桃91精品| 欧美国产精品一区二区| 欧美日韩免费不卡视频一区二区三区| 日韩高清国产一区在线| 国产婷婷色一区二区三区四区| 91亚洲国产成人精品一区二区三 | 国产精品三级久久久久三级| 91国内精品野花午夜精品| 日本v片在线高清不卡在线观看| 亚洲品质自拍视频| 欧美xxxxxxxx| 欧美在线观看一区| 久久99精品久久久久久国产越南| 日韩伦理av电影| 精品国产亚洲一区二区三区在线观看| 丁香六月综合激情| 男男成人高潮片免费网站| |精品福利一区二区三区| 91精品中文字幕一区二区三区| 成人动漫在线一区| 老司机午夜精品| 亚洲一区二区精品3399| 欧美激情一区二区三区在线| 欧美一级欧美三级在线观看| 日本韩国精品在线| 国产a级毛片一区| 久久国产精品99久久久久久老狼| 亚洲激情校园春色| 国产精品网站一区| 欧美成人一级视频| 欧美高清视频一二三区| 色狠狠色噜噜噜综合网| 播五月开心婷婷综合| 国内精品免费在线观看| 日本三级亚洲精品| 亚洲免费观看高清完整版在线观看 | 91传媒视频在线播放| 国产一区二区免费在线| 丝袜美腿亚洲色图| 亚洲一区免费观看| 伊人色综合久久天天| 亚洲欧洲日韩在线| 国产精品成人网| 国产欧美视频一区二区| 国产亚洲精品久| 久久久国产综合精品女国产盗摄| 精品美女在线观看| 精品精品欲导航| 精品国产一区二区三区久久影院| 欧美一区二区精美| 日韩欧美色综合| 日韩欧美在线不卡| 精品日韩在线观看| 久久青草国产手机看片福利盒子| 欧美大黄免费观看| 久久婷婷久久一区二区三区| 久久综合av免费| 国产亚洲一区二区三区在线观看 | 中文字幕日韩一区| 亚洲视频资源在线| 一区二区视频在线看| 亚洲地区一二三色| 天堂成人免费av电影一区| 丝瓜av网站精品一区二区 | 91精品国产麻豆| 欧美一区二区三区啪啪| 欧美成va人片在线观看| 久久午夜电影网| 中文一区在线播放| 亚洲人成在线观看一区二区| 亚洲一区二区在线视频| 亚洲.国产.中文慕字在线| 蜜桃久久久久久久| 国产一区 二区| 99视频在线精品| 欧美日韩国产色站一区二区三区| 日韩亚洲欧美成人一区| 国产拍欧美日韩视频二区| 亚洲视频在线一区观看| 日韩激情av在线| 欧美日韩一区 二区 三区 久久精品| 欧美日韩综合在线免费观看| 日韩美女一区二区三区四区| 国产精品久久久久久久第一福利| 一片黄亚洲嫩模| 狠狠色丁香婷婷综合久久片| 91美女片黄在线观看| 欧美夫妻性生活| 国产精品午夜久久| 亚洲va国产va欧美va观看| 国产乱码精品一品二品| 色8久久人人97超碰香蕉987| 91精品一区二区三区久久久久久 | 国产精品国产三级国产普通话99 | 国产精品成人一区二区艾草 | 91精品国产高清一区二区三区| 久久夜色精品国产噜噜av| 亚洲综合在线观看视频| 蜜桃在线一区二区三区| 一本色道亚洲精品aⅴ| 精品国产乱码久久久久久闺蜜 | 国产色婷婷亚洲99精品小说| 夜色激情一区二区| 国产成人激情av| 日韩一区二区精品| 一区二区三区成人| 国产成人精品在线看| 欧美精品一二三| 亚洲精品国产成人久久av盗摄| 国内精品国产成人国产三级粉色 | 精品国产乱码久久| 亚洲成人在线免费| 91麻豆123| 国产成人精品综合在线观看| 中日韩免费视频中文字幕| 国产麻豆成人传媒免费观看| 91视频.com| 中文av字幕一区| 国产成人综合在线| 日韩精品在线网站| 日韩中文字幕亚洲一区二区va在线| 99精品黄色片免费大全| 国产婷婷色一区二区三区在线| 精品一区二区三区影院在线午夜| 欧美日韩中字一区| 一区二区日韩电影| 欧美综合在线视频| 亚洲小少妇裸体bbw| 91精品福利视频| 亚洲精品日日夜夜| 91福利视频网站| 一区二区三区精品视频在线| 色狠狠一区二区| 亚洲午夜私人影院| 欧美日韩国产区一| 日韩专区在线视频| 日韩免费一区二区|