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

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

?? scs.cpp

?? 模擬遺傳算法解決TSP問題
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
 rep<<" 多路復用器輸出 = "<<environrec->output<<endl;
 rep<<" 分類器輸出     = "<<environrec->classifieroutput<<endl;
}

int randomchar(double pgeneral)
{
  if(flip((float)pgeneral))
   return(wildcard);
  else if(flip(0.5))
    return(1);
  else
    return(0);
}

void readcondition(int *c,float pgeneral,int nposition)
{
 char ch;
 int j;
    for(j=0;j<=nposition-1;j++)
  {
   cfile>>ch;
   switch(ch)
   {
   case '0':
         c[nposition-1-j]=0;
		 break;
   case '1':
         c[nposition-1-j]=1;
		 break;
   case '#':
         c[nposition-1-j]=wildcard;
		 break;
   case 'R':
         c[nposition-1-j]=randomchar(pgeneral);
		 break;
      }
   	}
 }

void readclassifier(struct classtype *Class,float pgeneral,int nposition)
{
   char ch;
   readcondition(Class->c,pgeneral,nposition);
   cfile>>ch;
   cfile>>Class->a;
   cfile>>Class->strength;
   Class->bid=0.0; Class->ebid=0.0; Class->matchflag=0;
}

int counterspecificity(int *c, int nposition)
{
  int j;
  int temp;
  temp=0;
  j=0;
  while(j<=nposition-1)
  {
   if(c[j]!=wildcard)  temp=temp+1;
   j++;
  }
  return(temp);
}

void initclassifiers(struct poptype *population)
{
    int j;
    cfile>>population->pgeneral;
    cfile>>population->cbid;
    cfile>>population->bidsigma;
    cfile>>population->bidtax;
    cfile>>population->lifetax;
    cfile>>population->bid1;
    cfile>>population->bid2;
    cfile>>population->ebid1;
    cfile>>population->ebid2;
  for(j=0;j<=population->nclassifier-1; j++)
   {
    readclassifier(&population->classifier[j],population->pgeneral,population->nposition);
    population->classifier[j].specificity=counterspecificity(population->classifier[j].c,population->nposition);
   }
 }

void initrepclassifiers(struct poptype *population)
{
 skip(1);
 rep<<"         分類器表參數:                    "<<endl;
 rep<<"------------------------------------------"<<endl;
 rep<<" 分類器數目                 = "<< population->nclassifier<<endl;
 rep<<" 分類器前件碼長             = "<< population->nposition<<endl;
 rep<<" 投標系數                   = "<< population->cbid<<endl;
 rep<<" 有效投標中隨機噪聲的均方差 = "<< population->bidsigma<<endl;
 rep<<" 投標稅                     = "<< population->bidtax<<endl;
 rep<<" 存活稅                     = "<< population->lifetax<<endl;
 rep<<" 隨機概率                   = "<< population->pgeneral<<endl;
 rep<<" 投標確定性基數             = "<< population->bid1<<endl;
 rep<<" 投標確定性倍率             = "<< population->bid2<<endl;
 rep<<" 有效投標確定性基數         = "<< population->ebid1<<endl;
 rep<<" 有效投標確定性倍率         = "<< population->ebid2<<endl;
}

void  writecondition(int *c,int nposition)
{
int j;
for(j=0;j<=nposition-1; j++)
  {
	 switch(c[nposition-1-j])
	{
	case 1:
	   rep<<"1";
	   break;
	case 0:
	   rep<<"0";
	   break;
	case wildcard:
	   rep<<"#";
	   break;
    }     
   }
 }

void writeclassifier(struct classtype *Class,int number,int nposition)
{
 rep<<setw(4)<<number<<"  ";
 rep<<setiosflags(ios::fixed);
 rep<<setprecision(4)<<Class->strength<<"   ";
 rep<<setprecision(3)<<Class->bid;
 rep<<setw(12)<<Class->ebid;
 if(Class->matchflag)
 rep<<"    X   ";
 else
 rep<<"        ";
 writecondition(Class->c,nposition);
 rep<<"["<<setw(3)<<Class->a<<"]"<<endl;
}

void reportclassifiers(struct poptype *population)
{
 int j;
 skip(1);
 rep<<"  編號    權值   投標  有效投標    匹配    分類器  "<<endl;
 rep<<"-----------------------------------------------------"<<endl;
  for(j=0;j<=population->nclassifier-1; j++)
   writeclassifier(&population->classifier[j],j,population->nposition);
}

int match(int *c,int *m, int nposition)
{
  int matchtemp,np;
  np=nposition-1;
  matchtemp=1;
  while(matchtemp && (np>=0))
  {
   matchtemp=(c[np]==wildcard)||(c[np]==m[np]);
   np=np-1;
  }
return(matchtemp);
}

void matchclassifiers(struct poptype *population,int *emess,struct classlist *matchlist)
{
  int j;
  matchlist->nactive=0;
  for(j=0;j<=population->nclassifier-1; j++)
  {
     population->classifier[j].matchflag=match(population->classifier[j].c,emess,population->nposition);
     if(population->classifier[j].matchflag)
     {
     matchlist->clist[matchlist->nactive]=j;
	 matchlist->nactive=matchlist->nactive+1;
	  }
   }
 }

void initaoc(struct crecord *clearingrec)
{
    char ch;
    cfile>>ch;
    clearingrec->bucketbrigadeflag=(ch=='y')||(ch=='Y') ;
    clearingrec->winner=0; clearingrec->oldwinner=0;
}

void initrepaoc(struct crecord *clearingrec)
{
 skip(1);
 rep<<"      信任分配參數: "<<endl;
 rep<<"-----------------------------"<<endl;
 rep<<" 桶隊列標志變量  =";
 if(clearingrec->bucketbrigadeflag)
 rep<<"1"<<endl;
 else
 rep<<"0"<<endl;
}

int auction(struct poptype *population,struct classlist *matchlist,int oldwinner)
{
int j,k,winner;
float bidfmaximum;
bidfmaximum=0.0;
winner=oldwinner;
if(matchlist->nactive>=0)
 {
   for(j=0;j<=matchlist->nactive-1;j++)
   {
     k=matchlist->clist[j];
     population->classifier[k].bid=population->cbid*(population->bid1+
         population->bid2*population->classifier[k].specificity)*population->classifier[k].strength;
     population->classifier[k].ebid=population->cbid*(population->ebid1+
              population->ebid2*population->classifier[k].specificity)*population->classifier[k].strength+noise(0,population->bidsigma);
     if(population->classifier[k].ebid>bidfmaximum)
         {
          winner=k;
	      bidfmaximum=population->classifier[k].ebid;
         }
    }
 }
 return(winner);
}

void clearinghouse(struct poptype *population,struct crecord *clearingrec)
{
 float payment;
 payment=population->classifier[clearingrec->winner].bid;
 population->classifier[clearingrec->winner].strength=population->classifier[clearingrec->winner].strength-payment;
 if(clearingrec->bucketbrigadeflag)
  population->classifier[clearingrec->oldwinner].strength=population->classifier[clearingrec->oldwinner].strength+payment;
}

void taxcollector(struct poptype *population)
{
  int j;
  float bidtaxswitch;
  if((population->lifetax!=0.0)||(population->bidtax!=0.0))
   {
       for(j=0;j<=population->nclassifier-1; j++)
       {
        if(population->classifier[j].matchflag)
          bidtaxswitch=1.0;
        else
          bidtaxswitch=0.0;
        population->classifier[j].strength=population->classifier[j].strength-
                         population->lifetax*population->classifier[j].strength-
                         population->bidtax*bidtaxswitch*population->classifier[j].strength;
       }
   }
}

void reportaoc(struct crecord *clearingrec)
{
 skip(1);
 rep<<" 新勝者 ["<<clearingrec->winner<<"]  舊勝者 ["<<clearingrec->oldwinner<<"] "<<endl;
}

void aoc(struct poptype *population,struct classlist *matchlist,struct crecord *clearingrec)
{
   clearingrec->winner=auction(population,matchlist,clearingrec->oldwinner);
   taxcollector(population);
   clearinghouse(population,clearingrec);
}

