Планирование и управление проектами

Рассмотрим этап планирования крупномасштабного проекта. Успешное завершение проекта требует выполнения сотен различных работ несколькими различными группами или компаниями. В идеале мы хотим завершить проект как можно быстрее. Этого можно добиться, если каждый вид деятельности будет выполняться параллельно. Однако зачастую невозможно начать некоторые виды деятельности до завершения других. Например, строительство зданий не может начаться, пока не будет расчищен лесной покров над территорией Пенни-Бэй (место расположения Диснейленда). Таким образом, мы должны разбить проект на набор четко определенных работ. Кроме того, мы должны знать примерное время, которое потребуется для завершения каждого вида деятельности.

Вопросы, на которые может ответить CPM/PERT-анализ, включают следующие. (a) Каково самое раннее время, когда мы можем завершить весь проект? (b) Учитывая вид деятельности, как рано мы можем приступить к его выполнению? (c) Какие виды деятельности являются узкими местами? Это те виды деятельности, при задержке завершения которых задержится весь проект. (d) В какое самое позднее время мы можем начать работу и при этом не задержать проект? Например, потребуется шесть месяцев, чтобы нанять и обучить набор людей, которые будут носить костюмы чучел животных и танцевать на улице; Диснейленд откроется в декабре 2005 года. Поэтому мы не должны начинать наем и обучение до лета 2005 года.

Графическое моделирование деятельности проекта

При классическом моделировании CPM/PERT в виде графов удобно представлять каждую деятельность в виде ребра. Вес ребра указывает на время, необходимое для его завершения. Каждый узел представляет собой веху, то есть момент времени, когда определенная деятельность завершается и/или начинается какая-то деятельность. Ребра направлены, и головка ребра инцидентна узлу, представляющему веху, соответствующую завершению деятельности.

Требование о том, что некоторая деятельность не может начаться до завершения другой деятельности, накладывает отношение старшинства. Поэтому стрелки в нашем графе будут изображать последовательность, в которой работы могут быть завершены (аналогично: пути указывают на последовательность, в которой могут быть достигнуты вехи).

Граф также моделирует отношения предшествования этапов. Если деятельность u должна быть завершена до начала деятельности v, мы обозначим это стрелкой от вехи (завершить u) к вехе (начать v). Однако между этими двумя событиями может не быть никакой реальной деятельности – в этом случае это ребро будет иметь вес = 0; такие ребра называются фиктивные ребрапоскольку они представляют только предшествование, но не реальную деятельность.

Чтобы успешно смоделировать проект в терминах сети PERT, мы должны сначала перечислить все отношения предшествования. Для каждого вида деятельности достаточно определить его непосредственных предшественников.

Пример

Рассмотрим проект по строительству небольшой гидроэлектростанции. Детали различных работ, их ограничения предшествования и расчетное время показаны в таблице ниже.

Деятельность

Описание

Непосредственный

Предшественник

Продолжительность

a

Экологическое обследование

6.2

b

Подача отчета о воздействии на окружающую среду; получение разрешения

9.1

c

Экономическое обоснование

7.3

d

Предварительное проектирование и оценка стоимости

4.2

e

Утверждение проекта и обязательства по финансированию

b, d

10.2

f

Запрос котировок на оборудование (турбины, генераторы)

4.3

g

Выбор поставщика оборудования

3.1

h

Окончательная разработка проекта

6.5

i

Выбор строительного подрядчика

2.7

j

Организовать поставку строительных материалов

h, i

5.2

k

Дамба строительная

24.8

l

Строительство электростанции

18.4

m

Возведение линий электропередач

g, h

20.3

n

Установка турбин, генераторов

г, л

6.8

o

Повышение уровня воды в водохранилище

2.1

p

Ввод в эксплуатацию генераторов

n, o

1.2

q

Начать подачу воды

m, p

1.1

После того как мы получили данные плана проекта в такой форме, как описано выше, его можно выразить в виде направленного графа с помощью следующего метода.

(i) Создайте узел s, представляющий начало проекта.

(ii) Для каждого вида деятельности, не имеющего непосредственного предшественника, создается ребро, исходящее из s.

