起点终点相同的运送计划
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
起点终点相同的运送计划
运输公司、配送中心在运输货物时常常要求车辆在完成运输后要回到出发地。
起点终点重合的路径问题也被称为巡回推销员问题。有一个n 个节点
},...{1n v v 构成的网络,已知节点间的“距离”}...,2,1;,...,2,1,{n j n i c ij ==,要寻找一条经过所有节点的距离最短的回路。
可以用如下数学模型来表示:
∑∑==n i n
j ij ij x c 11
min
s.t.
∑===n
j ij
n i x
1...,2,1,1
∑===n i ij
n j x
1
...,2,1,1
n j n i x ij ,...2,1,,..,2,1},1,0{==∈
其中⎩⎨⎧=。的下一站不是节点
,表示节点;的下一站是节点
,表示节点j i j i x ij 01
这是一个整数型线性规划问题,当网络中包含很多节点时,没有有效的算法。一般采用直觉方法和启发式方法,这些方法可在合理的时间内给出一个较优解。
例如在直觉上,一定的长度,包含面积最多的曲线是圆形,因此好的路线规划中应该呈凸形或水滴形,并且没有线路交叉。例如下图中b)的路线规划就要比a)好。
a)不好的路线规划 b)较好的路线规划
图6-10 路线规划比较
启发式方法中很多是贪婪方法,例如最近邻点法,最近插入法等。 最近邻点法就是从某点开始,总是找离目前位置最近的、还未到过的节点作为下一点,直到所有节点走完,再回到起点。得到的结果常常是不理想的。
最近插入法要更进一步,在选择下一点时,不仅仅只考虑当前的一点,而是考虑所有已走过的点。另外,它每一步是整个回路的扩张,即从一开始它就考虑回到起点的成本。方法描述如下:
(1) 找出离1v 最近的节点k v ,构成子回路},,{11v v v T k =。 (2) 重复(3)直到T 包含所有节点:
(3)从子回路T 以外的节点中找出离回路T 中节点最近的节点k v ,在T 中找到边),(j i v v ,使ij kj ik c c c -+最小,将k v 插入j i v v ,之间,即用),(k i v v ,),(j k v v 代替),(j i v v ,构成新的回路T 。
资料6.13一家面包房每天要向五家零售店送货,各点之间的行车时间如下:(由于交通的问题,同一线路不同方向的行车时间有些不同)
表6-6面包房及零售店之间的行车时间
第1步,找出00k k c c +最小的点5,5005c c +=41,T={0,5,0};
第2步,离{0,5}最近的点是1,1651=c ,接下去考虑1插在0,5之间还是5,0之间,因为22051501=-+c c c ,17501051=-+c c c ,因此插在5,0之间,得到T={0,5,1,0};
第3步,离{0,1,5}最近的点,3,2153=c ,43053503=-+c c c ,
32513153=-+c c c ,40103013=-+c c c ,得T={0,5,3,1,0};
第4步,离{0,1,3,5}最近的点,4,1434=c ,77054504=-+c c c ,
36534354=-+c c c ,29314134=-+c c c ,80104014=-+c c c ,得T={0,5,3,4,1,0};
第5步,最后一点是2,90052502=-+c c c ,51532352=-+c c c ,
24342432=-+c c c ,11412142=-+c c c ,57102012=-+c c c ,得T={0,5,3,4,2,1,0};
因此最后的结果是{0,5,3,4,2,1,0},总运输时间为130。