A Bilevel Programming Model and Algorithm for the Static Bike Repositioning Problem 静态自行车重新定位问题的双层规划模型和算法
@article{2019BelevelBRPTS,
title={A Bilevel Programming Model and Algorithm for the Static Bike Repositioning Problem},
author={ Tang, Q. and Fu, Z. and Qiu, M. },
journal={Journal of Advanced Transportation},
year={2019},
}
摘要
在本文中,通过考虑外包运输模式,提出了一个双层规划模型来制定静态自行车重新定位(SBR)问题,该问题可用于确定每个站点装载和卸载的自行车数量以及最佳卡车自行车共享系统 (BSS) 中的路线。上层 BSS 提供商确定站点的最佳装卸量,以最大限度地减少总罚款。下级货车车主追求运输路线成本最低。开发了迭代局部搜索和禁忌搜索来求解模型。对 20 到 200 辆自行车的一组实例进行的计算测试证明了所提出的模型和算法的有效性,以及一些有见地的发现。
1. Introduction
自行车共享系统Bike sharing systems(BSS)为城市用户提供无碳、绿色的交通方式,并减少城市交通拥堵和空气污染(a carbon-free, green mode of transportation for urban users and reduce urban traffic congestion and air pollution),因此它们目前在城市环境中非常流行1.这些 BSS 面临的主要问题之一是在不同站点之间重新定位自行车的操作问题。需求变化通常会导致车站的自行车库存过剩或库存太少,无法有效地为新客户提供服务。这不仅会影响所需的服务级别,而且还会产生虚假的运营成本。2.在实践中,为了提高客户满意度,BSS供应商总是需要用卡车在车站之间运输自行车,以满足客户需求。这种重新定位问题称为自行车重新定位问题 (bike repositioning problem )(BRP),它决定了每个站点装卸的自行车数量和最佳卡车路线,受各种约束,包括卡车容量、车站容量和运营时间限制。为了降低运营成本,许多BSS供应商将搬迁任务委托给第三方物流公司(卡车所有者)。在这种现实生活中的运营情况下,BSS供应商确定每个站点装卸的自行车数量,以最大限度地提高客户对卡车容量限制的满意度,卡车所有者根据BSS提供商在每个站点提供的接送数量确定最佳的卡车路线,以追求最低的运输调度成本。在正在考虑的BRP中,BSS提供商根据车站容量和卡车容量限制确定每个车站的接送数量,并寻求优化客户满意度,而卡车所有者根据卡车容量和运营时间限制确定卡车路线,并寻求优化运输成本。一旦 BSS 提供商设置了每个站点的上车和下车数量,卡车所有者就会通过提供优化其目标功能的卡车路线来做出反应。在这种现实背景下,BRP涉及两个不同层次的决策者,具有等级关系。🐸首先,BSS 提供商位于层次结构的上层,控制装卸数量变量,并受卡车所有者的资源约束的影响。🐸其次,处于层次结构较低级别的卡车所有者控制卡车路线变量,并受到 BSS 提供商决策的限制。这种独特的特征意味着BRP可以通过使用双层规划进行建模,这在文献中已被提出为具有两个决策者的分层决策过程的适当模型。
据我们所知,只有本文解决了BSS提供商(例如摩拜单车)和卡车所有者(例如第三方物流公司)之间的平衡问题。为了证明BSS提供商和卡车所有者之间的现实BRP,在本文中,我们开发了一个双层编程模型来研究BRP,寻求满足决策者的要求,并优化客户满意度和上层(BSS提供商)和下层(卡车所有者)决策者之间的运输成本。
本文的其余部分组织如下。在下一节中,我们将回顾BRP的相关工作。在部分3,我们提出了假设、符号和双层规划模型公式。求解算法在章节中提出4.通过数值算例验证了所提求解算法的有效性,计算结果见章节5.最后,结论和进一步研究载于章节6.
2. Literature Survey
自 Benchimol 等人发表关于它的开创性出版物以来,BRP 一直在不断研究,其中作者证明它是 NP-hard的 3 . BRP 属于一类更大的问题,称为取货和送货车辆路径问题 pickup and delivery vehicle routing problem (PDVRP),它概括了有能力的车辆路径问题capacitated vehicle routing problem (CVRP) [13].此外,根据Parragh等人引入的分类,BRP是一个多对多取货和交付问题many-to-many pickup and delivery problem(M-M),其中请求的起点和目的地是多个[31].当BRP只考虑一辆卡车时,问题就变成了埃尔南德斯-佩雷斯和萨拉查-冈萨雷斯提出的单一商品取货和送货TSPone-commodity pickup-and-delivery TSP [32].
通常,文献中为BRP提出的模型根据操作场景分为静态和动态优化问题[33].静态问题考虑系统使用率可以忽略不计的夜间场景,而动态问题考虑考虑系统实时使用情况的白天场景。只有少数出版物解决了动态 BRP [1,34–37].
有关静态 BRP 的出版物汇总在表中1.静态 BRP 的动机是夜间使用很少的自行车 [4].拉维夫等[33]指出,静态操作模式得益于实际优势,即它允许重新定位的卡车在城市中快速行驶而不会加剧交通拥堵和停车问题,并且静态重新定位有助于安排第二天BSS中的自行车库存。就静态BRP出版物中使用的卡车数量而言,研究了单车和多车问题。然而,与多车BRP [5–12,14–22],考虑将单辆车 BRP 用于城市的一部分 BSS [3,4,23–30].在本文中,我们的研究重点是单车静态BRP,该BRP需要在每天晚上开始时解决一次,基于当时BSS的状态以及第二天和城市划分区域时的需求预测。
就BRP中解决的问题目标函数而言,常见的衡量标准是运输成本或其他相关措施,例如运输时间或距离,以及客户对BSS的不满,其形式是绝对偏离目标最佳自行车数量,罚款成本和未满足的总数 客户或未满足的需求。如果车站的所有需求都是需要满足的硬约束,则BRP的目标仅通过运输成本来衡量[3–5,13,14,20,23,27].现实中,由于需求的不确定性、货车和车站的容量限制以及重新定位的时间,并不是所有车站的需求都能得到满足。也就是说,卡车只能使用有限的重新定位资源为不平衡站的子集提供服务,因此BSS提供商有必要确定所有加油站的装载指令,以实现尽可能高的客户满意度,以最大限度地提高其收入和利润。在本文中,类似于拉维夫等人[33]、何和司徒 [17,26]和福尔马等人[15],我们通过惩罚函数来衡量客户的不满。惩罚功能的详细信息可以在部分找到3.2.
静态BRP中出现的挑战需要有效的方法。精确的方法,如分支和切割算法已被用于求解静态BRP。然而,这种方法对于处理中型和大型现实 BRP 来说是棘手的。我们向感兴趣的读者推荐埃尔多安等人的确切方法论文4,5和卡德里等人[28].如表所示2,已经使用了几种类型的启发式方法来解决 BRP,例如,TS(禁忌搜索)[23,26], GA (遗传算法) [29], CRO(化学反应优化) [22,30], ACO (蚁群优化) [6],ABC(人工蜂群算法)[21], VND(可变邻域下降) [9,19], VNS(变量邻域搜索) [8–10]、LNS(大型邻域搜索)[7,11,17]、 ILS (iterated local search)(迭代本地搜索)[4,20]和GRASP(贪婪随机自适应搜索过程)[10].
为了高效处理所提出的双层模型,该文提出一种基于 ILS 的启发式迭代求解上层和下层模型。利用测试实例对所提模型和启发式模型进行了评估,结果表明了算法的有效性。
似乎以前的工作都没有从这种方法中解决 BRP,其中考虑了不同利益相关者的目标。在本文中,我们打算缩小BRP文献中的一个重大空白,并做出双重贡献。首先,BRP 被建模为一个混合整数的双层程序,其中考虑了 BSS 提供商和卡车所有者的不同目标。其次,我们提供了一种数学公式和启发式算法来解决引入的问题。虽然这里介绍的双层模型是在BSS提供商将自行车站之间的运输工作外包给第三方物流公司的情况下为BRP定制的,但我们希望它将开辟一条关于BRP的新研究路线。
3. 问题定义和模型描述
在本节中,我们首先描述问题的不同方面,然后介绍其数学模型。BRP中这种双层模型的基本思想是设计搬迁运输,目的是通过考虑第三方公司的重新定位资源,最大限度地提高客户对BSS提供商的满意度。我们将这种决策环境建模为双层问题,因此,在此结构中,BSS提供者被视为上层问题upper-level problem(ULP)的决策者,卡车所有者被视为下层问题 lower-level problem(LLP)的决策者(见图1).作为ULP决策者的BSS提供商寻求车站自行车的最佳装卸量。ULP目标函数将总惩罚成本降至最低。此函数依赖于惩罚函数。卡车车主作为LLP决策者旨在最大限度地降低旅行成本。
图1 双层共享单车重新定位问题的概念结构.
静态 BRP 考虑一组站点和卡车最初位于站点的站点。如果一个站点的最佳库存(即惩罚成本最低的库存)小于该站点的初始库存,则假定该站点为提货站pick-up station。提货站pick-up station的初始库存太大,多余的自行车需要带走。另一方面,如果某个站点的最佳库存大于该站点的初始库存,则假定该站点为下车站点drop-off station [17,26].下车站的初始库存太少,不足的自行车需要补充。容量受限的重新定位卡车将自行车从接送站运送到下车站。
3.1. 假设和表示法
为了便于在不失去一般性的情况下呈现基本思想,本文进行了以下基本假设:
- BSS提供商将搬迁运输外包给第三方物流公司的外包成本是固定的。
- 每个车站最多允许访问一次,如文献中[26,33],这意味着一个站的需求是不允许拆分的。与福尔马等人相似[15]和何和司徒[17,26],不是所有的台站都需要访问,初始平衡站也不需要访问。
- 假定该仓库没有自行车。
- 卡车上的负载不能大于卡车容量。
- 卡车从仓库开始并返回仓库,并在给定的时间限制内运行。
本文中使用的符号列在表中3除非另有说明。
3.2. 惩罚函数
本文中使用的惩罚函数首先由Raviv等人提出6.类似于何和司徒[17,26]和福尔马等人[15],我们用它(惩罚函数)来定义客户的不满意。 对于任意站点 i i i,具有它的惩罚函数 f i ( s i ) f_i(s_i) fi(si) 是在操作operation后的站点 i i i的最终库存的惩罚函数。站点 i i i的惩罚成本可以由相关的惩罚函数 f i ( s i ) f_i(s_i) fi(si)计算, s i s_i si的值为 { 0 , ⋯ , c i } \{0,\cdots,c_i\} {0,⋯,ci}.如果 s i s_i si超出了 { 0 , ⋯ , c i } \{0,\cdots,c_i\} {0,⋯,ci}这个范围,则 f i ( s i ) = ∞ f_i(s_i)=\infty fi(si)=∞.
正如Forma等人所描述的[15],BSS的所有车站分为三类,即(1)上午客户租用自行车需求大,下午还自行车需求大的住宅站;(2)上午客户归还自行车的需求量大,下午租自行车的需求量大的商务站; (3)“旅游”车站,客户租用或归还自行车的需求全天变化不大。 站点 i i i 的最佳库存水平可以通过 arg min s i { f i ( s i ) } \argmin_{s_i}\{f_i(s_i)\} argminsi{fi(si)} 求解。
3.3. 双层模型
为了证明BSS提供者和卡车车主之间的关系,在Ho和司徒[26]被提议。BSS 运算符的决策变量为 s i s_i si 、 u i P u_i^P uiP 和 y i D y_i^D yiD 。 上层模型旨在最大限度地减少总处罚成本。较低级别的模型旨在通过卡车容量限制和重新定位时间限制来最小化运输成本。
3.3.1. 上层模型
3.3.2. 下层模型
较低级别的目标函数 (11) 最小化总行程时间。约束 (12) 强制卡车离开并空着返回仓库的事实。约束 (13)规定每个车站只能访问一次。约束 (14)保证卡车不可能停留在任何站点。约束 (15)规定卡车的总装卸和行驶时间不应超过给定的重新定位时间。约束 (16) 消除了子行程 [38].约束 (17) 确保辅助变量为非负数。约束 (18) 声明
x
i
j
x_{ij}
xij这是一个二进制变量。约束 (19) 确保卡车的负载为非负负载。
约束 (15) 描述了上层决策变量和下层决策变量之间的关系。注意,对于给定的上层解,求解下层问题会产生 。路由变量由卡车所有者处理,而装载指令由 BSS 提供商确定。
4. 解决方法
如表所示2,有几篇论文致力于启发式算法在求解单级规划模型中产生的BRP中的应用。正如摩尔和巴德[39],混合整数双层规划模型是NP-hard的。在本节中,我们将重点介绍 ILS 和 TS 在求解双层BRP中的应用。提出的一般启发式主要基于 ILS 框架。在描述求解方法之前,首先简要概述了这种元启发式方法。然后,我们描述了所有启发式算法中使用的解表示solution representation、初始化过程the initialization procedure、邻域运算符the neighborhood operators和扰动运算符the perturbation operators。
4.1. ILS的基本描述
ILS由Lourenço等人于2001年引入,并在局部搜索之间迭代交替(强化,见章节4.4.1和4.4.2)和扰动(多样化,见章节4.4.3和4.4.4)机制,以期找到高质量的解决方案,直到满足给定的停止标准[40].局部搜索由对解 s 执行的一组邻域移动组成,以产生局部最优 s∗。局部下降的主要缺点是它可能被困在比全局最优值差得多的局部最优值中。与模拟退火非常相似,ILS 通过应用扰动将搜索驱动到解决方案空间的新区域来逃避局部最优。基本的ILS结构由Lourenço等人给出[41],如算法中所示1.从局部最小值 s ∗ s* s∗ 开始,我们应用扰动,导致解决方案 s ’ s’ s’ .应用本地搜索后,我们发现一个新的本地最小值 s ∗ ’ s*’ s∗’,它可能比 s ∗ s* s∗ 更好。要实现ILS算法,应指定四个程序:(i)GenerateInitialSolution生成初始解决方案,其中构建了初始可行的解决方案;(ii) LocalSearch局部搜索,它改进了最初获得的解决方案;(iii) Perturbation扰动,通过对 LocalSearch 返回的解决方案的扰动生成新的起始点;(四) Acceptance Criterion验收标准,用于确定应从哪个解决方案中接受搜索作为新的当前解决方案。执行的迭代次数取决于预定义的终止标准。
算法1
4.2. Solution Representation 解决方案表示
在这项工作中考虑的单辆卡车的双层BRP解决方案可以表示为对车站的一系列访问,从仓库开始和结束,以及每次访问时装载或卸载的自行车数量。
解 ω ω ω 由 ω = ( x , d , q ) ω= (x,d,q) ω=(x,d,q) 表示,其中 x x x 是存储卡车路线的向量; d d d 是存储卡车所访问站点装卸数量的向量, q q q 是存储路线期间卡车装载量的向量。
设 n n n 为卡车访问的站点总数(不包括起点和终点站)。卡车访问的车站表示为 x h x_h xh、 x h ∈ N , h ∈ [ 1 , n ] x_h \in N, h\in [1,n] xh∈N,h∈[1,n] ,并且假定重新定位卡车在仓库(用 X X X 表示 X 0 , X N + 1 ,和 X 0 = X N + 1 = 0 X_0, X_{N+1},和 X_0=X_{N+1}=0 X0,XN+1,和X0=XN+1=0)。
q
q
q 的最后一个元素定义为
q
h
=
∑
k
=
0
h
d
k
,
∀
h
∈
[
0
,
n
+
1
]
q_h=\sum_{k=0}^h d_k,\forall \ h \in [0,n+1]
qh=∑k=0hdk,∀ h∈[0,n+1],其中
d
h
d_h
dh表示station
X
h
X_h
Xh 的loading/unloading数量h换句话说,
q
h
q_h
qh给出访问站点
X
h
X_h
Xh 后卡车上的负载值的路线。卡车空载离开仓库;然后,根据埃尔南德斯-佩雷斯和萨拉查-冈萨雷斯 7,则如果满足以下不等式和相等性,则路径是可行的:
图2显示了可容纳10辆自行车的卡车进行重新定位操作的可行解决方案。在本例中,
n
=
8
n=8
n=8,卡车在0号仓库开始和结束重新定位。
图2. 解表示
4.3. Initialization 初始化
本文采用基于惩罚成本的构造启发式算法快速生成初始可行解。构造启发式算法最早由何和司徒[26]来解决单车BRP,然后何和司徒[17]用它来解决多车BRP。很好的记录
构造启发式算法的近似流程可以分为两个步骤。设置一个,按降序对所有车站进行排序,将它们划分为接送站和下车站。排名标准是
∣
f
i
(
s
i
0
−
f
i
(
s
i
Q
)
)
∣
|f_i(s_i^0-f_i(s_i^Q))|
∣fi(si0−fi(siQ))∣而不是
∣
f
i
(
s
i
0
−
f
i
(
s
i
I
)
)
∣
|f_i(s_i^0-f_i(s_i^I))|
∣fi(si0−fi(siI))∣何和司徒使用[26],其中
s
i
Q
=
{
s
i
0
−
min
(
Q
.
s
i
0
,
s
i
I
)
,
i
∈
P
;
s
i
0
−
max
(
−
Q
,
s
i
0
,
s
i
I
)
s_i^Q=\{s_i^0-\min(Q.s_i^0,s_i^I),i\in P;s_i^0-\max(-Q,s_i^0,s_i^I)
siQ={si0−min(Q.si0,siI),i∈P;si0−max(−Q,si0,siI).改进的主要原因是,如果站点
i
i
i的装卸量超过
Q
Q
Q,则无法满足超额需求。第二步,依次分配插入;首先分配接送站;如果在不超过容量限制的情况下无法将上车站插入当前路径,则插入下车站。另一个详细的算法流程可以在Ho和Szeto中找到8. 代码算法的详细参考位置:https://linkinghub.elsevier.com/retrieve/pii/S1366554514000945
4.4. Local Search and Perturbation Mechanism局部搜索和扰动机制
局部搜索的邻域结构是决定搜索空间大小和最终解质量的最重要组成部分之一。扰动过程是一种多样化方案,可帮助搜索过程摆脱局部最优。在本文中,我们提出的ILS中的局部搜索是通过随机变量邻域下降randomized variable neighborhood descent (RVND)过程执行的。RVND 包括以邻域的随机顺序系统地检查不同类型的邻域。检查每个邻域的所有可能移动,并从改善最好的邻域恢复搜索。如果邻域无法找到改进的解决方案,则该过程会随机选择另一个邻域。当所有邻域都无法优化当前解决方案时,该过程将结束。
4.4.1. 下层模型的局部邻域结构
针对上层模型给出上下车数量时确定最优卡车路线的问题,对下层模型实现了以下邻域结构。
☀️Reinsertion重新插入 (
σ
σ
σ):删除一个子序列
σ
σ
σ并重新插入到路线上的另一个位置。
σ
σ
σ的大小被限制在1-3个,因此产生了三个不同的邻域。
☀️Exchange交换 (
σ
σ
σ):一个子序列
σ
σ
σ与另一个子序列
σ
σ
σ互换。
σ
σ
σ的大小被限制在1和2,从而导致两个不同的邻域(不考虑对称性)。
☀️2-opt:从线路中移除两个不相邻的弧,然后将两个新弧插入到线路中。换句话说,游览的子序列是颠倒的
4.4.2. Local Neighborhood Structures for Bilevel Model双层模型的局部邻域结构
🔥Insert插入:移动将当前解决方案中不存在的工作站插入到当前解决方案中,然后执行修复启发式算法(请参阅部分4.6)到具有最佳选择标准的新解决方案(请参阅部分4.6).
🔥Swap交换:移动将解决方案中的station站 i 替换为当前解决方案中不存在的另一个工作站 j。station i i i和 station j j j必须为同一类型,仅交换station 编号,装卸数量不变。如果站点 j j j 的库存水平满足约束条件(6) 和 (7),并且生成的行驶时间不违反约束 (15).
🔥Delete删除:移动从当前解决方案中删除工作站,然后执行修复启发式算法(请参阅部分4.6),以使相邻解决方案在最佳选择标准下可行(请参阅部分4.6).
4.4.3. Perturbation Mechanism for Lower-Level Model 低级模型的扰动机制
扰动过程随机选择以下机制之一:
☀️Rand Reinsertion随机重新插入
(
σ
)
(\sigma)
(σ):重新插入
(
σ
)
(\sigma)
(σ)移动是随机应用的,我们限制
(
∣
σ
∣
)
(|\sigma|)
(∣σ∣)为最多 3 个。
☀️Rand Exchange随机交换:交换
(
σ
)
(\sigma)
(σ)移动是随机应用的。在我们的例子中,我们限制
(
∣
σ
∣
)
(|\sigma|)
(∣σ∣)为最多 2 个。
4.4.4. Perturbation Mechanism for Bilevel Model双层模型的摄动机制
Rand 插入:移动将不在当前解决方案中的工作站插入到当前解决方案中,然后执行修复启发式算法(请参阅部分4.6)到随机选择标准可行的新解决方案(请参阅部分4.6).
Rand 删除:移动从当前解决方案中删除工作站,然后执行修复启发式算法(请参阅部分4.6),以使相邻解决方案与随机选择标准可行(请参阅部分4.6).
4.5. Solution Algorithm for Bilevel Model双层模型求解算法
在本研究中,双电平BRP的求解方法如下。对于给定的库存水平 U,可以通过使用 ILS 求解较低级别的模型来找到卡车路线 L(参见 部分4.5.1). 通过从较低级别模型求解的卡车路线 L,可以评估较高级别模型的目标函数并生成一组新的 U。然后重复上述过程,直到收敛到双层BRP模型的最佳解。我们开发ILS来解决低级模型,并提出ILS和TS来解决双层模型。在本节中,较低级别模型的 ILS 过程(请参阅部分4.5.1)将首先提出,然后是 ILS(见一节4.5.2) 和 TS(请参阅部分4.5.3) 的两级模型过程将依次描述。在ILS和TS中进行的局部搜索和扰动邻域汇总在表中4.
表4
4.5.1. ILS for Lower Level 较低级别的 ILS
算法2说明了低级模型的 ILS 流程图。ILS 启发式执行迭代调用局部搜索和扰动local search and perturbation移动的过程,直到执行了 MaxConsIter_LM 连续迭代而没有改进。当前迭代的最佳解决方案始终是选择进行扰动的解决方案。使用上层模型给出的初始解
s
s
s,由 2-opt、重定位Relocation和交换邻域Exchange neighborhoods组成的局部搜索作为 LS_LM,使用 RVND 程序执行(参见第 4.4.1 节),而扰动程序,作为 Perb_LM,执行随机重定位和交换邻域Random Relocation and Exchange neighborhoods (参见第4.4.2节)。在这个过程中,让
r
r
r表示当前路径,
r
∗
r^*
r∗表示当前可以搜索到的最佳路径,
R
C
(
r
)
RC ( r )
RC(r)表示当前路径
r
r
r的行程成本,ConsIter_LM表示当前没有改进的连续迭代次数,MaxConsIter_LM表示没有改进的最大连续迭代次数。
4.5.2. ILS for Bilevel 双层 ILS
算法3提供了双层模型的 ILS 概要。根据算法3 ,在通过应用初始化过程(参见第4.3节)构造初始解
s
0
s_0
s0之后,重复调用过程 RVND、ILS_LM(参见第4.5.1节)和扰动Perturbation(参见第4.4.4节),直到满足预定义的终止标准。选择当前最佳解决方案以通过扰动移动进行扰动。在这个过程中,令
s
s
s代表当前二层模型的解,
s
∗
s^*
s∗代表目前可以搜索到的最优解,
T
C
(
s
)
TC ( s)
TC(s)表示当前解
s
s
s的总惩罚成本,ConsIter_BL表示当前没有改进的连续迭代次数,MaxConsIter_BL表示没有改进的最大连续迭代次数。
4.5.3. TS for Bilevel 双级 TS
TS 算法由 Glover 于 1986 年提出,是对局部搜索算法的扩展。它已成功应用于解决各种路径问题,例如旅行商问题、容量车辆路径问题、取货和交付问题、BRP [23、26]和其他路径问题。在每次迭代中,TS 通过从确定的解 w w w移动到 w w w的邻域 N ( w ) N ( w ) N(w) 的子集中的最佳解来探索解空间. 为了避免陷入局部最优并防止在同一解决方案上循环,TS 使用显式存储结构(即禁忌列表tabu list)来记录搜索轨迹。如果移动move 在禁忌列表中,则移动被禁止。有时禁忌列表可能会阻止选择优秀的解决方案。愿望标准aspiration criterion提供了克服这一障碍的机会。也就是说,即使解决方案是通过禁忌列表中的禁止移动获得的,愿望标准也可以选择更优的相邻解决方案。我们使用两个独立的禁忌列表 TABU1 和 TABU2,如下所示分别用于移除remove和插入insertion动作。
🐸TABU1:对于移除移动,禁忌列表记录从当前解决方案中移除的站号。在生成邻域时,如果选择要从当前解中移除的站点存在于禁忌列表中,则该移动被标记为禁忌。禁忌列表的长度表示为 I 1 I_1 I1。
🐸TABU2:对于一个插入移动,禁忌表记录了插入到当前解中的站号。在生成邻域时,如果选择要插入到当前解中的站点存在于禁忌列表中,则该移动被标记为禁忌。禁忌表的长度表示为 I 2 I_2 I2。
对于交换移动 swap move,如果当前解决方案中的站点 i i i与不在当前解决方案中的另一个站点 j j j交换,则意味着该交换移动集成了删除站点 i i i和插入站点 j j j。当通过交换移动生成邻域时,如果站点 i i i存在于禁忌列表 TABU1 中或站点 j j j存在于禁忌列表 TABU2 中,则交换移动被标记为禁忌。
实际上,在生成初始解后,会重复以下两个步骤,直到满足停止条件。TS 的停止标准是在没有改进的情况下实现预定的迭代次数 (MaxConsIter_TS)。
🐸步骤 1.生成新解
:从当前解
s
s
s的所有可行邻域算子feasible neighborhood operators(LS_BL,见第4.4.2节)生成临时解
s
′
s'
s′。然后,通过ILS_lower (见4.5.1节)获得最优low-level解
s
′
′
s''
s′′.
🐸步骤 2.评估新解决方案
:在这一步中,将新解决方案的目标值与找到的最佳解决方案的目标值进行比较。如果新解改进了最优解,则接受并更新最优解;否则,只有当它的移动不在禁忌列表中时,新的解决方案才会被接受。
在这个TS_BL过程中,令
s
s
s代表当前二层模型的解,
s
∗
s^*
s∗代表当前可以搜索到的最优解,tabu代表两个禁忌表,
N
(
s
)
N ( s )
N(s)代表由当前解
s
s
s的邻域解集合 ,
T
C
(
s
)
TC( s )
TC(s) 表示当前解s的惩罚成本 ,
T
C
(
s
∗
)
TC ( s^* )
TC(s∗)的总惩罚成本表示到目前为止的最小总惩罚成本,ConsIter_TS 表示当前没有改进的连续迭代次数,MaxConsIter_TS 表示没有改进的最大连续迭代次数。用于双层模型的 TS 的详细伪代码在算法4中给出。
4.6. Repairing Infeasible Solutions 修复不可行解
有时,在实施插入和删除邻域移动后,参考负载和容量约束,邻域解决方案可能不再可行。因此,可以通过调整卡车访问的新路线上的其中一个站点的接送数量来修复该解决方案。
令 ω = ( x , d , q ) ω = ( x,d,q ) ω=(x,d,q) 为当前解,设 x = ( x 0 , x 1 , ⋯ , x n , x n + 1 ) , x 0 = x n + 1 = 0 x=(x_0,x_1,\cdots,x_n,x_{n+1}),x_0=x_{n+1}=0 x=(x0,x1,⋯,xn,xn+1),x0=xn+1=0,设 S ( x ) S(x) S(x)为路线中的车站集合, S ( x ) = { x 1 , ⋯ , x n } S(x)=\{x_1,\cdots,x_n\} S(x)={x1,⋯,xn}. 让 σ = ( σ 1 , ⋯ , σ n σ ) \sigma=(\sigma_1,\cdots,\sigma_{n^\sigma}) σ=(σ1,⋯,σnσ)是解 w w w的路径x的子序列,设 d j σ d_j^{\sigma} djσ是车站 σ j \sigma_j σj的loading和unloading数量,设 q j σ q_j^{\sigma} qjσ是车站 σ j \sigma_j σj的累计负荷,则 q j σ = ∑ i = 1 j d i σ q_j^{\sigma}=\sum_{i=1}^j d_i^{\sigma} qjσ=∑i=1jdiσ.
让 q m i n σ = min { 0 , q 1 σ , ⋯ , q n σ σ q^{\sigma}_{min}=\min\{0,q_1^{\sigma},\cdots,q_{n^{\sigma}}^{\sigma} qminσ=min{0,q1σ,⋯,qnσσ, q m a x σ = max { 0 , q 1 σ , ⋯ , q n σ σ } q_{max}^{\sigma}=\max\{0,q_1^{\sigma},\cdots,q_{n^{\sigma}}^{\sigma} \} qmaxσ=max{0,q1σ,⋯,qnσσ}; 也就是说, q min σ q_{\min}^{\sigma} qminσ是最小累积载荷, q m a x σ q_{max}^{\sigma} qmaxσ是最大累积载荷。根据 Bulhões 等人的说法。[ 20 ],我们可以获得允许进入子序列 σ \sigma σ的自行车的最小和最大流量,以确保路径可行性。允许进入以确保可行性的最小自行车流量是 l m i n σ = − q m i n σ l_{min}^{\sigma}=-q_{min}^{\sigma} lminσ=−qminσ; 允许进入以确保可行性的最大自行车流量是 l m a x σ = Q − q m a x σ l_{max}^{\sigma}=Q-q_{max}^{\sigma} lmaxσ=Q−qmaxσ.
Delete
:如果我们从当前解中删除站
x
h
x_h
xh,则当前解中站的loading和unloading数量为
d
h
d_h
dh,设
Δ
D
=
d
h
\Delta^D=d_h
ΔD=dh. 执行删除delete移动后,让新解决方案的新路线成为
x
D
=
(
x
0
,
x
1
,
⋯
,
x
h
−
1
,
x
h
,
⋯
,
x
n
+
1
)
=
(
x
0
D
,
x
1
D
,
⋯
,
x
n
D
D
,
x
n
D
+
1
D
)
,
n
D
=
n
−
1
x^D=(x_0,x_1,\cdots,x_{h-1},x_h,\cdots,x_{n+1})=(x_0^D,x_1^D,\cdots,x_{n^D}^D,x_{n^D+1}^D),n^D=n-1
xD=(x0,x1,⋯,xh−1,xh,⋯,xn+1)=(x0D,x1D,⋯,xnDD,xnD+1D),nD=n−1.
让
S
(
x
D
)
=
{
x
1
D
,
⋯
,
x
n
D
D
}
S(x^D)=\{x_1^D,\cdots,x_{n^D}^D\}
S(xD)={x1D,⋯,xnDD}是路线中的车站集合。根据约束条件(3)和(5),路线
x
D
x^D
xD的总数量减少到
Δ
D
\Delta^D
ΔD;为了保持数量平衡,我们需要在
S
(
x
D
)
S(x^D)
S(xD)另一个站点增加
Δ
D
\Delta^D
ΔD。首先,我们把所有可行的站点
x
k
D
∈
S
(
x
D
)
,
k
∈
[
1
,
n
D
]
x_k^D\in S(x^D),k\in [1,n^D]
xkD∈S(xD),k∈[1,nD]可以通过增加
Δ
D
\Delta^D
ΔD到集合
F
D
,
F
D
⊂
S
(
x
D
)
F^D,F^D \subset S(x^D)
FD,FD⊂S(xD)中来调整数量以获得可行的解决方案. 然后,我们根据预先确定的规则从
F
D
F^D
FD中选择一个站点。如果我们选择车站
x
∗
D
,
x
∗
D
∈
F
D
x^D_*, x^D_* \in F^D
x∗D,x∗D∈FD,然后设置
d
x
∗
D
d_{x^D_*}
dx∗D. 首先要分析
S
F
S^F
SF中站点的特点,然后提出选择站点生成可行邻域解的规则。
通过调整数量来产生可行的新解的选站规则有两种:最佳选择准则Best Choose Criterion和随机选择准则Random Choose Criterion。Best Choose Criterion 是从集合
F
D
F^D
FD中选择惩罚成本增加最少的站点
i
i
i 。站
i
i
i由
a
r
g
m
i
n
i
∈
F
D
{
f
(
s
i
I
−
Δ
D
)
−
f
(
s
i
I
)
}
argmin_{i\in F^D}\{f(s_i^I-\Delta^D)-f(s_i^I)\}
argmini∈FD{f(siI−ΔD)−f(siI)}. Random Choose Criterion 是从集合
F
D
F^D
FD中随机选择站点
i
i
i.
Insert:
如果我们插入一个站
m
∈
N
\
S
(
x
)
m \in N \backslash S(x)
m∈N\S(x)进入当前路线
x
j
x_j
xj 和
x
j
+
1
x_{j+1}
xj+1 之间,新站点m的loading和unloading量为
d
m
d_m
dm,令
Δ
I
=
d
m
\Delta^I=d_m
ΔI=dm. 执行插入移动后,将新解决方案的新路线设置为
x
I
=
(
x
0
,
x
1
,
⋯
,
x
j
,
h
,
x
j
+
1
,
⋯
,
x
n
,
x
n
+
1
)
=
(
x
o
I
,
x
1
I
,
⋯
,
x
n
I
I
,
x
n
I
+
1
I
)
,
n
I
=
n
+
1
x^I=(x_0,x_1,\cdots,x_j,h,x_{j+1},\cdots,x_n,x_{n+1})=(x_o^I,x_1^I,\cdots,x_{n^I}^I,x_{n^I+1}^I),n^I=n+1
xI=(x0,x1,⋯,xj,h,xj+1,⋯,xn,xn+1)=(xoI,x1I,⋯,xnII,xnI+1I),nI=n+1.
令 S ( x I ) = { x 1 I , ⋯ , x n I I } S(x^I)=\{x_1^I,\cdots,x_{n^I}^I\} S(xI)={x1I,⋯,xnII}作为新路线 x I x^I xI中的车站集。根据约束(3)和(5),该路线 x I x^I xI的总数量增加 Δ I \Delta^I ΔI,为了保持数量平衡,我们需要在 S ( x I ) S(x^I) S(xI)中的另一个站点减少 Δ D \Delta^D ΔD。首先,我们把所有 S ( x I ) S(x^I) S(xI)中可行的站点放入 x k I ∈ S ( x I ) , k ∈ [ 1 , j ] ∪ [ j + 1 , n I ] x^I_k \in S(x^I),k\in [1,j] \cup [j+1,n^I] xkI∈S(xI),k∈[1,j]∪[j+1,nI] ,可以通过向集合 F I , F I ⊂ S ( x D ) F^I,F^I \subset S(x^D) FI,FI⊂S(xD)中递减 Δ I \Delta^I ΔI来调整数量得到可行解. 然后,我们根据Best/Random Choose Criterion从 F I F^I FI中选择一个站点 i i i。Best Choose Criterion 是从 F I F^I FI集合中惩罚成本增加最少的站点 i i i 。站i由 a r g m i n i ∈ F I { f ( s i I + Δ I ) − f ( s i I ) ) } argmin_{i \in F^I}\{f(s_i^I+\Delta^I)-f(s_i^I))\} argmini∈FI{f(siI+ΔI)−f(siI))}. Random Choose Criterion 是从集合 F I F^I FI中随机选择站点 i i i.
如果我们选择车站
x
∗
I
,
x
∗
I
∈
F
I
x_*^I, x_*^I \in F^I
x∗I,x∗I∈FI,然后设置
d
x
∗
I
=
d
x
∗
I
−
Δ
I
d_{x_*^I}=d_{x_*^I}-\Delta^I
dx∗I=dx∗I−ΔI. 显然,在路线中插入一个站点将需要更多的旅行时间。除了满足卡车容量约束外,执行插入移动后的可行邻居解决方案还需要服从卡车的时间约束。
5. Computational Results 计算结果
第4节中介绍的启发式算法是在 MATLAB 中编写的,所有计算实验都是在配备 Intel Core CPU@2.5 Hz的 Lenovo 笔记本电脑上进行的。为了调整我们提出的启发式并说明其效率和功效,使用了http://www.eng.tau.ac.il/~talraviv/Publications/3step%20data.zip上提供的集合。这些集合包含 20 到 200 个站的实例,这些实例首先由 Forma 等人使用。[ 15 ]。使用了两个车辆容量, Q = 10 和 Q = 20 Q = 10 和Q = 20 Q=10和Q=20,使用了两个重新定位时间(以秒为单位), T = 14400 和 T = 21600 T = 14400 和T=21600 T=14400和T=21600,两次加载和卸载时间(以秒为单位)被认为是 L = U = 30 , L = U = 60 L = U = 30,L = U = 60 L=U=30,L=U=60。其他输入数据(即 s i 0 s_i^0 si0 、 c i c_i ci和 f i ( s i ) f_i(s_i) fi(si))取自Forma 等人。[ 15 ]。每个实例运行该算法 20 次;采用最优解和平均解以及20次运行的平均计算时间来评价求解算法的性能。
所提出的算法ILS_BL主要依赖于两个参数,即ILS_LM中没有改进的最大连续迭代次数(MaxConsIter_LM)和ILS_BL中没有改进的最大连续迭代次数(MaxConsIter_BL)。TS_BL 依赖于四个参数,即 ILS_LM 中未改进的最大连续迭代次数 (MaxConsIter_LM)、
TS_BL 中未改进的最大连续迭代次数 (MaxConsIter_TS) 以及两个禁忌列表的长度(
I
1
I_1
I1 和
I
2
I_2
I2) .
ILS 中的参数 MaxConsIter_LM 和 MaxConsIter_BL 的值以及 TS 中的参数 MaxConsIter_TS 被定义为
∣
N
∣
|N|
∣N∣(所有站的数量)的函数和
L
e
n
Len
Len(重新定位卡车访问的站点数) 的函数。类似于 Ho and Szeto [^26 ] ,令
l
1
=
[
(
T
/
3600
)
l
o
g
10
(
∣
N
∣
)
]
l1=[(T / 3600)log_{10}(|N|)]
l1=[(T/3600)log10(∣N∣)],where
[
⋅
]
[\cdot]
[⋅]是是最近的整数函数,并且
l
2
=
[
1.5
l
1
]
l_2=[1.5l_1]
l2=[1.5l1]. 经过初步实验,当
∣
N
∣
<
=
100
|N|<=100
∣N∣<=100时,设置MaxConsIter_LM=
[
1.5
∗
L
e
n
]
[1.5* Len ]
[1.5∗Len],MaxConsIter_BL =
[
1.5
∗
L
e
n
]
[1.5 * Len ]
[1.5∗Len],MaxConsIter_TS=
[
1.5
∗
L
e
n
]
[1.5 * Len ]
[1.5∗Len],得到算法结果; 当
∣
N
∣
>
100
|N|>100
∣N∣>100,设置 MaxConsIter_LM=
[
2
∗
L
e
n
]
[2* Len ]
[2∗Len]、MaxConsIter_BL =
[
2
∗
L
e
n
]
[2* Len ]
[2∗Len]和 MaxConsIter_TS=
[
2
∗
L
e
n
]
[2* Len ]
[2∗Len].
5.1. 不同初始库存水平对求解双层 BRP 的影响
正如 Forma 等人所指出的。[ 15 ],车站的初始库存水平会影响达到理想库存水平所需的工作量。车站的初始库存水平离理想水平越远,工作就越必要。也就是说,进出车站的自行车数量更多。因此,类似于 Forma 等人。[ 15 ],我们首先根据三种不同的初始库存情况测试我们的解决方案算法的性能,称为“轻”、“真实”和“重”,指的是不同的工作负载。对于“轻”情况,我们从正态分布生成初始库存,其均值对应于理想库存,标准差等于 0.2 c i 0.2 c_i 0.2ci. 在“重”的情况下,标准偏差等于 0.6 c i 0.6 c_i 0.6ci。“真实”案例对应于随机日期午夜在系统中观察到的真实初始库存。
表5提供了本实验研究中考虑的实例的一些特征。在表5的第一列中,表示站的数量。标题为“Light level”、“Real level”和“Heavy level”的列表示每个实例的三种不同工作负载。“初始成本Initial cost”代表预期的短缺事件数量,假设没有进行重新定位。标题为“理想成本Ideal cos”的最后一列显示了预期的短缺事件数量,假设需求开始前每个站点的自行车数量是最优的(即理想,忽略重新定位工作成本和限制)。标题为“Δ”的列表示相应工作负载的“初始成本”和“理想成本”之间的差异。Δ 的值随着 ∣ N ∣ |N| ∣N∣增加而变大。这意味着重新定位工作量随着站点数量的增加而增加.
表5
表6报告了设置
Q
=
20
,
U
=
L
=
60
,
T
=
14400
Q = 20,U = L = 60,T = 14400
Q=20,U=L=60,T=14400,这是在不同的站点初始库存水平下获得的结果。“Best”是求解算法获得的最佳目标值(
z
u
p
p
e
r
z_{upper}
zupper),“Avg”是平均目标值(
z
u
p
p
e
r
z_{upper}
zupper), “Cpu”是 20 次运行的平均计算时间(以秒为单位)。为了衡量从 20 到 200 个站点的所有不同实例的求解算法的性能,我们考虑了完成重新定位 的百分比 percentage of completion repositioning (PCR),其定义如下
PCR值代表客户满意度;该值越高,客户满意度越高。对于上层决策者来说,由于下层操作人员的资源有限,如重新定位时间和卡车容量,没有办法使PCR 100%。显然,PCR 的价值随着在所访问站点上下车的自行车数量的增加而增加。
P
C
R
B
PCR_B
PCRB为最佳重定位完成百分比,
P
C
R
A
PCR_A
PCRA为平均重定位完成百分比,定义如下:
当工作负载处于实际级别时,运行时间小于其他两个级别。轻级别 (3.8320) 的运行时间小于重级别 (4.6087) 的运行时间。这是因为太大和太小的需求都会增加不可行解决方案的机会。表6和所示的结果表明
P
C
R
B
PCR_B
PCRB与
P
C
R
A
PCR_A
PCRA运行时间相反的趋势。正如预期的那样,在所有不同的工作负载中,随着站点数量
∣
N
∣
|N|
∣N∣的增加,
P
C
R
B
PCR_B
PCRB与
P
C
R
A
PCR_A
PCRA减少。当工作量workload处于真实水平时,
P
C
R
B
PCR_B
PCRB 和
P
C
R
A
PCR_A
PCRA高于其他两个水平。轻度级别(light level)的
P
C
R
B
PCR_B
PCRB和
P
C
R
A
PCR_A
PCRA是比重度级别(heavy level)的
P
C
R
B
PCR_B
PCRB和
P
C
R
A
PCR_A
PCRA高。但是,运行时间不会随着
∣
N
∣
|N|
∣N∣ 的增加而增加,如表6所示。运行时间随着
∣
N
∣
|N|
∣N∣增加而减少。这可能是因为增加提示 BSS 供应商很容易选择有大量短缺的站点来最小化惩罚函数,这导致卡车需要更多时间来装载/卸载自行车。装卸时间的取值越大,卡车行驶的时间越少,卡车经过的站点数量越少,从而缩小了求解空间。
表6
5.2. ILS_BL 与 TS_BL 相比的有效性
为了证明 ILS_BL 的有效性,对 ILS_BL 和 TS_BL 的性能进行了比较。表7报告了在 Q = 20 , L = U = 60 , T = 14400 Q = 20,L = U = 60,T = 14400 Q=20,L=U=60,T=14400的每个站的“真实水平”工作负载下获得的结果。 G a p B Gap_B GapB(%) 和 G a p A Gap_A GapA(%) 分别表示基于最佳和平均 PCR 的 ILS_BL 相对于 TS_BL 的性能。Gap 的值表示与 TS_BL 相比,ILS_BL 的 PCR 的相对改善(或恶化)。如果为正,则 ILS_BL 的性能优于 TS_BL。从表7中,所有 G a p B Gap_B GapB 和 G a p A Gap_A GapA值为正,这意味着 ILS_BL 解决方案的质量优于 TS_BL。平均而言,改进为 3.1434%,其中 TS_BL 需要稍微多一些的计算时间。正如预期的那样,在给定的重新定位时间和卡车容量下,当尺寸变大时, G a p B Gap_B GapB 和 G a p A Gap_A GapA的值变小。当 ∣ N ∣ |N| ∣N∣为 80 时, G a p B Gap_B GapB 和 G a p A Gap_A GapA的值取最大值。这表明 ILS_BL 比 TS_BL 更有效地解决中型 BRP
表7
5.3. 不同Q、U、L和T对上层成本的影响
在本节中,我们有兴趣评估卡车容量、每辆自行车的装卸时间以及重新定位时间的影响。
表8显示了在$U = L = 60,T = 14400 的情况下 的情况下 的情况下Q = 20 和Q = 10 的结果比较,大小范围为 20 到 200 个站点。 的结果比较,大小范围为 20 到 200 个站点。 的结果比较,大小范围为20到200个站点。Gap_B$ 和 G a p A Gap_A GapA是分别根据最佳和平均 PCR 指示 Q = 20 Q = 20 Q=20 相对于 Q = 10 Q = 10 Q=10的性能。所有负的 G a p B Gap_B GapB 和 G a p A Gap_A GapA值表明,随着重新定位卡车的容量降低,目标函数值增加,平均恶化为 2.4245%。解决这两个实例所需的 ILS_BL 的 Cpu 分别为 3.1197 和 4.0147,这表明随着卡车容量变小,ILS_BL 需要更多的时间来获取解决方案。这可能是因为卡车容量的减少增加了不可行解决方案的可能性。
表8
表9为在Q = 20,T = 14400 的情况下,加载/卸载时间L = U =60 和加载/卸载时间L = U =30的结果比较,大小从 20 到 200 个站点。
G
a
p
B
Gap_B
GapB 和
G
a
p
A
Gap_A
GapA是分别根据最佳和平均 PCR 指示L = U = 60 相对于L = U = 30的性能。所有正的
G
a
p
B
Gap_B
GapB 和
G
a
p
A
Gap_A
GapA值表明,随着加载/卸载时间的增加,目标函数值增加,平均提升8.1178%。求解这两个实例所需的 ILS_BL 的 Cpu 分别为 3.1197 和 4.2709,这表明加载/卸载时间的减少导致计算时间更长。这可能是因为如果缩短自行车的装载/卸载时间,卡车将有更多的时间访问更多的站点,从而导致解决方案空间的扩展
表9
表10显示了在U = L = 60,Q = 20 的情况下重新定位时间T = 14400 和T = 21600的结果比较,大小范围为 20 到 200 个站点。
G
a
p
B
Gap_B
GapB 和
G
a
p
A
Gap_A
GapA并分别根据最佳和平均 PCR 指示T =14400 相对于T =21600的性能。所有积极和值表明,随着重新定位时间的增加,目标函数值减小,平均恶化为14.4469%。解决这两个实例所需的 ILS_BL 的 Cpu 分别为 3.1197 和 4.4563,这表明重新定位时间的增加导致计算时间更长。这是意料之中的,因为随着重新定位时间的增加,卡车可以访问更多站点,从而扩大了解决方案空间。
6. 结论
自行车重新定位问题在自行车共享系统中起着重要作用。在本文中,我们提出的双层模型为在 BSS 提供商将自行车站之间的运输外包给第三方物流公司(卡车所有者)的情况下研究 BRP 提供了一个新的研究方向和领域。在这个双层模型中,上层决策者是 BSS 提供者,其目标是最小化在所有站点造成的总罚款成本,而卡车所有者作为下层决策者的目标是最小化出行成本。我们提出了 ILS 和 TS 来解决双层模型。
设置了计算实验来说明所提出算法的性能和问题的性质。特别是,结果表明 ILS 在解决方案质量和收敛速度方面优于 TS。此外,结果还表明,重新定位卡车的大小、单辆自行车的装卸时间值以及重新定位时间的长短会显着影响 BSS 提供商的总罚款成本。
这项研究在未来可以在几个方向上进行扩展:首先,可以考虑第三方物流公司使用的多辆重新定位卡车,使这项研究更具实用性。其次,如果放宽一些假设,这个问题将更加实际和灵活。例如,放宽一个站点将被车辆多次访问的假设也将更加实际。第三,调查平衡站临时装卸自行车的影响会很有趣。
表1
表2
表3
表4
A modeling framework for the dynamic management of free-floating bike-sharing systems —TRC ↩︎
Inventory rebalancing through pricing in public bike sharing systems ↩︎
M. Benchimol, P. Benchimol, B. Chappert et al., “Balancing the stations of a self service “bike hire” system,” RAIRO Operations Research, vol. 45, no. 1, pp. 37–61, 2011. –“自行车的问题被证明为NP-hard” ↩︎
G. Erdoğan, G. Laporte, and R. Wolfler Calvo, “The static bicycle relocation problem with demand intervals,” European Journal of Operational Research, vol. 238, no. 2, pp. 451–457, 2014. –BRP的精确求解 ↩︎
G. Erdoğan, M. Battarra, and R. Wolfler Calvo, “An exact algorithm for the static rebalancing problem arising in bicycle sharing systems,” European Journal of Operational Research, vol. 245, no. 3, pp. 667–679, 2015. –BRP的精确求解 ↩︎
T. Raviv, M. Tzur, and I. A. Forma, “Static repositioning in a bike-sharing system: models and solution approaches,” EURO Journal on Transportation and Logistics, vol. 2, no. 3, pp. 187–229, 2013. –惩罚函数的首次提出 ↩︎
H. Hernández-Pérez and J. Salazar-González, “Heuristics for the one-commodity pickup-and-delivery traveling salesman problem,” Transportation Science, vol. 38, no. 2, pp. 245–255, 2004.–车辆路径可行的原因</font<> ↩︎
S. C. Ho and W. Y. Szeto, “Solving a static repositioning problem in bike-sharing systems using iterated tabu search,” Transportation Research Part E: Logistics and Transportation Review, vol. 69, pp. 180–198, 2014. –某启发式算法的详细流程 --TRE ↩︎