Arc Routing Problem with VehicleSite DependenciesThe Philadelphia ExperienceWord格式文档下载.docx
- 文档编号:18029278
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:19
- 大小:82.57KB
Arc Routing Problem with VehicleSite DependenciesThe Philadelphia ExperienceWord格式文档下载.docx
《Arc Routing Problem with VehicleSite DependenciesThe Philadelphia ExperienceWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《Arc Routing Problem with VehicleSite DependenciesThe Philadelphia ExperienceWord格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
G中的弧表示街道网络中每个街区的一边,其指向表明了街区的通行方向。
潜在街道网络中每个街区的两条定向弧被称作“对口弧”,这些对口弧与街道通行的方向保持一致。
通行网络G全部由定向对口弧组成;
也就是说,潜在街道网络的每个街区都在其通行网络中定义了两条对口弧。
如果街区允许双向通行,G中的两条对口弧方向相反。
如果街区只允许单向通行,那么G中的两条对口弧是同向的,并且与通行方向一致。
如果街区允许单向通行,且方向是从f到g,那么两条对口弧,a(f,g)和a’(f,g),对街区而言,他们的属性是不同的。
通行网络中弧a(f,g)的属性定义如下:
D(f,g):
弧a(f,g)的空驶通行时间
W(f,g):
=1如果a(f,g)是一个单向街区的方向从f到g的对口弧。
在这种情况下,a(f,g)在通行网络中被复制两次,各用于街道的一条边。
G中的这两条对口弧在符号上表示为a(f,g)和a’(f,g)。
=2如果a(f,g)是一个双向街区的对口弧。
在这种情况下,通行网络中存在着a(f,g)和a(g,f)两条弧。
M(f,g):
=0如果弧a(f,g)所在的街区一次只能在一边接受服务。
=1如果a(f,g)所在的街区可以接受蜿蜒型或锯齿型的服务路径。
当一个街区可以接受蜿蜒型的服务时,街区的两边都能接受一次遍历服务。
这里存在这样一种假设,如果一个车辆级为a(f,g)所在的街区提供蜿蜒型服务,那么所有的车辆级为这个街区提供的服务都是蜿蜒型的。
针对这种假设,居住环卫站中有一个罕见的反例:
当一个后载或前载的车辆级提供蜿蜒型服务的时候,一个自动侧载的车辆级就不能为这个街区提供蜿蜒型服务了,本章不考虑这种情况。
L(f,g):
弧a(f,g)的长度。
这里假设L(f,g)=L(g,f)
SC(f,g):
能够服务弧a(f,g)的最大车辆级。
如果SC(f,g)=s.那么车辆级1……s,可以服务弧a(f,g)。
这里假设SC(f,g)=SC(g,f)。
TC(f,g):
可以通过弧(f,g)的最大车辆级。
如果TC(f,g)=t,那么车辆级1……t可以通过弧a(f,g)。
这里假设TC(f,g)=t≥SC(f,g)=s,TC(f,g)=TC(g,f)。
S(f,g):
弧a(f,g)的服务时间。
如果弧a(f,g)接受的是蜿蜒型服务(M(f,g)=1),那么,弧a(f,g)所在街区的服务时间S(f,g)减半。
Q(a,(f,g)):
弧a(f,g)上不能被拾起的(废物)的数量(体积或重量)。
Q(a,(f,g))=0,则弧a(f,g)没有被服务。
这里使用符号Q(a,(f,g))而不是Q(f,g)来定义弧a(f,g)的数量是为了便于定义11.2.2中的弧集MA和SE。
11.2.2服务网络
在服务网络G中,通行网络G中的弧集A被分为四个互斥的集合,它们代表不同的服务类型和可以通过但不接受服务的街区。
这四个互斥集合如下:
DA:
空驶弧集。
DA={a(f,g)|Q(a(f,)g))=0}。
弧a(f,g)不需要服务,且只用于空驶。
RA:
需要服务但不能接受蜿蜒型服务的弧集,对应街区允许双向通行。
因此,RA={a(f,g)|Q(a(f,g))>0,M(f,g)=0}。
如果a(f,g)∈RA,a(f,g)的服务必须沿着弧a(f,g)而不是它的对口弧进行。
MA:
接受服务且是蜿蜒型服务的街区,对应街区只允许单向通行。
MA={a(f,g)|Q(a(f,)g))+Q’(a(f,g))>0,M(f,g)=1,W(f,g)=1}。
虽然a(f,g)在A中被复制两次,街区一边一次,但是弧a(f,g)在MA中作为定向弧只出现一次。
SE:
对应街区允许双向通行,接受服务且必须是蜿蜒型服务的边缘集合。
SE={e(f,g)|Q(a(f,g))+Q(a(g,f))>0,M(f,g)=1,W(f,g)=2}。
a(f,g)和a(g,f)都在A中,但是边缘e(f,g)在SE中出现一次表示通行网络中的两条弧。
VDA中的通行路径生成算法决定边缘e(f,g)的服务方向是从f到g,还是g到f。
服务网络GS表示点集N,弧集DA,RA,MA和边集SE的集合。
服务网络GS的符号表示为:
GS=(N,DA∪RA∪MA∪SE)。
11.2.3服务网络
车辆队中车辆班组的存在使CARP-VSD区别于传统的CARP。
尽管不同的车辆班组代表不同的车辆运输方式,每个车辆班组中的车辆运输方式被认为是相同的。
在CARP中与某个车辆相关的车辆容量和工作日长短等特点在CARP-VSD中队车辆班组有不同的价值。
以下通过第K车辆班组来定义这些特点:
Qk:
k车辆班组有用的车辆数量。
比如,如果一个车辆队有5个1吨的车辆,3个5吨的车辆,4个10吨的车辆,那么Q1=5,Q2=3,Q3=4。
下文中的车辆有限选择列表进一步表示车辆班组中的车辆数量。
Mk:
k车辆班组中的车辆容量。
车辆容量表示一个车辆能容纳的最大体积或者重量。
住宅卫生集中地的一条车辆路线到达处置设施出可容纳对条路线,尽管在达到容量之前到达处置设施处可能减少总空车时间或路线上的距离,只要容量能够达到容量路线就是必须的。
而且,在最后一天就算容量不足,到达处置设施处也是必须的。
DTk:
处置时间。
比如,在处置设施处卸货所用的时间。
处置时间是车辆班组的函数。
OTk:
车辆班组K中的一个车辆的办公时间。
办公时间时在车站的开始或结束日期,乘务组被分配的时间。
在办公时间,乘务人员执行被授权的只能,比如给车辆充气,洗车等。
11.2.4车辆班组的通行网络和服务网络
对于VDA来说,每一车辆班组有自己的通行网络和服务网络。
这些网络并不是在VDA中产生的,但却暗含在CARP-VSD中的通行网络G和服务网络Gi的指示变量中。
对于通行网络G中的每个弧来说,TC(f,g)指的是可以再弧a(f,g)上通行的最大的车辆班组。
每个车辆班组可以有一套不同的弧线,这些弧线可供车辆班组的车辆通过。
i车辆班组的通行网络Gi=(Ni,Ai)是可供车辆班组i中的车辆通过的弧线网络。
但是并不能保证通行网络Gi是相互连接的网络。
对G通行网络的每一个弧线来说,SC(f,g)指的是可以服务于弧线a(fg)的最大车辆班组。
正如前面提到的,能通过一个车辆班组的道路段不一定能服务于另一个车辆班组。
由于对车辆地点的依赖,一个车辆客服务的弧线也是一个班车辆班组的函数。
车辆班组i的服务网络是Gis.=(Ni,Ai=DAiURAiUSAiUSEi)。
车辆班组i的服务网络Gis是从车辆班组i(Gi)中产生的,遵循11.2.2中描述的产生于通行网络(G)的服务网络Gs是一样的。
Ai中客服务于车辆班组i的弧线用在RAi,SAi,orSEi中,Ai中不能服务于车辆班组i的弧线用于DAi中。
11.2.5车辆选择清单
车辆选择清单是指在递减顺序排列的偏好中,选择在某一偏好水平的可供使用的车辆班组和车辆的最大数目。
由于运营成本、合同责任或者其他的原因,某些特定的车辆班组可能是更加适合的。
一个车辆班组可能在车辆选择清单中出现多次。
下面是一个车辆选择请单的一个例子:
车辆班组
可用车辆数
3
1
11
2
4
在这个车辆偏好清单中,使用者更偏好于第3车辆班组,应为使用者认为3车辆班组是最有效率的,只需要到处理设施处一次,有最大容量,而且已经被服务于该区域的组织拥有。
1车辆班组在车辆偏好清单中是被分开的,应为该组织已经拥有11辆这类型车辆(无需花费成本),但是该组织还可再购买最多4辆(需要成本花费)。
该组织也被授权购买最多4个车辆班组2。
4个车辆班组2排在4个车来那个班组1的上面是应为使用者相信车辆班组2比车辆班组1更有效率。
VDA偏向使用排在车辆偏好清单前面的车辆班组,不太理想的车辆班组只是在要求使用的是时候使用。
11.2.6其他假设
正如前面所定义的一样,Gs=(N,DAURAUMAUSE)代表服务网络。
VDA中认为RAUMA的每一条弧线和SE的每一个边线都可由车辆偏好列表中的最小车辆班组服务。
通行网络G和服务网络Gs假设是与网络连接的,服务网络G1s假设是一个强连接网络。
这样的话,如果在车辆偏好列表中的车辆班组1都有足够的车来那个,就可以服务于所有需要服务的弧线。
如果Gs不是强网络连接,任何没有强连接到车站和处理设施处的服务弧线将不能由最后方案的路线提供服务。
一个独立的车站存在于所有的车辆开始和结束的地方。
一个独立的处理实施存在于所有车辆都空置的地方。
不论车辆班组的所有车辆必须在最后一天返回处理设施似的在重返车站之前清空车辆。
目标路线时间TRTk特定到每一车辆班组。
目标线路时间可在车辆班组之间和某一车辆班组之间变化。
目标路线时间是被特定车辆班组的车辆服务的时间长度。
为了模拟在同一车辆班组内目标线路时间的不同,车辆班组被分为在车辆偏好列表中有不同目标线路时间的两个或多个车辆班组,但是在弧线上的车辆地点依赖对与这些车辆班组是相同的。
在分区形成上的软约束是车辆班组k的每一分区p的长度存在于[Lowerp,Upperp],这里Lowerp=TRTk—Ak,Upperp=TRTk+Bk,Ak和Bk通常为大约15分钟。
然而,我们有一个组织可以设置Ak和Bk都为3分钟。
11.2.7CARP-VSD的目标和约束
CARP-VSD以及大多数的其他CARP类型的问题的理想的解决方案有以下一些特点:
·
服务网络Gs中的任何一个需要服务的道路都被分配到一个分区,尽管服务网络Gs是联通的。
车辆班组k的所有路线长度依赖于[TRTk—Ak,TRTk+Bk]。
这样的解决方案被称作平衡的解决方案。
在CARP-VSD中,VDA的工作量估计是更为复杂的,因为VDA必须决定每一车辆班组中多少车辆时需要用来提供服务的。
使用VDA的CARP-VSD的分区变得更加复杂,因为分配给不同分区的车辆班组必须作出决定。
车辆对混合成分的决定是在任何分区变大之前最初决定的。
然而为了使这些估计在VDA的连续循环中得到更新,VDA必须被建立。
车辆偏好列表给了我们确定车辆队混合成分一种有效的方法。
和每个分区相关的的通行路径减少了非生产时间(或无用时间)。
在大多数的弧线路径问题中,无用时间在需要服务的分区中用来服务与所有道路段的总时间中只占很小的一部分。
值得注意的是,在我们关于费城VDA的实施中,我们使用了RouteSmart软件的现有的路径生成程序来确定每一分区的最小无用路径时间,我们没有试图建立任何新的通行路径生成程序。
分区交错尽可能减小。
如果分区没有交织,每个职员的责任区使明确的。
这样的话,就更容易做到执行服务的错误与相关人员的对应。
11.3车辆分解算法(VDA)
VDA解决CARP-VSD的方法是将CARP-VSD分解为几个较小的单一车辆班组CARPS。
各一个CARPS是通过包含在RouteSmart软件中的分区程序完成的。
将较小问题的解决方案最终集合在一起就形成了最终的CARP-VSD问题的解决方案。
分区一旦形成,包含在RouteSmart软件中的传统的通行路径再生技术就被用来寻找在每个分区中弧线和边缘的最小无用时间通行路径。
VDA算法分为以下五步完成:
第一步,建立和验证车辆班组网络;
第二步,估算总工作量,确定初始车辆队组合;
第三步,对服务网络进行分区;
第四步,确定通行路径,平衡分区;
第五步,修改总工作量和调整车辆队组合。
VDA算法首先执行第一二步,然后再第三到第五步见进行迭代知道终止。
这时,路线和通行路径可打印和绘制出来。
VDA算法的输入时11.2章节中描述的不同变量,如通行和服务网络,车辆偏好列表以及各类参数,如要求的分区数量和每个分区的目标路径时间。
11.3.1步骤A.创建和验证车辆班组网络
车辆班组线路网络是对路线网络中的每个车辆班组创建的,并且检查车辆班组线路网络的链接情况。
如果没有被强链接,车辆班组i中某一车辆能够服务的弧线就是被强链接到贮存和处置设施的弧线。
中的所有弧线没有强链接到贮存和处置设施的弧线都将被移出,然后总的服务网络和车辆班组服务网络就被创建了。
11.3.2步骤B.评估总工作和确定初始舰队组合
在步骤B中,一个初始舰队组合的预测已经被确定。
这个舰队组合预测被用作为舰队组合的第一次VDA迭代。
令V=[V(i,j)]为一个下三角矩阵。
V(i,j)是需要在服务网络中服务所有的弧和边缘的车辆等级j的车辆数,其中最大的克星车辆等级为车来那个等级i,i≥j。
因此,V(2,1)是车辆等级1,最大车辆等级为2的车辆数。
计算V(i,j)的程序已经在11.3.2.7给出,V(i,j)不必为整数。
本章中,我们会描述VDA的程序。
并给出一个复杂的案例。
11.3.2.1第一步
在这个程序的第一步(k=1)中,V(1,1)是通过搜索车辆的偏好列表,找到第一个案例的最小的车辆等级而被确定的。
令W1是车辆数,它是从车辆偏好列表规定的最小车辆等级。
令U=min(V(1,1),W1)是车辆数,它是从最小车辆等级指定服务的工作量。
如果U不是整数,那么将U取整。
已知U,在适当的车辆偏好列表中,V(1,1)与V(1,1)—U相等,W1与W1—U相等。
那么,下列事件可以发生:
1、如果V(1,1)>
0,我们继续搜索车辆偏好列表的下一个最小车辆等级,计算出足够的车辆(从车辆等级1向需求V(1,1)的服务)。
如果另一个事件被发现,重复程序描述。
如果没有其他事件被发现,问题不可行,VDA结束——没有足够的车辆(从车辆等级1匹配于服务需求)。
2、如果V(1,1)=0,第一行V上的所有需求都能由车辆(从车辆等级1)满足。
第一步完成,第二步可以由k=2开始,过程在11.3.2.2.
3、如果V(1,1)<
0,V中第一弧需求的产能过剩。
如果U为V(1,1)之上的整数,V(1,1)<
0。
那么,U取整。
假设这个产能过剩是满足V矩阵的第二弧上的一些需求。
为完成它,第二行V为:
例子,如果最初W1=3,V(1,1)=1.1,V(2,1)=3.2,并且V(2,2)=2.7,那么:
如果V(2,1)<
0,那么行2上的所有需求被引发,行3被更新为行2的样子。
第一步结束。
11.3.2.2第k步
在第k步中,V的第k行被确定,车辆偏好列表扫描一个车辆等级(低于k)的第一事件。
j:
车辆偏好列表中,一个车辆等级(低于k)的第一事件的车辆等级的数量。
Wj:
由车辆等级j(可以被分配给指定一个车辆偏好列表的工作量Wj)的车辆数,Wj为整数。
U:
由车辆等级j(可以被分配给工作量V(k,j))的车辆数。
U=min(V(k,j),Wj)。
如果U不是整数,U取整。
已知U,Wj:
那么下列三个事件可以发生:
1.如果V(k,j)>
0,我们继续搜索车辆偏好列表的下一个适合的车辆等级(不大于k)。
如果在车辆偏好列表中没有合适的车辆等级(不大于k)被发现,问题不可行,VDA结束——没有足够的车辆(从车辆等级k匹配于服务需求)。
2.如果V(k,j)=0,完成k步,继续k=k+1步,重复操作。
3.如果V(k,j)<
0,V中k行的需求产能过剩,这部分产能过剩可以用于满足V中剩余行的需求。
k+1行更新为:
更新V中的k+1行后,完成第k步,继续k=k+1步。
11.3.2.3例子
假设有三个车辆等级,
进一步假设车辆偏好列表为:
车辆等级
可行数量
7
11.3.2.4第一步
由于V(1,1)=4.7,W1=7,U=min(4.7,7)=4.7,U取整为5。
因此,车辆等级1中5辆车被引用到舰队组合中。
那么,W1=7-5=2并且V(1,1)=4.7-5=-0.3
由于V(1,1)<
0,第一行产能过剩,因此
11.3.2.5第二步
第二步的车辆偏好列表为
更新矩阵V为:
由于V(2,1)=3.8,并且V(2,2)=2.04,我们扫描车辆偏好列表,并且找到车辆等级1为第一可行车辆等级。
设W2=2,U=min(3.8,2)=2,因此我们从车辆等级1中再引入2辆车进舰队组合。
由于第二行中还有一些需求剩下,剩余的需求更新为:
更新的车辆偏好列表为
由于V(2,1)=1.8,V(2,2)=0.97,扫描车辆偏好列表并且找到车来那个等级2为第一可行车辆等级。
设W2=4,U=min(0.97,4)=0.97,取整为1。
因此,我们从车辆等级2中引入1辆车进舰队组合中。
W2=4-1=3,V(2,2)=0.97-1=-0.03。
由于第二行的需求产能过剩,设:
第二行的所有需要都被满足了。
11.3.2.6通过步骤B的第三条路径
进入路径3的车辆偏好列表如下:
车辆级
有效数量
更新后的矩阵V为:
由于V(3,1)=9.05,V(3,2)=4.97,V(3,3)=3.08,查看车辆偏好列表,可以发现第3级是第一个有效可行的车辆级。
设W3=2且U=min(3.08,2)=2,分配2辆3级的车进入车辆组合。
W3=2-2=0,V矩阵的第三行更新如下:
V(3,1)=9.05-2*(9.05/3.08)=3.17,
V(3,2)=4.97-2*(4.97/3.08)=1.74,
V(3,})=3.08-2*(3.08/3.08)=1.08。
更新后的车辆偏好列表如下:
更新后的V矩阵如下:
由于V(3,1)=3.17,V(3,2)=1.74,V(3,3)=1.08,查看车辆偏好列表,可以发现第2级成为首个有效可行的车辆级,设W2=3且U=min(1.74,3)=1.74。
U值四舍五入后为2,两辆额外的来自2级的车辆被分配到车辆组合。
W2=3-2=1且V(3,2)=1.74-2=-0.26,这里对于第三行的需求存在容量过剩的情况。
如果第三行的需求全部被满足,那么初始的车辆组合估值是完全的,则0.26的超额车辆容量是初始车辆组合的一部分。
从而,对初始车队组合的估值如下,
车辆级1:
5+2+0=7
车辆级2:
0+1+2=3
车辆级3:
0+0+2=2
11.3.2.7V矩阵中V(i,j)的测定
如上所述,V(i,j)表示从需要的车辆级j到整个服务网络中服务最大可行车辆级i的全部弧和边缘的车辆数量,i≥j。
现在描述用于计算V(i,j)的估算过程的工作量。
下面是计算V(i,j)的工作量估值的部分:
K1:
可被最大车辆级i服务的所有弧的总容量,即:
K1=
K2:
分析车辆级对应的车辆容量,即:
K2=Qj
K3:
在可被最大车辆级i服务的所有弧上消耗的服务时间,即:
K3=
K4:
可被最大车辆级i服务的所有服务弧之间的空车返回时间的估算。
K5:
以车辆级j划分的目标路径时间,即:
K5=TRTj
K6a:
以车辆级j划分的办公时间,即:
K6a=OFj
K6b:
以车辆级j划分的废弃物处理时间,即:
K6b=DTj
K6c:
来自车辆级j的车从废弃物处理站到车站的时间。
K6c可以通过旅游网络计算得出准确的结果。
K6d:
来自车辆级j的车从一个分区到废弃物处理站的时间。
K6d可以通过旅游网络作为从每条弧a(f,g)到SC(f,g)=i的废弃物处理站的平均时间被估算得到。
K6:
总固定消耗时间。
K6计算公式:
K6=K6a+K6b+K6c+K6d。
由于K6d是一个估值,因此K6也是一个估值。
K7:
来自车辆级j的车辆由于到废弃物处理站的额外路途所花费时间的估值。
K7表示从一个分区到废弃物处理站往返行程花费的平均时间(2*K6d)加上在废弃物处理设施的时间(K6b)。
这样,K7=2*K6d+K6b。
K6d是估值,因此K7也是一个估值,同时为车辆级的一个函数。
另X为每个分区到被要求的废弃物处理站的行程的数量(X为整数)。
另V(i,j)=minx(max(PV(X),PT(X))),其中,
PV(X)表示:
街道上需要处理总容量的分区数量的最小值,可以由公式PV(X)=K1/(K2*X)计算得出。
PT(X)表示:
工作量中需要处理总需求时间的分区数量的最小值,可以由公式PT(X)=(K
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Arc Routing Problem with VehicleSite DependenciesThe Philadelphia Experience
![提示](https://static.bdocx.com/images/bang_tan.gif)
链接地址:https://www.bdocx.com/doc/18029278.html