void initreinforcement(struct rrecord *reinforcementrec)
{
 rfile>>reinforcementrec->reward;
 reinforcementrec->rewardcount=0.0;
 reinforcementrec->rewardcount50=0.0;
 reinforcementrec->totalcount=0.0;
 reinforcementrec->count50=0.0;
 reinforcementrec->proportionreward=0.0;
 reinforcementrec->proportionreward50=0.0;
 reinforcementrec->lastwinner=0;
}

void initrepreinforcement(struct rrecord *reinforcementrec)
{
 skip(1);
 rep<<"       增強參數: "<<endl;
 rep<<"--------------------------"<<endl;
 rep<<" 增強得分 ="<<reinforcementrec->reward<<endl;
}

int criterion(struct rrecord *rrec,struct erecord *environrec)
{
   int tempflag;
   tempflag=(environrec->output==environrec->classifieroutput);
   rrec->totalcount=rrec->totalcount+1;
   rrec->count50=rrec->count50+1;
   if(tempflag)
   {
    rrec->rewardcount=rrec->rewardcount+1;
    rrec->rewardcount50=rrec->rewardcount50+1;
   }
   rrec->proportionreward=rrec->rewardcount/rrec->totalcount;
   if((int)ceil(rrec->count50-50.0)==0)
    {
    rrec->proportionreward50=(float)(rrec->rewardcount50/50.0);
    rrec->rewardcount50=0.0; rrec->count50=0.0;
    }
   return(tempflag);
}

void payreward(struct poptype *population,struct rrecord *rrec,struct crecord *clearingrec)
{
  population->classifier[clearingrec->winner].strength=
           population->classifier[clearingrec->winner].strength+rrec->reward;
  rrec->lastwinner=clearingrec->winner;
}

void reportreinforcement(struct rrecord *reinforcementrec)
{
 skip(1);
 rep<<"          增強報告:"<<endl;
 rep<<"---------------------------------------"<<endl;
 rep<<" 正確比例(from start) ="<<reinforcementrec->proportionreward<<endl;
 rep<<" 正確比例(last fifty) ="<<reinforcementrec->proportionreward50<<endl;
 rep<<" 最終獲勝分類器號     ="<<reinforcementrec->lastwinner<<endl;
}

void reinforcement(struct rrecord *reinforcementrec,struct poptype *population,
             struct crecord *clearingrec,struct erecord *environrec)
{
 if(criterion(reinforcementrec,environrec))
  payreward(population,reinforcementrec,clearingrec);
}

void advance(struct crecord *clearingrec)
{
 clearingrec->oldwinner=clearingrec->winner;
}

void initga(struct grecord *garec,struct poptype *population)
{
    gfile>>garec->populationselect;
    gfile>>garec->pmutation;
    gfile>>garec->pcrossover;
    gfile>>garec->crowdingfactor;
    gfile>>garec->crowdingsubpop;
    garec->nselect=(int)(garec->populationselect*population->nclassifier*0.5);
    garec->nmutation=0; garec->ncrossover=0;
}

void initrepga(struct grecord *garec)
{
 skip(1);
 rep<<"          遺傳算法參數: "<<endl;
 rep<<"---------------------------------------"<<endl;
 rep<<" 選擇分類器比例 ="<<garec->populationselect<<endl;
 rep<<" 選擇分類器數目 ="<<garec->nselect<<endl;
 rep<<" 變異概率         ="<<garec->pmutation<<endl;
 rep<<" 交叉概率         ="<<garec->pcrossover<<endl;
 rep<<" 排擠因子       ="<<garec->crowdingfactor<<endl;
 rep<<" 排擠子種群     ="<<garec->crowdingsubpop<<endl;
}

int select(struct poptype *population)
{
double random;
float partsum;
int j;
partsum=0.0; j=-1;
random=rand()/32767.*population->sumstrength;
do
   {
   j++;
   partsum=partsum+population->classifier[j].strength;
    } while((partsum<random) &&(j<population->nclassifier));
 return(j);
}

int mutation(int positionvalue,float pmutation,long &nmutation )
{
int tempmutation;
if(flip(pmutation))
 {
   tempmutation=(int)fmod( (double)(positionvalue+rnd(1,2)+1), 3.0)-1;
   nmutation=nmutation+1;
 }
else
   tempmutation=positionvalue;
return( tempmutation);
}

int bmutation(int positionvalue,float pmutation,long &nmutation )
{
int tempmutation;
if(flip(pmutation))
 {
   tempmutation=(int)fmod( (double)(positionvalue+1), 2.0);
    nmutation=nmutation+1;
 }
else
   tempmutation=positionvalue;
return( tempmutation);
}

void crossover(struct classtype *parent1,struct classtype *parent2,struct classtype *child1,struct classtype *child2,
       float pcrossover,float pmutation,int &sitecross,int nposition,long &ncrossover,long &nmutation)
{
float inheritance;
int j;
if(flip(pcrossover))
{
  sitecross=rnd(0,nposition-2);
  ncrossover=ncrossover+1;
}
else
  sitecross=nposition;
 child1->a=bmutation(parent1->a,pmutation,nmutation);
 child2->a=bmutation(parent2->a,pmutation,nmutation);
j=sitecross;
while(j<=nposition-1) 
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品传媒在线观看| 午夜激情久久久| 午夜激情一区二区三区| 国产高清久久久| 日韩一级二级三级| 亚洲乱码国产乱码精品精98午夜 | 亚洲午夜电影在线观看| 国产一区二区三区四| 欧美一级片在线看| 一区二区三区国产精品| 成人在线视频一区| 久久久久久一二三区| 青青草国产成人99久久| 在线观看日韩一区| 亚洲精品国产a久久久久久| 成人毛片在线观看| 26uuu另类欧美亚洲曰本| 日韩经典中文字幕一区| 色婷婷精品大视频在线蜜桃视频| 欧美国产1区2区| 国产成人免费网站| 国产视频一区在线播放| 国产在线精品免费av| 欧美变态凌虐bdsm| 麻豆精品新av中文字幕| 91精品国产丝袜白色高跟鞋| 午夜欧美在线一二页| 欧美日韩一级二级| 午夜精品久久久久| 日韩一区二区三区视频在线观看| 五月天亚洲精品| 9191国产精品| 奇米四色…亚洲| 日韩欧美你懂的| 国产精品一线二线三线| 国产欧美久久久精品影院| 成人免费视频一区二区| 亚洲欧洲av在线| 色爱区综合激月婷婷| 亚洲综合丁香婷婷六月香| 欧美日韩久久不卡| 男女视频一区二区| 久久亚洲精品国产精品紫薇| 国产成人综合网站| 亚洲免费高清视频在线| 欧美日本国产视频| 韩国毛片一区二区三区| 中文字幕欧美日韩一区| 9l国产精品久久久久麻豆| 亚洲精品成人悠悠色影视| 8v天堂国产在线一区二区| 精品在线一区二区三区| 欧美高清在线精品一区| 在线日韩一区二区| 男女男精品网站| 国产精品国产三级国产aⅴ原创| 一本一本大道香蕉久在线精品| 午夜一区二区三区在线观看| 精品入口麻豆88视频| 成人av午夜电影| 亚洲一级不卡视频| 26uuu国产日韩综合| 色国产精品一区在线观看| 久久精品国产77777蜜臀| 日本一区二区动态图| 欧美色精品在线视频| 久久国产三级精品| 亚洲激情在线播放| 久久综合色婷婷| 色94色欧美sute亚洲13| 国产在线精品一区二区夜色| 中文字幕制服丝袜成人av| 91精品国产黑色紧身裤美女| 成人黄色在线网站| 日本欧洲一区二区| 亚洲伦理在线精品| 久久久久一区二区三区四区| 欧美日韩国产三级| 99精品在线免费| 国产一区二区电影| 日韩成人午夜精品| 一二三四社区欧美黄| 欧美国产精品一区二区| 日韩视频一区二区| 在线精品国精品国产尤物884a| 国产一区二区三区黄视频 | 国产成人免费视频| 日本女优在线视频一区二区| 亚洲日本va午夜在线影院| 精品国产一区二区三区久久影院| 在线观看一区二区精品视频| 国产成人高清在线| 精品一区二区三区在线播放视频 | 亚洲欧美另类综合偷拍| 国产偷国产偷亚洲高清人白洁| 91麻豆精品国产91久久久久久久久| 成人性视频免费网站| 精品一区二区综合| 久久精品国产亚洲高清剧情介绍 | 欧美激情一区二区三区全黄| 678五月天丁香亚洲综合网| 色域天天综合网| av在线播放不卡| 懂色一区二区三区免费观看| 九九九久久久精品| 免费亚洲电影在线| 日韩av不卡在线观看| 午夜精品久久久久久久99水蜜桃 | 国产精品一区二区你懂的| 国模少妇一区二区三区| 麻豆91免费观看| 韩国欧美国产1区| 国产麻豆视频一区二区| 韩国成人在线视频| 国产成人在线视频免费播放| 国产一区二区精品在线观看| 国产高清精品网站| youjizz国产精品| 99r国产精品| 欧美亚洲自拍偷拍| 3atv在线一区二区三区| 精品美女在线观看| 久久在线观看免费| 国产精品福利电影一区二区三区四区| 最新中文字幕一区二区三区| 亚洲图片激情小说| 亚洲综合色噜噜狠狠| 丝袜亚洲另类欧美| 久久国产福利国产秒拍| 大桥未久av一区二区三区中文| 成人一区二区三区视频| 色综合色综合色综合色综合色综合| 在线影院国内精品| 91精品视频网| 久久久av毛片精品| 亚洲欧美电影一区二区| 日韩福利视频导航| 粉嫩aⅴ一区二区三区四区五区| 97久久人人超碰| 欧美一区二区三区在线看| 国产三级精品三级| 亚洲精品免费在线| 久久99蜜桃精品| 99久久免费精品高清特色大片| 欧美中文字幕亚洲一区二区va在线 | 一区二区三区四区亚洲| 天堂一区二区在线| 丁香激情综合国产| 91精品国产高清一区二区三区蜜臀| 久久久综合网站| 亚洲国产wwwccc36天堂| 国产91富婆露脸刺激对白| 欧美日免费三级在线| 国产人久久人人人人爽| 亚洲chinese男男1069| 国产一区二区三区高清播放| 欧美亚日韩国产aⅴ精品中极品| 精品国产免费久久 | 亚洲人一二三区| 激情丁香综合五月| 91捆绑美女网站| 精品国产免费一区二区三区四区| 亚洲一区在线观看网站| 国产精品亚洲一区二区三区在线| 欧美亚洲精品一区| 国产精品理论片在线观看| 狠狠色狠狠色综合系列| 欧美精品三级日韩久久| 亚洲美腿欧美偷拍| 成人免费精品视频| 久久久久久久久97黄色工厂| 亚洲国产一二三| 97se亚洲国产综合自在线不卡| 久久影院视频免费| 美女网站色91| 91精品国产综合久久香蕉的特点| 亚洲视频一二区| 99精品久久免费看蜜臀剧情介绍| 精品成人在线观看| 日本不卡一区二区三区高清视频| 色综合视频一区二区三区高清| 国产精品欧美一级免费| 久久国产精品一区二区| 欧美区视频在线观看| 亚洲综合无码一区二区| 91丨porny丨蝌蚪视频| 国产精品久久久久影院| 国产精品综合一区二区三区| 欧美一区二区三区男人的天堂| 无吗不卡中文字幕| 3751色影院一区二区三区| 舔着乳尖日韩一区| 欧美日韩一区二区三区在线看| 一区二区三区欧美日韩| 日本韩国欧美一区| 亚洲精品一二三| 欧美裸体bbwbbwbbw| 青青草97国产精品免费观看无弹窗版| 制服.丝袜.亚洲.另类.中文| 丝袜美腿成人在线|