(iii) Добавляются другие виды деятельности для расширения графа в соответствии со списком непосредственных предшественников; когда есть два вида деятельности, такие, что некоторые из их непосредственных предшественников одинаковы, а некоторые нет, нам нужно ввести фиктивный вид деятельности для представления ограничения старшинства.

(iv) В конце все работы, не имеющие преемников, соединяются с общим узлом, который представляет собой завершение проекта.

Теперь мы построим граф для нашего проекта гидроэлектростанции. В графе я обозначаю ребра названиями видов деятельности, написанными строчными буквами. Каждый узел представляет собой конец деятельности или видов деятельности, которые изображены ребрами, инцидентными ему; аналогично, он изображает момент времени, когда мы можем начать любую деятельность, соответствующее ребро которой инцидентно этому узлу. Вес ребра – это продолжительность деятельности, которую оно представляет. Пунктирные линии – это фиктивные ребра: эти ребра не имеют названия и имеют вес=0. Они используются для изображения ограничений старшинства.

На рисунке 33а показаны первые несколько шагов в построении графа PERT. Мы начинаем с узла s и добавляем ребро a, для работы a, которая займет 6,2 недели. Поскольку работа a является непосредственным предшественником работ b и c, ребра для этих двух работ выходят из узла, изображающего конец работы a, а именно из узла A.

На рисунке 33b показана ситуация, когда требуется фиктивный узел. Действие c является непосредственным предшественником действия c. Однако оба действия b и d являются непосредственными предшественниками задания e. Поэтому нам необходимо фиктивное ребро, соединяющее события, изображенные узлами B и D. Поскольку задание e может начаться только тогда, когда все действия, изображенные ребрами, инцидентны его начальному узлу (а именно узлу D на рисунке), это фиктивное ребро гарантирует, что задание b также будет завершено до начала задания e.

Рисунок 33

(a) Частичный граф PERT для задач a, b, c (b) Частичная диаграмма PERT для задач b, c, d, e

Таким образом, весь граф будет завершен, как показано на рисунке 34.

Рисунок 34. Граф PERT для нашего примера

После того как PERT-граф полностью построен, мы выполняем обработку в два этапа. На первом этапе, который называется Передача впередмы оцениваем самое раннее возможное время начала каждого вида деятельности. На втором этапе, называемом обратный проходмы оцениваем самое раннее допустимое время начала для каждого вида деятельности.

Переход вперед

Мы начинаем с начального узла и вычисляем самое раннее время начала каждой последующей деятельности. Очевидно, что самое раннее время начала в узле s = 0. Любое ребро (деятельность), исходящее из этого узла, может быть пройдено за время, равное его весу. Это дает время завершения деятельности. Максимальное время завершения, обусловленное каждым ребром, инцидентным узлу, является самым ранним временем начала любой деятельности, которая начинается из этого узла. Это необходимое и достаточное условие для того, чтобы все ограничения предшествования были удовлетворены.

Таким образом, в нашем графе самое раннее время окончания деятельности a = 6,2; это записано в квадратных скобках рядом с узлом “конец деятельности a”, а именно узлом A.

Рисунок 35. Первые несколько шагов прямого прохода

Обратите внимание, что у работы e есть два непосредственных предшественника: b (которая не может быть завершена раньше 15.3) и d (которая не может быть завершена раньше 17.7). Таким образом, задача e, которая начинается из узла D, не может начаться раньше максимального из этих двух значений, а именно 17,7; поэтому e не может закончиться раньше 17,7 + 10,2 = 27,9. Следуя этой логике, проход вперед завершается, как показано на рисунке 36. Из графика видно, что самое раннее время, когда мы можем завершить проект, – 68,8.

Рисунок 36. Прямой проход для примера PERT гидроэлектростанции

Обратный проход

Для обратного прохода мы начинаем с финишного узла (в нашем случае узел Q). Цель состоит в том, чтобы ответить на следующий вопрос: учитывая самое раннее время завершения всего проекта, какое самое позднее время мы можем начать ту или иную деятельность без каких-либо задержек для проекта?

