展會(huì)信息港展會(huì)大全

蟻群算法小程序(C/C++語(yǔ)言實(shí)現(xiàn))(四)
來(lái)源:互聯(lián)網(wǎng)   發(fā)布日期:2011-09-07 12:37:46   瀏覽:7050次  

導(dǎo)讀:本文介紹用C/C++語(yǔ)言實(shí)現(xiàn)蟻群算法小程序的方法及代碼。 蟻群算法小程序(C/C++語(yǔ)言實(shí)現(xiàn))(四)...


 ms = MAX_SMELL;
  break;
  }
  if(IsTrace(i,j)) continue;
  if(Smell[type][i][j]>ms) ms = Smell[type][i][j];
  }
  break;
  case DOWN:  for(i=xxx-ANT_EYESHOT;i<=xxx+ANT_EYESHOT;i++)
  for(j=yyy+1;j<=yyy+ANT_EYESHOT;j++)
  {
  if(!JudgeCanGo(i,j)) continue;
  if((i==food.xxx&&j==food.yyy&&type==SMELL_TYPE_FOOD)||
  (i==home.xxx&&j==home.yyy&&type==SMELL_TYPE_HOME))
  {
  ms = MAX_SMELL;
  break;
  }
  if(IsTrace(i,j)) continue;
  if(Smell[type][i][j]>ms) ms = Smell[type][i][j];
  }
  break;
  case LEFT:  for(i=xxx-ANT_EYESHOT;i 
  for(j=yyy-ANT_EYESHOT;j<=yyy+ANT_EYESHOT;j++)
  {
  if(!JudgeCanGo(i,j)) continue;
  if((i==food.xxx&&j==food.yyy&&type==SMELL_TYPE_FOOD)||
  (i==home.xxx&&j==home.yyy&&type==SMELL_TYPE_HOME))
  {
  ms = MAX_SMELL;
  break;
  }
  if(IsTrace(i,j)) continue;
  if(Smell[type][i][j]>ms) ms = Smell[type][i][j];
  }
  break;
  case RIGHT: for(i=xxx+1;i<=xxx+ANT_EYESHOT;i++)
  for(j=yyy-ANT_EYESHOT;j<=yyy+ANT_EYESHOT;j++)
  {
  if(!JudgeCanGo(i,j)) continue;[Page]
  if((i==food.xxx&&j==food.yyy&&type==SMELL_TYPE_FOOD)||
  (i==home.xxx&&j==home.yyy&&type==SMELL_TYPE_HOME))
  {
  ms = MAX_SMELL;
  break;
  }
  if(IsTrace(i,j)) continue;
  if(Smell[type][i][j]>ms) ms = Smell[type][i][j];
  }
  break;
  default:    break;
  }
  return(ms);
  }
  int IsTrace(int xxx,int yyy)
  {
  int i;
  for(i=0;i 
  if(ant[AntNow].tracex[i]==xxx&&ant[AntNow].tracey[i]==yyy) return(1);
  return(0);
  }
  int MaxLocation(int num1,int num2,int num3)
  {
  int maxnum;
  if(num1==0&&num2==0&&num3==0) return(0);
  maxnum = num1;
  if(num2>maxnum) maxnum = num2;
  if(num3>maxnum) maxnum = num3;
  if(maxnum==num1) return(1);
  if(maxnum==num2) return(2);
  if(maxnum==num3) return(3);
  }
  int CanGo(int xxx,int yyy,int ddir)
  /* input: xxx,yyy - location of ant
  ddir - now dir
  output: 0 - forward and left and right can go
  1 - forward can not go
  2 - left can not go
  3 - right can not go
  4 - forward and left can not go
  5 - forward and right can not go
  6 - left and right can not go
  7 - forward and left and right all can not go
  */

贊助本站

相關(guān)熱詞: 蟻群 算法 小程 言實(shí)

相關(guān)內(nèi)容
AiLab云推薦
展開(kāi)

熱門(mén)欄目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能實(shí)驗(yàn)室 版權(quán)所有    關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 公司動(dòng)態(tài) | 免責(zé)聲明 | 隱私條款 | 工作機(jī)會(huì) | 展會(huì)港