随着工业制造智能化的快速发展, AGV小车在智能制造车间得到越来越多的应用. AGV在车间中负责物流任务的转运, 目前, 购买的AGV已具有安全避障、路径规划等功能. 但是, 不同AGV小车物流任务的选择和每个小车运输物流任务的顺序会得到不同的总运输路程和物流任务等待被转运的时间, 进而影响车间的生产效率和经济效益.
物流调度优化技术的关键是实现车间生产高效率、高灵活性和物流运输成本最低. 即一方面降低工位等待运输物流任务的时间, 保证物流任务运输的及时性, 以可以充分利用车间的生产设备和保证生产车间高效平稳的工作. 另一方面优化物流任务配送路径, 使得转运设备行驶最少的路程来满足工位物流任务的运输需求. 因此, 如何有效地使用调度优化算法, 以提高工位的满意度, 并达到最低生产成本, 最大化运输资源利用率, 是提高企业生产效率和经济效益的重要方法.
制造车间物流调度通常会涉及多个优化目标, 如最小化单个物流任务配送成本[1]、最小化物流任务配送延迟时间[2]、最小化总能源消耗[3, 4]等, 多个目标之间通常会存在竞争关系, 无法使多个目标同时达到最优, 即一个目标函数值的增加可能会导致其它目标函数值的降低. 对多目标问题进行优化时, 通常有两种方式, 一是通过给每个目标函数设置一定的权值进行加权求和转换为单目标问题, 二是求得Pareto最优解集[5]. 由于在优化过程中无法确定各目标函数的权值, 所以本文采用第二种方法进行多目标优化问题的研究.
近年来, 关于制造车间含AGV多目标调度优化已有大量的研究. 杨智飞等[6]基于遗传算法, 融合差分进化算法同时优化完工时间、AGV数量和惩罚成本. 宋存利[7]提出了一种改进的NSGA-II算法实现了混合流水车间最小化能耗和最小化最大完工时间的求解. Mousavi等[8]设计了模糊混合遗传粒子群算法, 以最小化最大完工时间和最小化AGV数量为目标函数构建模型, 对柔性制造系统(Flexible Manufacturing System, FMS)中的多目标AGV调度模型进行优化. Zhang等[9]提出一种基于实时多源制造数据的车间物料搬运动态优化方法, 设计开发了基于AGV小车、实时信息交换和物料搬运任务优化的动态优化模型, 根据小车的实时状态, 将最优物流任务分配给最优小车. Zhang等[10]设计了基于变邻域局部搜索策略的混合遗传算法, 实现了包含最小化总加权拖期和最小化总能源消耗的作业车间调度问题求解. 张连超等[11]通过使用灰色理论来预测物料的需求时间, 并使用时间窗构建多模型交互机制以避免小车行驶过程中的碰撞问题. Umar等[12]设计了动态混合多目标进化算法, 研究FMS中作业和AGV的综合调度, 制定作业调度计划和确定AGV的行驶路径. Lu等[13]提出一种混合多目标回溯搜索算法(Hybrid Multi-Objective Backtracking Search Algorithm, HMOBSA)实现置换流水车间最小化完工时间和最小化能耗的求解. 魏永来等[14]提出一种混合禁忌蝙蝠算法, 求解以AGV总行驶路程、总运输时间和总配送成本为目标的多AGV作业车间调度优化问题. 刘二辉等[15]提出一种改进的花授粉算法实现车间最小化工件的最大完工时间和最大化AGV利用率的求解.
综上所述, 制造车间中含AGV多目标调度优化已有大量研究, 但是已有研究中缺少对车间中一些实际因素的考虑, 建立的模型没有同时考虑AGV的能耗、物流任务的优先级、物流任务间的物流成本和工位物流任务的满意度对物流调度的影响, 与制造车间生产物流的实际情况不符. 此外, 目前混合变邻域遗传算法在车间物流调度优化问题方面的应用研究较少.
遗传算法是一种基于自然进化和选择机制的智能优化算法, 具有全局优化能力强、速度快、易于实现等优点, 但是其存在易早熟、早收敛等缺陷. 变邻域搜索算法是基于邻域结构集而非单个邻域的局部搜索算法, 其基本思想是在搜索过程中系统地改变邻域结构集来拓展搜索能力, 以提高算法局部搜索能力, 避免算法陷入局部最优, 比传统的固定邻域搜索的搜索能力更强[16], 已用于很多优化问题的求解.
因此, 本文结合遗传算法全局搜索能力强的特点和变邻域搜索算法局部搜索能力强的特点, 并添加保优记忆库对精英个体进行保护, 设计了混合变邻域搜索的改进遗传算法VNSGA-II. 以最小化物流任务时间惩罚成本和最小化运载小车的总行驶距离为优化目标, 构建离散化车间多目标物流调度优化模型. 由于初始种群的生成方式对算法的搜索效率和解质量有较大的影响, 本文改进了初始种群的生成方式, 以物流任务优先级从高至低排序和随机生成相结合的方式生成初始种群. 在迭代过程中, 通过使用NSGA-II的虚拟适应度评估方法, 对种群中的个体进行非支配分层以及计算各层内个体间的拥挤距离, 以此评估个体的优劣. 并针对本文所构建模型的特点, 设计6个随机搜索邻域结构可有效提高解的质量, 促使种群快速跳出局部最优. 由于在变邻域搜索时会花费较多时间, 所以本文在种群最优解质量经过规定的迭代次数后没有改进时, 才对当代最优解进行变邻域搜索. 为了进一步降低物流成本和工位的满意度, 提出了基于关键AGV小车的插入邻域和基于关键物流任务的交换邻域的调整策略以进一步优化模型.
1 问题描述与数学建模 1.1 问题描述本文研究含多AGV的离散化车间物流调度优化问题, AGV在车间中负责物流任务的运输. 某加工车间有
每个工位有进料位和出料位, 车间中还额外设置一个公共缓冲区, 该公共缓冲区服务于所有加工工位. 每个工位的进料位容量为
物料是装在空载具中运输的, 小车每次运输一个载具的物料, 设有
(1) 当小车被指派多个物流任务时, 小车完成一个任务后直接执行下一个任务.
(2) 车间中各站点之间的距离已知.
(3) 一个小车在同一时刻只能承担一个物流任务.
(4) 小车一次只能运输一个载具的物料.
(5) 一个载具只能装载一个工位的物料.
(6) AGV行驶速度恒定, 其配送成本只和运行距离有关.
1.2 数学建模为了贴近生产物流实际情况, 模型参数变量定义如表1所示.
1.2.1 物流任务计算
由于一个工位加工任务对应多个工件, 根据物流能力需要转换为
$ J = {\left( {{j_k} = \displaystyle\sum\limits_u {\frac{{\displaystyle\sum\limits_m {\displaystyle\sum\limits_y {{w_{kmy}}} } }}{{{n_{uy}}}}} } \right),\;\;k \in 1, \cdots ,n} $ | (1) |
$ {{X}} = H \cup J $ | (2) |
为了实现制造车间生产效率的最大化, 并更好地控制配送成本. 车间物流调度需要满足以下要求: ① 原材料按时配送, 使原材料的到达时间和需求时间之差最小. ② 实时呼叫的物流任务及时配送, 使物流任务等待运输时间最小. ③ 运载小车的利用率高, 即运载小车行驶最少的路程满足物流配送的需求. 基于此, 本文的目标函数由两部分组成, 分别是最小化时间惩罚成本和最小化运载小车的总行驶距离.
(1) 时间惩罚成本
为避免加工设备出现停机等待物料这种情况, 通常要求物料的运输时间早于或等于最迟运输时间. 若物流任务的开始运输时间早于或等于最迟运输时间, 则满意度最高, 惩罚值为0. 若物流任务的开始运输时间迟于最迟运输时间, 则用延迟的时间和优先级的平方相乘, 得到时间惩罚成本. 因为, 优先级高的物流任务相较于优先级低的在实际生产中会带来更大的损失. 设小车运行速度为15 m/min, 根据该速度计算物流任务的运输时间.
$ \min f1 = \sum\limits_p {(e{t_p} - s{t_p}) \times a_p^2},\; \;\;\forall p \in X $ | (3) |
(2) 运载小车的总行驶距离
小车的总行驶距离由运输物流任务的距离和完成上一个物流任务再去运输下一个物流任务所需的距离所组成.
$ \min f2=\sum\limits_{i}{\sum\limits_{p=1,q=2}{{{s}_{ipq}}+\sum\limits_{i}{\sum\limits_{p}{{{b}_{ip}},\;\;\forall i\in I,\forall p,q\in X}}}} $ | (4) |
根据物流调度优化的实际需求, 设定如下约束条件:
(1) 任意时刻小车使用数量不超过小车总数量.
$ {\rm{ }}\sum\limits_i {{r_{id}} \le I,\;\;\forall i \in I,\forall d \in D} $ | (5) |
(2) 每个工位的出料位和进料位容量大于等于1.
$ {\rm{ }}\sum\limits_k {{c_{ik}} + } {c_{ok}} \ge 1,\;\;\forall k \in K $ | (6) |
(3) 载具装载的物料不大于载具的容量.
$ \sum\limits_m {\sum\limits_y {{w_{kmy}}} \times \frac{1}{{{n_{uy}}}} \le 1,\;\;\forall k \in K,\forall m \in M,\forall u \in U} $ | (7) |
(4) 进料位容量限制, 工位进料位的实时存储物料不超过其最大存储量限制.
$ c{i_{kd}} \le c{i_k} $ | (8) |
针对制造车间物流调度问题, 设计的混合变邻域搜索的改进遗传算法伪代码如算法1所示, 算法流程图如图1所示.
2.1 编码设计常见的染色体编码方式有二进制编码、自然数编码、矩阵编码和交叉编码等. 由于本文研究问题为运输小车任务的指派, 以及运输小车任务的排序, 因此采用自然数编码和交叉编码相结合的方式. 染色体基因总数为偶数, 奇数位为小车编号, 偶数位为待运输的物流任务, 每两个基因组成一个基因片段, 每个基因片段表示小车i负责物流任务p的运输. 例如: 待运输的物流任务编号为{2, 9, 3, 5, 7, 8}, 可供使用的AGV小车编号为{1, 2}, 则一个可能的染色体为: {2, 2, 1, 9, 1, 3, 2, 5, 1, 7, 2, 8}. 表示2, 9, 3, 5, 7, 8物流任务分别由2, 1, 1, 2, 1, 2运输. 即小车1按顺序运输载具9, 3, 7, 小车2按顺序运输载具2, 5, 8, 如图2所示.
2.2 解码方法和适应度函数设计按照2.1节编码设计规则对种群中每个染色体进行解码, 解码时根据物流任务编号找到其在车间所处对应的位置、优先级等相关信息.
以小车的总行驶距离、时间惩罚成本为优化目标建立的目标函数. 本文所优化问题为最小问题, 根据遗传算法原理, 适应度函数值越高的个体越容易存活, 在迭代过程中适应度函数值低的染色体会被淘汰, 适应度函数值高的染色体被保留, 因此, 经过多次迭代, 染色体质量会越来越好. 因此, 适应度值采取目标函数值的倒数, 即目标函数值越小, 适应度值越大, 适应度函数与目标函数的关系表达式如式(9)所示:
$ fi{t_i} = \frac{1}{{Y{}_i}},\;\;i = 1,2, \cdots,pop\_si{\textit{z}}e $ | (9) |
式中,
算法 1. 混合变邻域搜索的改进遗传算法
输入: AGV小车信息
输出: 每个AGV小车运输的物流任务及顺序
参数:
变量:
函数: 种群初始化
while
for
end for
for
end for
for
end for
for
end for
if not
end if
if
end if
if
//对种群进行扰动, 保证迭代过程中个体的多样性, 生成大小为
end if
end while
循环最优解
2.3 初始种群的生成
初始种群以物流任务优先级从高至低排序和随机生成相结合的方式生成.
以随机生成方式产生初始种群的具体步骤如下:
步骤 1. 根据可调用的小车编号, 确定小车的集合I.
步骤 2. 用生成随机数的方法从指定集合I中对染色体的每个基因产生随机数
步骤 3. 在生成的染色体每一位基因后面随机插入一位新的基因, 表示物流任务编号, 染色体长度扩展为2P, 染色体扩展方法如图3所示.
步骤 4. 重复以上步骤, 产生大小为
以物流任务优先级从高至低排序产生初始种群的具体步骤如下:
步骤 1. 将所有物流任务按照优先级进行降序排序(优先级最高为4).
步骤 2. 随机打乱小车编号的顺序.
步骤 3. 循环小车编号列表和物流任务编号列表, 当循环至最后一个小车编号时, 改变索引至第一个小车, 直至遍历完所有的物流任务, 每一次取出小车编号和物流任务编号, 小车编号后面跟着物流任务编号.
步骤 4. 染色体的大小为2倍物流任务长度. 重复执行上述操作
选择操作采用二元锦标赛选择的方法按照概率选择适应度值较高的染色体参与遗传操作. 为了产生不同小车物流任务的分配方案, 通过交叉操作来增大物流任务分配解空间的搜索范围. 首先从种群中选出两个染色体, 对于偶数位, 将染色体的某一个位置切断, 将交叉位置前的染色体片段加到对方染色体个体前面, 并删除对方染色体中偶数位与交叉位置前染色体片段偶数位相同的值及对应前一位的奇数位. 对奇数位, 为每个奇数位生成一个随机数, 根据随机数的大小决定哪个父染色体贡献哪些奇数位的基因, 即随机数大的贡献给子染色体1, 随机数小的贡献给子染色体2, 如图4所示.
2.5 变异算子
为了维持种群的多样性以防止算法过早收敛, 采用变异操作提高算法的局部搜索能力. 传统的变异算子是选择若干个基因位, 然后随机修改基因的值, 变异后会出现非法解. 本文采用改进的变异算子, 如图5所示. 改进的变异算子是对偶数位进行变异操作, 获取染色体奇数位的基因值, 记为
传统遗传算法中交叉、变异算子的作用个体均来自于子代种群, 该方法有一个明显缺点: 种群进化中优秀的个体得不到保护以致在下一轮迭代中易破坏. 因此, 通过使用保优记忆库更新策略来解决这一问题, 在每一代迭代结束后, 将保优记忆库中的精英个体合并到当代得到的新种群中, 合并的规则是若保优记忆库中的解和新种群的解两个目标函数均相同, 则只选择一个. 然后通过精英选择策略选择规模为
2.7 变邻域搜索算法
由于遗传算法求解过程中容易陷入局部最优解, 因此采用变邻域搜索策略来解决这一问题. 其思想是首先从最小邻域开始搜索解空间得到一个局部最优解. 然后通过系统地改变邻域结构, 基于该局部最优解, 重新从最小邻域开始搜索得到下一个局部最优解. 变邻域搜索算法是基于邻域结构集而非单一邻域结构, 因此, 比固定邻域结构的算法搜索能力更强. 变邻域搜索算法伪代码如算法2所示, 流程如图6所示.
针对本文模型特点, 设计6个随机邻域结构搜索机制, 具体如下:
(1) 3种同一小车内搜索策略, 即通过一定的规则改变同一个小车运输物流任务的顺序.
① swap算子
任意交换同一个小车的物流任务, 对同一个小车, 随机选取两个节点, 交换两个节点. 如图7(a)所示.
算法 2. 变邻域搜索算法
输入: 初始解ori_gen
输出: 变邻域搜索后的解
变量:
函数: 比较新解和初始解的目标函是否相等
while
if
else
if
else
end if
end if
end while
② 2-opt算子
对某一个小车, 随机选取两个不相邻的节点, 然后翻转两个节点之间的节点, 得到新染色体, 如图7(b)所示.
③ or-opt算子
将同一个小车相邻的两个物流任务一起移动到其他位置. 即随机选取同一个小车的两个相邻的位置, 随机选择该小车的一个物流任务作为一个插入节点, 并在移动后保持相邻, 如图7(c).
(2) 3种不同小车间搜索策略, 即通过一定的规则改变两个小车的物流任务.
① swap算子
随机选择两个小车, 在小车1和小车2分别随机选取两个小车的一个物流任务, 交换这两个节点, 如图8(a)所示.
② relocate算子
随机选取两个小车, 随机选取小车1的一个物流任务m, 随机选取小车2的一个物流任务n, 将小车1的物流任务m移动到小车2物流任务n后的位置, 如图8(b)所示.
③ or-opt算子
将其中一个小车的相邻两个物流任务移动到另一个小车, 如图8(c)所示.
为了进一步降低物流成本和提高工位满意度, 设计基于关键AGV小车的插入邻域、基于关键物流任务的交换邻域的调整策略, 具体如下:
(1) 基于关键AGV小车的插入邻域
将总行驶距离最大的AGV定义为关键AGV小车, 表示为
(2) 基于关键物流任务的交换邻域
将小车i运输完物流任务p再去运输物流任务q的空载行驶距离
(1) 案例设计
本文以某离散车间为例验证算法的有效性. 车间中任意两个位置之间的距离值如表2所示, 车间布局如图9所示, AGV小车的物流路径在图中已用实线标明, 每条路径同时可有两辆AGV小车通行, 其中共有8个加工工位、1个原材料库、1个缓冲区、1个成品库、1个刀具库和1个工装库, 在程序中依次从左向右转换为0至12的编号. 物流任务在车间中的流转均由AGV小车运输.
(2) 算法相关参数设置如表3所示.
(3) 物流任务的实时信息模型
为了更好地进行管理和数据交换, 模型的输入一共包含两部分. 第一部分是运载小车的信息, 分别是可调用小车编号和小车完成当前正在执行任务后的位置. 第二部分是待物流任务的信息, 每个物流任务的信息包括: 任务
$X = \left[ {\begin{array}{*{20}{c}} {i{d_1}}&{{f_1}}&{{e_1}}&{{a_1}}&{s{t_1}} \\ {i{d_2}}&{{f_2}}&{{e_2}}&{{a_2}}&{s{t_2}} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ {i{d_p}}&{{f_p}}&{{e_p}}&{{a_p}}&{s{t_p}} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ {i{d_x}}&{{f_x}}&{{e_x}}&{{a_x}}&{s{t_x}} \end{array}} \right]$ | (10) |
在优先级的定义中, 1 代表“普通任务”, 2 代表“重要任务”, 3代表“紧急任务”, 4代表“更紧急任务”.
为了验证本文模型和算法的有效性, 随机构造一个实验案例, 如表4和表5. 最晚运输时间在区间[0, 60]中随机产生.
3.2 实验结果分析与单目标优化算法不同, 多目标优化结果通常不是单个最优解, 而是一个Pareto最优解集. 根据本文车间物流调度需求, 算法需要确定每个AGV小车运输的物流任务, 及运输每个物流任务的顺序. 本文是从最优解集中根据两个目标函数的和选取最优解.
为了验证本文设计的VNSGA-II算法求解的有效性, 在本文设计的案例条件下与两种经典的多目标优化算法NSGA-II, SPEA2的优化结果进行实验分析. 3种算法实验条件及参数相同, 采用Python语言完成上述算法的编程, 3种算法分别运行20次, 生成的Pareto最优解集如图10所示, 算法优化结果分析如表6和表7所示, 其中在表6中
由表6可知, VNSGA-II的优化结果在两个目标函数: 时间惩罚成本和运载小车的总行驶距离上在最优解和平均解上均优于NSGA-II和SPEA2. 因本文研究的问题是最小问题, 即两个目标函数值越小越好, 由图10可以看出, 本文设计的VNSGA-II算法得到的Pareto最优解更多, 在解的质量上总体比NSGA-II和SPEA2更好. 表7是3个算法运行的最优解AGV的物流任务分配情况及转运顺序和每个行驶小车的总空载距离. 因此, 从以上实验可以看出本文设计的算法在保持运输物流任务延迟时间较低的情况下, 有效降低了运载小车的总行驶距离和空载距离, 既缩短了物流任务的搬运时间又节省了车间的物流成本.
4 结束语
本文以制造车间物流调度为实际背景, 建立多目标优化模型, 针对该问题设计了求解多目标的VNSGA-II算法, 该算法包含遗传算法的基本操作, 并对最优解集进行变邻域搜索. 通过实验, 结果表明:
(1) 模型考虑物流任务的时间惩罚成本和AGV小车的总行驶距离两个方面, 有效地平衡了车间的生产效率和车间的生产成本, 具有较强的实用性.
(2) 与两种多目标经典优化算法NSGA-II和SPEA2的实验结果对比表明, VNSGA-II算法在求解质量上均优于NSGA-II和SPEA2.
[1] |
刘雪梅, 王笑, 柳跃雷. 模糊时间窗约束下的装配线物料配送方案优化. 中国机械工程, 2020, 31(17): 2095-2103. DOI:10.3969/j.issn.1004-132X.2020.17.012 |
[2] |
Tang HT, Chen R, Li YB, et al. Flexible job-shop scheduling with tolerated time interval and limited starting time interval based on hybrid discrete PSO-SA: An application from a casting workshop. Applied Soft Computing, 2019, 78: 176-194. DOI:10.1016/j.asoc.2019.02.011 |
[3] |
Zhou BH, Shen CY. Multi-objective optimization of material delivery for mixed model assembly lines with energy consideration. Journal of Cleaner Production, 2018, 192: 293-305. DOI:10.1016/j.jclepro.2018.04.251 |
[4] |
周炳海, 何朝旭. 基于静态半成套策略的多目标准时化物料配送调度. 吉林大学学报(工学版), 2021, 51(3): 910-916. |
[5] |
Zain MZBM, Kanesan J, Chuah JH, et al. A multi-objective particle swarm optimization algorithm based on dynamic boundary search for constrained optimization. Applied Soft Computing, 2018, 70: 680-700. DOI:10.1016/j.asoc.2018.06.022 |
[6] |
杨智飞, 苏春, 胡祥涛, 等. 面向智能生产车间的多AGV系统多目标调度优化. 东南大学学报(自然科学版), 2019, 49(6): 1033-1040. DOI:10.3969/j.issn.1001-0505.2019.06.003 |
[7] |
宋存利. 求解多目标混合流水车间调度的改进NSGAⅡ算法. 计算机集成制造系统, 1–19. https: //kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CJFQ&dbname=CAPJLAST&filename=JSJJ2020102300K&v=MTQzMjRGeTNsV3IvQUlWcz1MejdCWkxHNEhOSE5yNDFHWk90MFl3OU16bVJuNmo1N1QzZmxxV00wQ0xMN1I3cWRadVpu. [2020-12-21].
|
[8] |
Mousavi M, Yap HJ, Musa SN, et al. A Fuzzy hybrid GA-PSO algorithm for multi-objective AGV scheduling in FMS. International Journal of Simulation Modelling, 2017, 16(1): 58-71. DOI:10.2507/IJSIMM16(1)5.368 |
[9] |
Zhang YF, Zhang G, Du W, et al. An optimization method for shopfloor material handling based on real-time and multi-source manufacturing data. International Journal of Production Economics, 2015, 165: 282-292. DOI:10.1016/j.ijpe.2014.12.029 |
[10] |
Zhang R, Chiong R. Solving the energy-efficient job shop scheduling problem: A multi-objective genetic algorithm with enhanced local search for minimizing the total weighted tardiness and total energy consumption. Journal of Cleaner Production, 2016, 112: 3361-3375. DOI:10.1016/j.jclepro.2015.09.097 |
[11] |
张连超, 刘蔚然, 程江峰, 等. 卫星总装数字孪生车间物料准时配送方法. 计算机集成制造系统, 2020, 26(11): 2897-2914. |
[12] |
Umar UA, Ariffin MKA, Ismail N, et al. Hybrid multiobjective genetic algorithms for integrated dynamic scheduling and routing of jobs and automated-guided vehicle (AGV) in flexible manufacturing systems (FMS) environment. The International Journal of Advanced Manufacturing Technology, 2015, 81(9–12): 2123-2141. DOI:10.1007/s00170-015-7329-2 |
[13] |
Lu C, Gao L, Li XY, et al. Energy-efficient permutation flow shop scheduling problem using a hybrid multi-objective backtracking search algorithm. Journal of Cleaner Production, 2017, 144: 228-238. DOI:10.1016/j.jclepro.2017.01.011 |
[14] |
魏永来, 龙伟, 李炎炎, 等. 基于混合禁忌蝙蝠算法的AGV物料配送调度研究. 组合机床与自动化加工技术, 2018(11): 145-149. |
[15] |
刘二辉, 姚锡凡, 陶韬, 等. 基于改进花授粉算法的共融AGV作业车间调度. 计算机集成制造系统, 2019, 25(9): 2219-2236. |
[16] |
Duarte A, Pantrigo JJ, Pardo EG, et al. Multi-objective variable neighborhood search: An application to combinatorial optimization problems. Journal of Global Optimization, 2015, 63(3): 515-536. DOI:10.1007/s10898-014-0213-z |