Конечно, мы не можем завершить проект раньше, чем через 68,8 недель. Последним видом деятельности, который мы выполняем, является q, который занимает 1,1 недели и не может начаться, пока не будут выполнены все остальные виды деятельности. Таким образом, если q будет указано в любое время после 68,8 – 1,1 = 67,7 недель, то проект задержится. Поскольку начало деятельности q находится в узле M, мы пишем это ограничение, 67.7, в квадратной скобке рядом с узлом M (см. Рисунок 37a).

Используя эту логику, мы вычисляем последнее допустимое время начала для каждого узла. Единственный случай, когда нам нужно быть внимательными в этом процессе, показан на рисунке 37b. Узел L указывает, что деятельность l¸, продолжительность которой составляет 18,4 недели, должна быть завершена не позднее 59,7. Поэтому она должна начаться в срок не позднее 59,7 – 18,4 = 41,3 недели. Используя ту же логику для деятельности k, мы видим, что самое позднее время начала деятельности k – 64,4 – 24,8 = 39,6. Итак, какая из этих двух цифр, 41,3 и 39,6, является правильной для события J? Очевидно, что мы должны выбрать меньшее из этих двух чисел – поскольку если мы обозначим самое позднее время в узле J через 41.3, то мы сможем завершить работу k только через 41.3 + 24.4 = 65.7, что приведет к задержке времени завершения проекта (если мы достигнем узла K в любое время позже 64.4, мы задержим проект).

Рисунок 37a. Первые несколько шагов обратного прохода Рисунок 37b. Логика в точках ветвления

Мы снова следуем этой логике на всем пути назад к начальному узлу и выполняем последнее допустимое время завершения для каждого вида деятельности. Окончательный граф после обратного прохода показан на рисунке 38. Мы даем следующее определение:

Время простоя: Время простоя для события – это разница между его самым поздним и самым ранним временем.

Рисунок 38. Завершенный график PERT для примера задачи

Далее мы определяем критический путь как любой путь от начала до конца, такой, что каждое событие на этом пути имеет нулевое время простоя. Обратите внимание, что данный граф может иметь более одного критического пути.

Действия на любом критическом пути называются критические действия. Из-за этих терминов процедура также называется метод критического пути. Теперь мы можем ответить на вопросы, поставленные в самом начале:

(a) Каково самое раннее время, когда мы можем завершить весь проект?

Это время, когда мы достигнем конечного события (в нашем примере – узла Q), как вычисляется с помощью прямого прохода.

(b) Учитывая вид деятельности, какое самое раннее время, когда мы можем приступить к ее выполнению?

Это время, обозначенное цифрой в узле, соответствующем началу деятельности в графе PERT, после выполнения прямого прохода.

(c) Какие виды деятельности являются узкими местами?

Критические виды деятельности являются узкими местами.

(d) Каково самое позднее время, когда мы можем начать работу и при этом не задержать проект?

Это число, вычисленное при обратном проходе (второе число в квадратных скобках рядом с интересующим событием).

Хотя CPM/PERT хороши в теории, на практике они иногда менее полезны по двум причинам.

(a) Часто очень трудно оценить точное время для любого вида деятельности. Поэтому большинство современных методов PERT фактически связывают три значения времени с каждым видом деятельности: время в лучшем случае, ожидаемое время и время в худшем случае. Затем строится вероятностная модель с использованием наихудшего, наилучшего и ожидаемого времени выполнения каждой задачи. Однако такие оценки основаны на ряде предположений, многие из которых могут быть практически неверными.

(b) Вторая проблема заключается в том, что при построении графов PERT мы учитываем только отношения приоритета между задачами. Однако в реальных проектах несколько заданий могут совместно использовать некоторые физические ресурсы (например, краны могут использоваться в разных заданиях в ходе проекта). Если два или более задания требуют одного и того же ресурса, их одновременное выполнение может оказаться невозможным. Этот тип ограничений не учитывается PERT. Чтобы рассмотреть такие случаи, мы должны использовать другой тип модели задачи. Такие модели изучаются в другой области IELM, называемой планированием с ограничением ресурсов. Иногда можно построить LP-формулы таких моделей.

Читайте далее:
Понравилась статья? Поделиться с друзьями: