91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 917KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-11
  • 語言: 其他
  • 標簽: matlab??

資源簡介

中國34省會旅行商問題,最優路徑求解,不同于一般的31省會 設計比較簡單 大家可以討論討論

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
using?namespace?std;

const?int?iAntCount?=?34;//螞蟻數量
const?int?iCityCount?=?34;//城市數量
const?int?iItCount?=?10000;//最大跌代次數
const?double?Q?=?100;//每只螞蟻周游一遍留下的信息素總量
const?double?alpha?=?1;//信息素濃度所起作業的程序
const?double?beta?=?5;//期望值所起作用的程度
double?rou?=?0.5;//揮發系數
int?besttour[iCityCount];//最優路徑列表
int?count=0;//記錄連續多少代沒有產生更優的解
double??rnd(double?lowdouble?uper)//獲得隨機數?范圍為?[low?uper]
{
double?p?=?(rand()/(double)RAND_MAX)*((uper)-(low))+(low);
return?p;
};

int?rnd(int?uper) //返回[0uper]之間的整數
{
return?(rand()%uper);
};
class?GInfo?{//tsp地圖信息,包含了信息素,城市距離,和信息素變化矩陣
public:?
double?m_dDeltTrial[iCityCount][iCityCount];?//信息素變化矩陣
double?m_dTrial[iCityCount][iCityCount];?//信息素
double?distance[iCityCount][iCityCount];?//城市距離
};
GInfo?Map; //地圖
class?ant?{ //螞蟻類
private:
int?ChooseNextCity();//選擇城市
int?m_iCityCount; //已走過的城市個數
int?AllowedCity[iCityCount];//沒有走過的城市
public:
void?addcity(int?city);?//把城市放到已走過的路數組中
int?tabu[iCityCount];/*記錄螞蟻行走順序*/
void?Reset();??//重置
void?UpdateLength();?//更新路徑長度
double?m_dLength; //路徑長度
void?mov(); //直到下一步
ant();
double?AntProduct(?int?from?int?to?); //螞蟻在from和to城市之間的路線上撒下的信息素
};
void?ant::Reset()
{
int?i;
m_dLength=0;

for(i=0;?i AllowedCity[i]=1;
}

i=tabu[iCityCount-1];??//從終點城市返回
m_iCityCount=0;
addcity(i);
}
ant::ant()
{
int?i;
m_dLength=0;
m_iCityCount=0;

for(i=0;i AllowedCity[i]=1;/*一開始每個城市都可訪問*/
}
}
void?ant::addcity(int?city)
{
tabu[m_iCityCount]=city;?//記錄city為走過的城市
m_iCityCount++;
AllowedCity[city]=0;
}
double?ant::AntProduct(int?from?int?to?)
{
double?p;
p=pow((1.0/Map.distance[from][to])beta)*pow((Map.m_dTrial[from][to])alpha); //轉移期望
if(?p<=0)p=rnd(01)*pow(?(1.0?/?Map.distance[from][to])?beta);??//如果沒有其他螞蟻走過,就按距離選擇
return?p;
}
int?ant::ChooseNextCity()
{
int?ito=-1; //to為下一個要到的城市
double?hormone=0; //信息總量
int?curCity=tabu[m_iCityCount-1]; //當前城市

if(count<6) //如果沒有產生最優解的代數不超過6,則斷續按信息素的濃度選擇城市
{
for?(i=0;i if((AllowedCity[i]==1))?{
hormone?+=?AntProduct(curCityi);//計算信息總量
}
}

if(hormone==0.0)
{
to=rnd(iCityCount); //如果所有的城市都走完一遍,則隨意先一個城市
}
else
{
for(to=0;to {
double?p;
if(AllowedCity[to]==1)
{
p=AntProduct(curCityto)/hormone;
if(rnd(01) break;
}
}
}
if(to==iCityCount)
{
hormone=-1;
for(i=0;i if(AllowedCity[i]==1)
{
if?(hormone hormone=AntProduct(curCityi); //如果上一步選擇失敗,則選擇具有最大信息量的城市
to=i;
}
}
}
}

if(count>=6) //當連續6代都沒有產生更短的路徑,則
{
for?(?i=0;i if((AllowedCity[i]==1))?{
to=i;
count=0;
rou=0.5;
if(rnd(0.01.0)>0.5) //隨機選擇一個還沒訪問的城市

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????644??2014-01-15?10:33??蟻群算法2\data.txt

?????文件??????82944??2014-01-15?10:57??蟻群算法2\Debug\vc60.idb

?????文件?????110592??2014-01-15?10:55??蟻群算法2\Debug\vc60.pdb

?????文件?????561207??2014-01-15?10:55??蟻群算法2\Debug\蟻群算法2.exe

?????文件?????762328??2014-01-15?10:55??蟻群算法2\Debug\蟻群算法2.ilk

?????文件?????293838??2014-01-15?10:55??蟻群算法2\Debug\蟻群算法2.obj

?????文件????2116968??2014-01-15?10:00??蟻群算法2\Debug\蟻群算法2.pch

?????文件????1074176??2014-01-15?10:55??蟻群算法2\Debug\蟻群算法2.pdb

?????文件????????943??2014-01-15?10:58??蟻群算法2\fout.txt

?????文件?????249368??2014-01-15?10:58??蟻群算法2\result.txt

?????文件???????9094??2014-01-15?10:55??蟻群算法2\蟻群算法2.cpp

?????文件???????4322??2014-01-15?11:03??蟻群算法2\蟻群算法2.dsp

?????文件????????526??2014-01-15?10:00??蟻群算法2\蟻群算法2.dsw

?????文件??????33792??2014-01-15?11:03??蟻群算法2\蟻群算法2.ncb

?????文件??????48640??2014-01-15?11:03??蟻群算法2\蟻群算法2.opt

?????文件???????1299??2014-01-15?10:55??蟻群算法2\蟻群算法2.plg

?????目錄??????????0??2014-01-15?10:55??蟻群算法2\Debug

?????目錄??????????0??2014-01-15?11:03??蟻群算法2

-----------?---------??----------?-----??----

??????????????5350681????????????????????18


評論

共有 條評論