【论文学习】Robust Capacity Planning for Project Management

1. 摘要

本文考虑在许多项目的规划中出现的一个重大问题。项目公司通常使用外包供应商(outsourced providers),这些供应商要求在实现任务期限之前必须签订容量保留合同。对于一个给定部分特征分布信息的公司,我们建立了这些决策模型,假设任务持续时间服从最坏情况分布。一旦实现了任务工期,项目公司就会做出快速跟踪( fast tracking)和外包赶工(outsourced crashing)的决策,以最小化总的容量预留、快速跟踪、赶工和完工时间惩罚成本。我们使用基于目标的措施,尽量减少一个表现不佳的风险指数。我们考虑了任务性能的相关性,以及崩溃和最大完工时间(makespan)惩罚的分段线性代价。对于中小型项目,离散非线性模型的最优解是可能的。我们将模型的性能与鲁棒优化文献中的最佳基准进行了比较,结果表明,该模型对分布信息具有更低的风险和更强的鲁棒性。因此,我们的工作能够更有效地将项目中的风险降至最低,并提供有关如何做出更稳健的容量预留决策( capacity reservation decisions)的见解。

2. 模型

[ N ] = { 1 , 2 , ⋯   , N } [N]=\{1,2,\cdots,N\} [N]={1,2,,N}, individual tasks with precedure relationships
n i → n j n_i\rightarrow n_j ninj:the task n i n_i ni must be completed before n j n_j nj starts

2.1 Two types of outsourced capacity

(1) general capacity: which can help to perform any task.
( q x , u x ) ∈ R 2 × O (\boldsymbol{q}_x,\boldsymbol{u}_x)\in\mathbb{R}^{2\times O} (qx,ux)R2×O where O O O is the number of quantity-price pairs on the list, q x j q_{xj} qxj units of the general resource are reserved, and the reservation cost u x j u_{xj} uxj is paid.
x ∈ { 0 , 1 } O \boldsymbol{x}\in\{0,1\}^O x{0,1}O denote the capacity decision for the general resource, where x j = 1 x_j = 1 xj=1 if the j j j-th package is reserved, and x j = 0 x_j = 0 xj=0 otherwise. Then the total cost of general capacity reserved is u x T x \boldsymbol{u}_x^T\boldsymbol{x} uxTx.
(2) customized resource: which is applicable to a specific task. Let y ∈ { 0 , 1 } N \boldsymbol{y}\in\{0,1\}^N y{0,1}N and u y ∈ R N \boldsymbol{u}_y\in\mathbb{R}^N uyRN represent the reservation decision and reservation cost, respectively, for the customized capacity. Hence, the total cost of customized capacity reserved is u y T y \boldsymbol{u}_y^T\boldsymbol{y} uyTy.

2.2 Sequence of Events

(1) decide how much of various types of capacity to reserve
(2) uncertain task durations are assumed to be realized
(3) The project manager responds by fast tracking and/or crashing the project, in order to minimize the cost of fast tracking, crashing, and makespan penalty.

2.3 Notations

( x , y ) ∈ Λ (\boldsymbol{x},\boldsymbol{y})\in\Lambda (x,y)Λ, represent the feasible set for the capacity reservation decision ( x , y ) (\boldsymbol{x},\boldsymbol{y}) (x,y). Assume all constraints in ( x , y ) ∈ Λ (\boldsymbol{x},\boldsymbol{y})\in\Lambda (x,y)Λ are linear, except for x ∈ { 0 , 1 } O \boldsymbol{x}\in\{0,1\}^O x{0,1}O and y ∈ { 0 , 1 } N \boldsymbol{y}\in\{0,1\}^N y{0,1}N.

2.4 Models

第二阶段的决策:
min ⁡ g F T w F + g C T w C + d T v s.t. ( w F , w C , v , c ) ∈ S ( x , y , z ) \begin{aligned} \min &\quad \boldsymbol{g}_F^T\boldsymbol{w}_F + \boldsymbol{g}_C^T\boldsymbol{w}_C + \boldsymbol{d}^T\boldsymbol{v} \\ \text{s.t.} &\quad (\boldsymbol{w}_F,\boldsymbol{w}_C,\boldsymbol{v},\boldsymbol{c})\in\mathcal{S}(\boldsymbol{x},\boldsymbol{y},\boldsymbol{z}) \end{aligned} mins.t.gFTwF+gCTwC+dTv(wF,wC,v,c)S(x,y,z)
其中
w n 1 n 2 F : 基 于 快 速 跟 踪 的 任 务 n 1 和 n 2 的 并 行 处 理 (concurrent processing) , n 1 → n 2 w n 2 F = [ w n 1 n 2 F ] n 1 → n 2 , w F = { w 1 F , ⋯   , w N F } g n 1 n 2 F : 任 务 n 2 与 任 务 n 1 快 速 跟 踪 的 线 性 返 工 成 本 (linear rework cost) , n 1 → n 2 g n 2 F = [ g n 1 n 2 F ] n 1 → n 2 , g F = { g 1 F , ⋯   , g N F } Q n : 任 务 n 的 崩 溃 成 本 的 分 段 线 性 映 射 中 的 线 性 段 数 w j n C : 任 务 n 的 第 j 个 线 性 崩 溃 代 价 区 间 (linear cost interval of crashing) 的 使 用 , j ∈ [ Q n ] , n ∈ [ N ] w n C = ( w 1 n C , ⋯   , w Q n n C ) , w C = { w 1 C , ⋯   , w N C } g j n C : 第 j 个 线 性 成 本 区 间 内 崩 溃 任 务 n 的 线 性 成 本 , g 1 n C < ⋯ < g Q n n C g n C = ( g 1 n C , ⋯   , g Q n n C ) , g C = { g 1 C , ⋯   , g N C } d j : 第 j 个 线 性 成 本 区 间 内 项 目 完 工 时 间 惩 罚 的 线 性 成 本 , d 1 < ⋯ < d Q c n : 任 务 n 的 完 成 时 间 \begin{aligned} & w_{n_1n_2}^F: 基于快速跟踪的任务 n_1 和 n_2 的并行处理\text{(concurrent processing)}, n_1\rightarrow n_2 \\ & \boldsymbol{w}_{n_2}^F = \left[w_{n_1n_2}^F\right]_{n_1\rightarrow n_2}, \boldsymbol{w}_F=\{\boldsymbol{w}_1^F, \cdots, \boldsymbol{w}_N^F\} \\ & g_{n_1n_2}^F: 任务 n2 与任务 n1 快速跟踪的线性返工成本\text{(linear rework cost)}, n_1\rightarrow n_2 \\ & \boldsymbol{g}_{n_2}^F = \left[g_{n_1n_2}^F\right]_{n_1\rightarrow n_2}, \boldsymbol{g}_F=\{\boldsymbol{g}_1^F, \cdots, \boldsymbol{g}_N^F\} \\ & Q_n : 任务 n 的崩溃成本的分段线性映射中的线性段数 \\ & w_{jn}^C: 任务 n 的第 j 个线性崩溃代价区间\text{(linear cost interval of crashing)}的使用, j\in[Q_n], n\in[N] \\ & \boldsymbol{w}_{n}^C = \left(w_{1n}^C, \cdots, w_{Q_nn}^C\right), \boldsymbol{w}_C=\{\boldsymbol{w}_1^C, \cdots, \boldsymbol{w}_N^C\} \\ & g_{jn}^C: 第 j 个线性成本区间内崩溃任务 n 的线性成本, g_{1n}^C < \cdots < g_{Q_nn}^C \\ & \boldsymbol{g}_{n}^C = \left(g_{1n}^C, \cdots, g_{Q_nn}^C\right), \boldsymbol{g}_C=\{\boldsymbol{g}_1^C, \cdots, \boldsymbol{g}_N^C\} \\ & d_j : 第 j 个线性成本区间内项目完工时间惩罚的线性成本, d_1 < \cdots < d_Q \\ & c_n: 任务 n 的完成时间 \end{aligned} wn1n2F:n1n2(concurrent processing),n1n2wn2F=[wn1n2F]n1n2,wF={w1F,,wNF}gn1n2F:n2n1线(linear rework cost),n1n2gn2F=[gn1n2F]n1n2,gF={g1F,,gNF}Qn:n线线wjnC:nj线(linear cost interval of crashing)使,j[Qn],n[N]wnC=(w1nC,,wQnnC),wC={w1C,,wNC}gjnC:j线n线,g1nC<<gQnnCgnC=(g1nC,,gQnnC),gC={g1C,,gNC}dj:j线线,d1<<dQcn:n
可行域 S ( x , y , z ) \mathcal{S}(\boldsymbol{x},\boldsymbol{y},\boldsymbol{z}) S(x,y,z) 由下列约束定义:
   c n 2 − c n 1 + w n 1 n 2 F + ∑ j = 1 Q n 2 w j n 2 C ≥ t n 2 + z n 2 , n 1 , n 2 ∈ [ N ] , n 1 → n 2    ∑ j = 1 Q n v j − c n ≥ 0 , n ∈ [ N ] \begin{aligned} &\; c_{n_2} - c_{n_1} + w_{n_1n_2}^F + \mathop{\sum}\limits_{j=1}^{Q_{n_2}} w_{jn_2}^C \ge t_{n_2} + z_{n_2}, & n_1,n_2\in[N], n_1\rightarrow n_2 \\ &\; \mathop{\sum}\limits_{j=1}^{Q_n} v_j - c_n \ge 0, & n\in[N] \end{aligned} cn2cn1+wn1n2F+j=1Qn2wjn2Ctn2+zn2,j=1Qnvjcn0,n1,n2[N],n1n2n[N]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zte10096334

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值