竞赛:| 全国大学生数模竞赛 | 全国研究生数模竞赛 | 全国大学生电工数模竞赛 | 美国"MCM/ICM" 竞赛 |
 资讯:| 数学理论 | 交叉学科 | 基础教育 | 考研数学 | 学术动态 | 编程交流 | 网络安全 | 经验技巧 |
 下载:| 数 学 篇 | 算 法 篇 | 建 模 篇 | 编 程 篇 | 数 据 篇 | 软 件 篇 | 考 研 篇 | 交叉学科 |
 视频:| 大学数学 | 大学英语 | 计 算 机 | 法律课程 | 政治课程 | 经济管理 | 数学建模 | 高考数学 |
 功能:| 矩阵论坛 | 学校协会 | 挑 战 赛 | 人才招聘 | 数学问吧 | "MC"理工浏览器 | "MCQ"即时通讯 |

 
会员中心
社区论坛
加入收藏
联系我们
您现在的位置: 数学中国 >> 资讯无限 >> 数学竞赛篇 >> 全国数学建模竞赛 >> 优秀论文 >> 正文
【字体:           ★★
 
基于蚁群算法的混合方法求解车辆路径问题
作者:佚名    文章来源:本站原创    点击数:    更新时间:2006-5-24

  一、引言
物流配送是物流管理中直接与顾客相连的重
要环节,是货物从物流点送达收货人的过程, 其运
营成本占整个物流成本的大部分。车辆路径问题
(VRP)是以中心仓库为起点和终点,求解服务于
一组顾客的车辆配送路线的优化集合。解决VRP
问题是物流管理中的关键,也是电子商务中的重
要环节。对配送车辆的路线方案进行优化,可以
降低企业物流的运营成本,提高物流工作效率。
否则,顾客就不能在适当的地点和适当的时间得
到订购的商品。
车辆路径问题(VRP)是由Dantzig和Ramser
于1959年首次提出[ 1 ] 。该问题含有几类约束条
件,比如车辆的容量限制、顾客的服务时间窗、路
线的长度限制等。由于VRP是一个NP - 难的组
合优化问题并具有重要的经济应用价值,此问题
自提出以来得到了广泛注意,已涌现出许多精确
型和启发式算法。人们相继提出了基于问题的特
定方法[ 2 ]以及诸如禁忌搜索[ 3 ] 、模拟退火、遗传算
法和神经网络等元启发方法。
应用蚁群优化(ACO)求解VRP是近年来研
究的新方向。在本文中,我们提出一种基于ACO
的混合方法来解决VRP。首先提出一种ACO 算
法,然后加入局部搜索机制并使用基于问题的特
定启发信息———节约量来改进算法。
二、蚁群优化
蚁群优化是群体智能研究领域的一部分。在
群体智能领域,科学家们研究蜜蜂、白蚁、蚂蚁和
其他社会昆虫的行为模式以模拟其过程。昆虫群
体在自然界中解决复杂生存任务的能力吸引了科
学家们设计相应的计算机算法来解决相似的复杂
问题。对于蚁群行为的研究产生了一个崭新的研
究领域,现在通称为蚁群优化(ACO) 。
ACO是新近出现的一种源于自然的解决问题
的启发式算法,这类算法还包括神经网络、模拟退
火和进化算法等。Marco Dorigo在1992年的论文
中首次提出蚂蚁系统(AS) [ 4 ] , 并应用到旅行商问
题(TSP) 。AS是ACO方法的最早版本。AS算法基本上是一个多agent系统,系统中单个agent (即
人工蚂蚁)之间低层次的交互形成蚁群整体的复
杂行为。
ACO算法是受到自然界中真实蚂蚁觅食行为
的启发,即蚂蚁能够迅速找到从蚁巢到食物源的
最短路径。众所周知,个体蚂蚁之间是通过信息
素(pheromone)来传达路径信息的。蚂蚁开始时
是以一种随机方式搜索蚁巢周围的区域,当一个
蚂蚁在随机的游荡中找到食物源时,会在地上释
放出一定量的信息素。位于邻近区域的其他随机
移动的蚂蚁会察觉到这些信息素,接着会以很高
的概率沿着这条路径搜索,同时在行进的过程中
释放自己的信息素,从而增强了这条路径上信息
素的浓度。越来越多的蚂蚁会沿着信息素浓度高
的路径行进,这条路径上信息素浓度的进一步升
高又使得其他蚂蚁沿这条路径行进的概率进一步
提高。正是这种具有正反馈机制的自动催化过程
帮助蚂蚁快速找到最短路线。
在ACO 算法中,首先设置参数值,并给出每
条路径上信息素的初始值,然后蚁群按照状态转
移规则构造解,在每个循环中应用信息素更新规
则,这个过程一直到满足终止条件才结束。ACO
算法的步骤可简要地表述如下[ 5 ] :
步骤1:设置所有参数,初始化信息素
步骤2: Loop
Sub - loop
按照状态转移规则构造解
应用局部信息素更新规则(可选)
直到生成所有的蚂蚁
应用局部搜索(可选)
评价所有的解,并记录最好的解
应用全局信息素更新规则
直到满足终止条件
实际上,ACO方法在目前已成功地应用到不
同的连续和组合优化问题,比如旅行商问题( Trav2
eling Salesman Problem, TSP ) 、二次分配问题
(Quadratic assignment p roblem, QAP) 、图着色问题
(Graph Coloring Problem, GCP) 、调度问题( Schedu2
ling Problem, SP)等。
三、求解VRP的ACO算法
这里我们考虑只有一个中心仓库和相同车辆
的VRP问题。该问题可以形式化定义为一个完全
图G = (V, E) ,其中V = { 0, ⋯⋯, n} 为顶点集, E
为各顶点相互连接组成的弧集。顶点0表示仓库,
而其他顶点表示顾客。顶点i和j之间的旅行成本
用dij表示,代表距离或旅行时间。我们假设成本是
对称的(即dij = dji ) , 相同的车辆数没有限制, 每
辆车的容量Q > 0并已知。每个顾客i的需求量为
qi ,并且满足0 < qi ≤Q。每个顾客只能由一辆车
提供服务,每辆车的载重量不能超过它的容量。
求解的问题是找到一个最小成本的车辆路线集
合,其中每辆车都是从仓库出发,最终又回到仓
库。
在选择车辆路线的过程中,对于决定每辆车
的配送路线而言,选择顾客的组合是任意的。因
此,车辆路径问题是一个组合优化问题,该问题的
可行解的数目随着顾客数目的增加呈指数性增
长。由于没有已知的多项式算法可以找到每个实
例的最优解,车辆路径问题因而被认为是NP - 难
的。对于这样的问题,使用启发式算法不失为一
种寻求解的合理方法, 我们这里使用蚁群优化
(ACO)方法来求解VRP。
求解VRP的ACO算法的步骤如下所示:
步骤1:初始化
设置最大迭代次数Imax、当前迭代次数I = 0
和蚂蚁数m。设置每条弧上的信息素τ( i, j) =τ0 。
步骤2:将m 只蚂蚁都置于起点v0。
步骤3:构造路线
用蚂蚁来模拟车辆, 其构造路线的过程是通
过一步步地选择顾客直到所有的顾客都被访问。
第一只蚂蚁构造一个完整的线路后, 第二只蚂蚁
才开始它的旅行。这样的过程一直继续, 直到预定
的m 只蚂蚁都各自创建了一条可行路线。每只蚂
蚁构造解的过程是从决定第一辆车的路线开始。
蚂蚁从可行的位置列表中选择下一个顾客访问,
车辆的存储容量在再次选择顾客之前进行更新。
如果再次选择顾客会超过车辆容量而导致不可行
解,那么该蚂蚁就回到起点仓库。然后,继续决定
其他车辆的路线直到完成解的构造。
每只蚂蚁通过重复地应用状态转移规则来构
造旅行路线(即VRP的可行解) 。假设蚂蚁k在位
置i, Fk ( i) ,是待访问的可行位置集合,蚂蚁k将按
照(1) 式中给出的状态转移规则选择移动到位置
j。
j =
arg max
u∈Fk ( i) [τ( i, u) ]·[η( i, u) ]β
如果q ≤ q0  (利用)
J 否则 上式中η( i, u) 是用于评价蚂蚁从位置向位置移
动的启发函数, 其值定义为弧( i, u) 的长度的倒
数,即η( i, u) =
1
diu
。参数β(β > 0) 决定信息素对
于距离的相对重要性。q是在[0, 1 ]上均匀分布的
随机数。参数q0 (0 ≤ q0 ≤1) 决定利用和开发的相
对重要性,利用是指选择最好的路, 开发是指按概
率高的原则选择路。q0 越小,蚂蚁进行随机选择的
概率就越高。J 是一个随机变量, 按照(2) 式中给
出的分布选择。(2) 式给出了蚂蚁在位置i选择向
位置j移动的概率。简言之,当q ≤ q0 时,按照(1)
式选择最好的弧,否则,按照(2) 式选择新的弧。
pk ( i, j) =
[τ( i, j) ]·[η( i, j) ]β
Σu∈Fk ( i) [τ( i, j) ]·[η( i, j) ]β
如果j ∈ Fk ( i)
0 否则
(2)
步骤4:局部信息素更新
在构造解时,蚂蚁对其访问过的每条弧应用
(3) 式中给出的局部信息素更新规则来改变信息
素值。
τ( i, j) = (1 - ρ) ·τ( i, j) +ρ·τ0 (3)
式中ρ(0 ≤ρ≤ 1) 是信息素挥发参数。
步骤5:如果所有的蚂蚁都构造完解,则转向
下一步骤;否则转向步骤3。
步骤6:用2 - op t进行局部改进
为了改进元启发方法的性能,通常加入局部
搜索步骤。因此,我们使用启发式局部优化算法
来改进每代中获得的最好解。这里,我们使用求
解TSP常用的2 - op t交换策略,即对已得的回路
解,通过每次交换2条边来进行改进,从而缩短人
工蚂蚁产生的每辆车的行走路线长度。
步骤7:全局信息素更新
应用下列的全局信息素更新规则来改变最短
路线上的所有弧( i, j) 相关联的信息素值。
τ( i, j) = (1 - α) ·τ( i, j) +α·△τ( i, j) (4)
式α(0 ≤α ≤ 1) 中是信息素挥发参数。
△τ( i, j) =
1
Lgb
如果弧( i, j) 属于全局最短路线
0  否则
(5)
上式中Lgb 是目前得到的全局最优解的路线长度。
全局信息素更新的目的是在最短路线上加入
更多的信息素,这是一个正反馈的过程。
步骤8:终止
如果终止条件满足,则结束;否则I = I + 1,转
向步骤2进行下一代进化。终止条件是迭代次数
满足I = Imax。
四、基于问题特定的改进
在VRP中,车辆路线的长度不仅决定于任意
两个顾客之间的相对位置,还决定于每个顾客与
仓库v0之间的相对位置。节约算法是工业应用中
解决VRP问题的商品化软件工具的基础[ 6 ] 。该
算法在初始化时,分别向每个顾客配送货物。然
后,按照下列公式计算由于连接顾客和而得到的
节约量。
s ( i, j) = d ( i, 0) + d (0, j) - d ( i, j) (6)
式中d ( i, j) 表示位置i和j之间的距离,符号0表示
仓库。因此,值s ( i, j) 表示由原来的向顾客i和j分
别配送货物改变为将顾客i和j置于同一条回路而
得到的节约量。
如果节约量s ( i, j) 得到高的值, 则表示在访
问顾客i之后访问顾客j是一个好的选择。如果节
约量越高,选择概率就越高, 则引入节约量可以改

文章录入:wang55507241    责任编辑:madio  
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    推 荐 文 章
    更多内容
     
    热 门 文 章  
    更多内容
     

    费马小定理
    相 关 文 章
    更多内容
     
    单片机初学者指南
    MathType
    实习报告
    研读论文的得失
    如何撰写数学建模论文
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |