• 大小: 1.38MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-28
  • 语言: 其他
  • 标签:

资源简介

遗传算法进行车辆路径规划算法 蚁群算法-车辆路径问题

资源截图

代码片段和文件信息

#include “StdAfx.h“
#include “.\ant.h“

CAnt::CAnt(void)
{
memset(m_nPath0sizeof(m_nPath));
m_nPathCount=0; //路径里的点个数
}

CAnt::~CAnt(void)
{
}

//初始化
void CAnt::Init()
{
//=== 随机生成发车顺序 ==============================================

//先设置成按循序发车
for (int i=0;i {
m_CarOrderAry[i]=i;
}

//然后随机交换数组中两个位置的车辆,打乱发车顺序
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;
}
}
   
//==设置每辆车已经走过的长度、已经配载的重量、发车次数、行程时间为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; //路径里的点个数为1,因为配送站为开始点

//==设置走过的城市数量为0===============================================
m_nCityCount=0;

//==设置当前所在城市为0 (0代表配送站)===============================================
m_nCurCity=0;

//==设置走过的路径长度为最大值===============================================
m_dbPathLength=DB_MAX;

//==设置选择策略===========================================================
m_dbQ=Q_Max; //先设置为最大值,每次搜索完成,这个值都会动态改变的
                                //改变原则为,随着迭代次数的增加,由大变小再变大,就是初期大,中间小,后期大

//==搜索失败标志置假===========================================================
m_blSearchFail=false;

}

//为当前汽车,选择下一个城市
//注意!编号为0的城市是配送站,不列在选择范围内
//返回值 为城市编号
//如果返回为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];  //先使用查表法,得到从当前城市到该城市的选择概率值
                                                              //两两城市间的选择概率值,已经在每次更新完环境信息素后计算好
}

dbTotal=dbTotal+prob[i];  //累加信息素,

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      78815  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\01_可执行文件\anthelp.chm

     文件     110592  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\01_可执行文件\CANT.exe

     文件    1105920  2017-05-04 20:53  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\01_可执行文件\mfc80.dll

     文件     632656  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\01_可执行文件\msvcr80.dll

     文件     536576  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\01_可执行文件\XTP1031Lib.dll

     文件      10279  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\02_算法实现部分源代码\Ant.cpp

     文件       1781  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\02_算法实现部分源代码\Ant.h

     文件       2696  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\02_算法实现部分源代码\Common.cpp

     文件       4621  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\02_算法实现部分源代码\common.h

     文件      25580  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\02_算法实现部分源代码\TSP.cpp

     文件       2186  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\02_算法实现部分源代码\TSP.h

     文件       2266  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\03_测试数据\eil51.ini

     文件       3432  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\03_测试数据\vrptw25.ini

     文件     507750  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\04_算法文档\基于改进蚁群算法的物流配送路径优化.pdf

     目录          0  2017-05-04 20:53  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\01_可执行文件

     目录          0  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\02_算法实现部分源代码

     目录          0  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\03_测试数据

     目录          0  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件\04_算法文档

     目录          0  2017-05-04 20:21  蚁群-路径规划-代码文件\物流配送蚁群算法_邮件

     目录          0  2017-05-04 20:21  蚁群-路径规划-代码文件

----------- ---------  ---------- -----  ----

              3025150                    20


评论

共有 条评论

相关资源