資源簡介
遺傳算法進行車輛路徑規(guī)劃算法 蟻群算法-車輛路徑問題

代碼片段和文件信息
#include?“StdAfx.h“
#include?“.\ant.h“
CAnt::CAnt(void)
{
memset(m_nPath0sizeof(m_nPath));
m_nPathCount=0;?//路徑里的點個數(shù)
}
CAnt::~CAnt(void)
{
}
//初始化
void?CAnt::Init()
{
//===?隨機生成發(fā)車順序?==============================================
//先設置成按循序發(fā)車
for?(int?i=0;i {
m_CarOrderAry[i]=i;
}
//然后隨機交換數(shù)組中兩個位置的車輛,打亂發(fā)車順序
int?nTemp1=0;
int?nTemp2=0;
int?nTemp=0;
for?(int?i=0;i {
nTemp1=rnd(0CAR_COUNT);
nTemp2=rnd(0CAR_COUNT);
if?(nTemp1?!=?nTemp2)
{
nTemp=m_CarOrderAry[nTemp1];
m_CarOrderAry[nTemp1]=m_CarOrderAry[nTemp2];
m_CarOrderAry[nTemp2]=nTemp;
}
}
???
//==設置每輛車已經(jīng)走過的長度、已經(jīng)配載的重量、發(fā)車次數(shù)、行程時間為0===============================================
for?(int?i=0;i {
m_CarAry[i].dbMovedLength=0.0;
m_CarAry[i].dbMovedWeight=0.0;
m_CarAry[i].dbMovedTime=0.0;
m_CarAry[i].nSendCount=0;
}
//==設置當前車隊中的第1輛車進行派送====================================
m_nCurCarIndex=0;?
//==設置全部城市為沒有去過===============================================
for?(int?i=0;i<=CITY_COUNT;i++)
{
m_AllowedCity[i]=1;
}
//==設置路徑為空===============================================
for?(int?i=0;i<=N_MAX_PATH;i++)
{
m_nPath[N_MAX_PATH]=0;
}
m_nPath[0]=m_CarOrderAry[0]+1+CITY_COUNT;?//把第1輛車的編號加入路徑
m_nPathCount=1;?//路徑里的點個數(shù)為1,因為配送站為開始點
//==設置走過的城市數(shù)量為0===============================================
m_nCityCount=0;
//==設置當前所在城市為0?(0代表配送站)===============================================
m_nCurCity=0;
//==設置走過的路徑長度為最大值===============================================
m_dbPathLength=DB_MAX;
//==設置選擇策略===========================================================
m_dbQ=Q_Max;?//先設置為最大值,每次搜索完成,這個值都會動態(tài)改變的
????????????????????????????????//改變原則為,隨著迭代次數(shù)的增加,由大變小再變大,就是初期大,中間小,后期大
//==搜索失敗標志置假===========================================================
m_blSearchFail=false;
}
//為當前汽車,選擇下一個城市
//注意!編號為0的城市是配送站,不列在選擇范圍內(nèi)
//返回值?為城市編號
//如果返回為0,表示當前車需要返回配送站,重新派車隊中的下一輛車
int?CAnt::ChooseNextCity()
{
int?nSelectedCity=-1;?//返回結果,先暫時把其設置為-1
int?nCarNo=m_CarOrderAry[m_nCurCarIndex];?//得到當前那輛車在派送
//==============================================================================
//計算當前城市和沒去過的城市之間的信息素總和
double?dbTotal=0.0;
double?prob[N_MAX_CITY_COUNT+1];?//?保存城市被選中的概率
for?(int?i=1;i<=CITY_COUNT;i++)
{
if?(m_AllowedCity[i]?==?1)?//城市沒去過
{
//如果有硬時間窗限制,檢查一下是否把該城市列入選擇對象
if?(g_nHTW?==?1)
{
//如果車輛從當前城市達到該城市,超過時間窗限制,則設置其選擇概率值為0,不進行選擇
if?(m_CarAry[nCarNo].dbMovedTime+g_distance[m_nCurCity][i]/g_CarAry[nCarNo].dbSpeed?>?g_CityAry[i].dbTE)
{
prob[i]=0.0;
}
else
{
prob[i]=g_Prob[m_nCurCity][i]/g_CityAry[i].dbTE;?//加入時間窗的影響
}
}
else
{
prob[i]=g_Prob[m_nCurCity][i];??//先使用查表法,得到從當前城市到該城市的選擇概率值
??????????????????????????????????????????????????????????????//兩兩城市間的選擇概率值,已經(jīng)在每次更新完環(huán)境信息素后計算好
}
dbTotal=dbTotal+prob[i];??//累加信息素,
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????78815??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\01_可執(zhí)行文件\anthelp.chm
?????文件?????110592??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\01_可執(zhí)行文件\CANT.exe
?????文件????1105920??2017-05-04?20:53??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\01_可執(zhí)行文件\mfc80.dll
?????文件?????632656??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\01_可執(zhí)行文件\msvcr80.dll
?????文件?????536576??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\01_可執(zhí)行文件\XTP1031Lib.dll
?????文件??????10279??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\02_算法實現(xiàn)部分源代碼\Ant.cpp
?????文件???????1781??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\02_算法實現(xiàn)部分源代碼\Ant.h
?????文件???????2696??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\02_算法實現(xiàn)部分源代碼\Common.cpp
?????文件???????4621??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\02_算法實現(xiàn)部分源代碼\common.h
?????文件??????25580??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\02_算法實現(xiàn)部分源代碼\TSP.cpp
?????文件???????2186??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\02_算法實現(xiàn)部分源代碼\TSP.h
?????文件???????2266??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\03_測試數(shù)據(jù)\eil51.ini
?????文件???????3432??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\03_測試數(shù)據(jù)\vrptw25.ini
?????文件?????507750??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\04_算法文檔\基于改進蟻群算法的物流配送路徑優(yōu)化.pdf
?????目錄??????????0??2017-05-04?20:53??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\01_可執(zhí)行文件
?????目錄??????????0??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\02_算法實現(xiàn)部分源代碼
?????目錄??????????0??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\03_測試數(shù)據(jù)
?????目錄??????????0??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件\04_算法文檔
?????目錄??????????0??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件\物流配送蟻群算法_郵件
?????目錄??????????0??2017-05-04?20:21??蟻群-路徑規(guī)劃-代碼文件
-----------?---------??----------?-----??----
??????????????3025150????????????????????20
- 上一篇:Unity數(shù)據(jù)處理
- 下一篇:ACS800提升機應用程序
評論
共有 條評論