阳光博客社区-ShineBlog.com 
关键链多项目管理
2014/9/29 20:42:57

  关键链技术主要基于“项目必须遵守整体优化而非局部优化”的思想 , 以 50% 概率完工时间作为工序估计时间 , 同时考虑了工序间紧前关系约束和工序间的资源约束 , 确定关键链。然后通过为关键链和非关键链分别设置项目缓冲和输送缓冲 , 来消除项目中不确定因素对项目执行计划的影响 , 保证整个项目按时完成。作为约束理论在项目管理领域应用产生的新方法 , 关键链技术在其诞生之初便引起了广泛关注。国内外的专家学者分别从不同角度对关键链项目管理进行了研究 , 主要集中在 : 关键链理论基础研究与分析 [3, 4], 关键链在单项目调度中的关键链识别和缓冲区设置研究 [5-8], 关键链在项目风险、成本管理中的应用及关键链在多项目管理领域的应用 [2, 9-11] 。随着越来越多的企业面临多项目管理的挑战 , 多项目管理成为阻碍企业管理发展的瓶颈。关键链在多项目环境下的应用目前还没有较为成熟的方法。本文主要分析关键链在单项目与多项目环境下应用的区别 , 探讨多项目环境下基于工序优先级的关键链方法 , 并通过两个项目的调度案例来验证所提出的方法。

  1 资源受限多项目调度的方法及关键链在单项目与多项目中应用的区别

  高达 90% 的项目是在多项目环境下执行的 , 在多个项目并行实施过程中 , 项目之间在资金、时间、人力等资源方面往往存在争夺关系 , 进而增加了企业管理难度 , 影响项目的进度和完工质量。资源约束下的多项目调度问题是一类重要的问题 , 要求在满足项目内部各任务的时序约束和所有项目的资源约束的同时 , 优化所有项目任务的进度安排以实现项目总工期的最小化。资源受限管理是项目管理领域最复杂的问题之一 , 而由于多项目调度问题的复杂性 (NP-Hard 问题 ), 引发了对很多算法的研究 , 如整数规划、分支定界法、枚举法、两层决策、遗传算法等。这些多项目调度方法大都基于 CPM /PERT 等传统项目管理方法 , 对多项目所需的全部资源进行配置。而本文所介绍的关键链多项目管理方法则更关注于对瓶颈资源的配置 , 这也是由关键链的理论基础——— TOC 的基本原理所决定的。

  约束理论 (TOC) 应用时一般遵循如下步骤 : (1) 辨识系统约束或瓶颈 ; (2) 确定如何充分利用系统约束 , 使之发挥最大效用 ; (3) 系统中所有其他要素都要从属于系统约束 ; (4) 采取相应措施改善、放松系统约束 ; (5) 加入通过前面 4 个步骤约束已被突破 , 则回到步骤 (1) 重新识别新的系统约束。 5 个步骤循环往复 , 不断改善直至不出现系统约束。

  2 多项目环境下的关键链方法

  在单项目环境下 , 文献 [4] 提出资源的分配规则为 : 首先 , 优先分配给总时差最少的工序 ; 其次 , 如果总时差相等 , 则优先分配给工期较短的工序。这两条规则从另一个角度可以理解为 : 资源优先分配给关键链路上的工序 , 因为关键路线是影响项目工期的主要因素 , 关键路线上工序的拖期将造成整个项目的拖期 ; 如果两个工序的总时差相等 , 则为了缩减工期 , 资源优先分配给工期较短的工序。

  但是 , 在多项目环境下 , 传统的关键链识别方法存在一定的弊端。如果项目 1 的工序 A 和项目 2 的工序 B 同时需要某类资源时 , 存在以下几种情况 :

  (1) 项目 1 的优先级高于项目 2, 工序 A 处于单项目关键链上 , 工序 B 不在单项目关键链上 , 则资源优先分配给工序 A;

  (2) 项目 1 的优先级高于项目 2, 工序 A 不处于关键链上 , 而工序 B 属于关键链工作时 , 如果仅仅根据项目的优先权来决定资源分配顺序的话 , 资源应该优先分配给工序 A 。这样会造成两种结果 : 工序 A 虽然分配到了需要的资源 , 但是因为它不是关键链上的工作 , 所以虽然满足了资源约束 , 但是可能并不会对项目工期的缩减有所帮助。而与此同时 , 工序 B 由于缺乏资源 , 造成工期拖延 , 同时它又是关键链上的工序 , 势必造成项目 2 工期的拖延。结果是项目 1 的工期没有缩短 , 而项目 2 的工期却拖延了。没有体现资源分配的意义。

  反之 , 如果项目 1 的优先权低于项目 2, 也有同样的两种情况发生。

  考虑到优先权与是否关键链工序的矛盾 , 在多项目环境下应用关键链方法时 , 不仅要考虑多项目优先权的确定 , 还要考虑并行工序的工序优先级。

  资源分配的优先顺序确定步骤如下 :

  (1) 根据项目的重要性程度等因素 , 确定各项目的优先级 , 分别为α和β ;

  (2) 根据多项目中并行工序 A 和 B 在单个项目中的重要性程度和紧急程度等因素 , 分别确定工序的优先级为 a 和 b;

  (3) 根据以上两个步骤 , 可以确定工序 A 和 B 的综合优先级分别为α * a 和β * b;

  (4) 当并行工序 A 和 B 同时需要某类资源时 , 综合优先级高的工序优先分配资源。

  以下应用两个项目案例来说明该方法的使用。

  2 · 1 问题描述

  假设有两个项目 1 和 2, 它们分别需要 A 、 B 、 C 、 D 四种可更新资源 , 每种资源可供量是 1 单位 / 天 , 而且不能存储。每道工序每天只需要 1 个单位的某种资源。工序 1 · 0 和 2 · 0 为虚工序。网络图中的 (d, k) 表示每个工序工期 ( 本文的重点不在于工期估计 , 所以假设该工期已经除去了安全时间 ) 和资源需求类别。两个项目的最早开始时间相同 , 除了共享资源外 , 没有技术约束关系。在任何一个时刻 , 某一特定资源只能为一个工序服务 , 避免多任务工作的现象。工序在运行过程中不能间断。

  2 · 2 案例求解过程

  2 · 2 · 1 根据关键链方法分别对单个项目 1 和 2 进行调度。以项目 1 为例进行分析

  根据 CPM 方法 , 项目 1 的关键路径是 1 · 0-1 · 3-1 · 5, 由于工序 1 · 3 和 1 · 4 需要共享资源 B, 根据总时差最小的工序优先分配资源的原则 , B 在这两个工序间分配的顺序是 1 · 3-1 · 4, 由此可以得出关键链为 1 · 0-1 · 1-1 · 3-1 · 4-1 · 5, 关键链的长度为 13 。

  根据关键链方法得出两个项目的调度计划如下图所示 :

  2 · 2 · 2 多项目间的资源平衡。

  步骤 1 已经解决了项目内部的资源冲突问题 , 在多项目环境下还要平衡多项目间的资源冲突。从图 2 可以看出 , 项目 1 和项目 2 之间存在着资源冲突。根据本文提出的工序综合优先级概念 , 解决项目间资源冲突的思路如下 :

  (1) 确定项目 1 和 2 的优先级 , 假设分别为 500 和 600;

  (2) 确定单个项目内各工序的优先级 , 确定单个工序对项目地影响程度 , 与工序之间的前后顺序并无关系。

  (3) 根据各工序的综合优先级进行资源分配。当不同项目的两个工序并行作业并共享某类资源时 , 按照工序的综合优先级高低来决定资源分配的优先顺序。工序综合优先级高的工序 1 · 1 与工序 2 · 2 共享资源 A, 由于工序 1 · 1 的综合优先级低于工序 2 · 2, 所以资源 A 优先分配到 2 · 2 上。其他资源的分配同理。

  由以上的调度计划可以看出 , 资源 C 的使用是连续的 , 而其他资源在项目调度中出现闲置现象。这与 TOC 提出的非关键资源有的时候可能会闲置以保证多个项目间瓶颈资源的最大化利用的结论是吻合的。同时 , 上图中为了保证资源 A 的连续使用 , 工序 1 · 1 和 1 · 3 之间有间断。

  2 · 2 · 3 项目缓冲区的设定与有效管理。按照文献 [5-8] 提出的方法对各项目缓冲区的尺寸进行设定 , 并采取有效措施对缓冲区进行管理。

  3 结论

  越来越多的企业面临多项目管理的挑战。在利用关键链方法进行多项目管理时 , 提出工序综合优先级概念 , 当不同项目间的并行工序发生资源冲突时 , 根据工序的综合优先级决定资源分配的先后顺序 , 并通过案例验证了该方法的合理性 , 能够有效地解决项目间的资源冲突 , 改善多项目的执行环境。同时验证了 TOC 的一个结论 , 非关键资源可能会闲置以保证多个项目间瓶颈资源的最大化利用。

posted by 牛草草
阅读全文 | 回复(0) | 引用通告 | 编辑 | 收藏该日志

发表评论:

    昵称:
    密码:
    主页:
    标题: