
- •Отношение предшествования
- •Аналитическое представление
- •Сетевые графики
- •Метод критического пути
- •Прямой расчет сети
- •Обратный расчет сети
- •Резервы и критический путь
- •Обобщенные связи
- •Модели с циклами
- •Оптимизация по времени и стоимости проекта
- •Проблема tctp
- •Time-Cost для проекта
- •Зависимость Time-Cost для работы
- •Метод cpm-cost
- •Метод Гояла
Отношение предшествования 2
Аналитическое представление 3
Сетевые графики 3
Диаграмма «ребро-работа». 3
Метод критического пути 7
Прямой расчет сети 8
Обратный расчет сети 9
Резервы и критический путь 10
Обобщенные связи 11
Модели с циклами 13
Оптимизация по времени и стоимости проекта 14
Проблема TCTP 15
Time-Cost для проекта 16
Зависимость Time-Cost для работы 16
Метод CPM-COST 18
Метод Гояла 19
Использование сетевых моделей в управлении проектами в середине прошлого века, позволило получить эффективные методы разработки и управления расписанием, начиная с метода критического пути и заканчивая сложными интегрированными математическими моделями. Сетевая модель проекта – это модель, в которой проект представлен множеством взаимосвязанных работ. Жесткие связи (жесткая логика), которые связаны с необходимостью выполнения некоторых работ раньше других, которая вытекает из логики процесса. Например: дом следует строить только после возведения фундамента; наладку оборудования следует производить после его установки; тестировать новую компьютерную программу следует только после окончания её разработки. Стоит отметить, что на самом деле, эти связи не столь уж и жесткие. В принципе, дом можно начинать строить с крыши и постепенно поднимать на домкратах; оборудование можно частично наладить сразу после изготовления; части компьютерной программы можно тестировать, не дожидаясь написания других её частей. Поэтому жесткие связи также называют технологическими, они определяются основной концепцией выбранной технологии. Ключевым отличием жестких связей от других является то, что если в ходе реализации проекта нарушить такую связь, то это приведет к возникновению дополнительных работ, так как потребует смены технологии. Мягкие связи (мягкая логика) обычно также являются частью технологии, но их нарушение уже не приведет к дополнительным работам. Обычно мягкая логика связана с многократным повторением некоторой технологии, в результате которого выработалась некоторая последовательность действий, которой все придерживаются и которая не требует дополнительного планирования или координации. Благодаря этому достигается экономия по времени и стоимости работ и упрощается работа проектного менеджера. Такие связи также еще называются организационными. Мягкие связи подлежат обязательному документированию, чтобы в случае необходимости ускорить выполнение проекта, можно было быстро понять, какую связь можно удалить, а какую нельзя. Ресурсные связи вводятся в случае, когда на несколько параллельно идущих работ может быть назначен один ресурс (специалист и/или оборудование), который не в состоянии их выполнять параллельно. В этой ситуации можно добавить связи, которые позволят спланировать работы именно для этого ресурса и облегчить оценку продолжительности и выравнивание ресурсов для всего проекта. Ресурсные связи нельзя считать мягкой логикой, так как нарушение этих связей невозможно или связано с удорожанием проекта (если нужно выполнить 2 работы параллельно, которые выполняются одним ресурсом, то нужно привлечь еще один ресурс, иначе выполнение одной из работ всё равно будет задержано). Также их нельзя назвать и жесткой логикой, потому что из 2-х параллельных работ любая из них может выполняться раньше, ограничение запрещает им выполняться одновременно. Из приведенных определений разных типов связей следует, что на этапе разработки расписания проекта сначала следует применять жесткие и мягкие связи. На следующем этапе, если необходимо сократить продолжительность проекта, можно пожертвовать некоторыми мягкими связями. Если ресурсы, использующиеся в проекте, оказались перегруженными, то следует подумать о введении ресурсных связей для разрешения самых острых ресурсных конфликтов, в которых введение такой связи не сильно повлияет на другие части проектного плана. Если последствия введения подобных связей могут быть существенными, то следует использовать методы выравнивания ресурсов. |
Отношение предшествования
Фраза «Работа А предшествует работе В» (будем обозначать: А→В) означает, что работа В может начаться только после окончания работы А. Отношение предшествования является ограничением на сроки выполнения работы, т.е. если А→В, то работа В не может начаться раньше, чем закончится работаА. Здесь нужно сделать важное замечание, которое многие упускают из виду: работа В не обязана начинаться сразу после окончания работы А и вполне может начаться позже. Введем две функции на множестве работ S() и F() которые для каждой работы равны дате (или номеру дня от начала проекта) её старта и финиша соответственно. Тогда отношение предшествования можно выразить А→В математически строго в виде неравенства: S(В) ≥ F(А). Отношения предшествования обладают свойством транзитивности: если А→В и В→С, то это означает, что А→С. Для доказательства представим отношения предшествования в виде неравенств: S(В) ≥ F(А), S(C) ≥ F(B). Кроме того, справедливо еще одно неравенство: F(В) ≥ S(B), которое означает, что работа В имеет ненулевую длительность. Поскольку неравенства обладают свойством транзитивности, то из получившейся последовательности неравенств: S(C) ≥ F(B) ≥ S(B) ≥ F(А) следует, что S(C) ≥ F(B), т.е. А→С. Интересно отметить, что если бы отношение предшествования определялось с помощью равенства S(B)=F(A), что означало бы обязательное начало работы Впосле окончания А, то такое отношение не обладало бы свойством транзитивности. |
Аналитическое представление
Введем обозначения: A = {a1,a2,a3,...} – множество работ проекта, R = {r1,r2,r3,... } – множество отношений предшествования между работами. В общем случае, сетевую модель можно представить в следующем математически-строгом виде: A = {a1,a2,a3,...} R = { ri=(ai1,ai2) | ai1 предшествует ai2; ai1, ai2 принадлежат A } |
Сетевые графики
Сетевая диаграмма – представление сетевой модели с помощью ориентированного графа (т.е. все ребра – стрелки). Граф состоит из узлов и ребер их соединяющих, поэтому возможно всего два варианта представления: Работы изображаются ребрами графа (диаграмма «ребро-работа») Работы изображаются вершинами графа (диаграмма «вершина-работа») Диаграмма «ребро-работа». Сетевая диаграмма «ребро-работа» (AoA = Activity on Arrow Diagramming, ADM = Arrow Diagramming Method[1]) предполагает изображение работы и взаимосвязей между работами в виде стрелок. Вершины (узлы диаграммы) называются событиями. Каждая работа имеет два связанных с ней события – в начале дуги и в конце дуги. С одной стороны, в определении сетевой модели проекта события не фигурировали, но с другой – они в реальности существуют. Событиями можно считать завершение какого-то процесса или его начало. Они имеют нулевую продолжительность и представляют собой как бы мгновенный снимок хода процесса выполнения проекта. В связи с этим события принято нумеровать и нужно стремиться к тому, чтобы события с большим номером наступали позже событий с меньшим номером. События бывают 3-х типов: Начальное событие. Инициирует выполнение всех исходящих работ. Традиционно имеет нулевой номер (хотя это не принципиально). Промежуточное событие. Наступает тогда и только тогда, когда все входящие работы выполнены. Наступившее событие инициирует выполнение всех исходящих работ. Концевое событие. Завершает выполнение проекта. В проекте должно быть лишь одно начальное и одно концевое событие, это соответствует тому, что у любого проекта есть только одно начало и только один конец. Если неизвестно какая из заключительных работ проекта станет последней, то предлагается добавить после таких работ фиктивные, а также концевое событие, в которое будут упираться фиктивные работы. Фиктивная работа – это работа нулевой продолжительности, не требующая ресурсов (и любых других усилий) для выполнения, не имеющая стоимости и несуществующая в реальности. Служит для добавления связей (отношений предшествования) между работами и обозначается на сетевой диаграмме пунктирной стрелкой. Помимо фиктивной работы выделяют также процесс ожидания, который представляет собой такую же фиктивную работу, но с ненулевой продолжительностью. Изображается на диаграмме пунктирной стрелкой с указанием времени ожидания. Существует несколько общепризнанных правил построения сетевых диаграмм AoA: 1. Все события проекта должны иметь уникальный номер. 2. Все номера от первого события до последнего должны идти без пропусков. Данное требование не имеет принципиального значения и существует скорее для удобства. 3. Должно быть ровно одно событие, в которое не входит ни одна стрелка (начальное событие) и ровно одно событие из которого не выходит ни одна стрелка (концевое событие). 4. Любая работа проекта должна идти от события с меньшим номером к событию с большим номером. Из этого условия следует: а) в проекте не может быть замкнутой последовательности работ; б) диаграмму можно изобразить таким образом, чтобы все стрелки шли слева направо (возможно, что самопересечений не удастся избежать). 5. Не должно существовать двух событий, являющихся начальным и концевым для двух и более работ. Из этого следует, в частности, что любую работу можно однозначно закодировать парой цифр, состоящей из номера начального для работы события и номера конечного события. Теперь рассмотрим сам метод стрелочных диаграмм (ADM) с помощью которых и получаются диаграммы AoA (их иногда также называют ADM), который представляет собой пошаговый алгоритм их построения. 1. Поставить начальное событие. 2. Выделить из всех работ такие, которые не имеют работ-предшественников, и отобразить их на диаграмме, выводя из начального события. 3. Поставить концевые события для новых работ без указания их номера. 4. Из всех оставшихся работ (которых еще нет на диаграмме) выбрать такую, для которой все её предшественники уже находятся на диаграмме. 5. Поставить новое событие (без номера) и отобразить выбранную работу, исходящей из этого события. 6. Соединить фиктивными работами начальное событие вновь добавленной работы и события, уже находившиеся на диаграмме, учитывая отношения предшествования. 7. Перейти к шагу 4, если еще остались работы, не попавшие на диаграмму. 8. Поставить конечное событие и соединить его фиктивными работами так, чтобы оно осталось единственным событием, не имеющем исходящих работ. 9. Оптимизировать вид диаграммы, сокращая лишние фиктивные работы, путем объединения некоторых событий. При этом нужно учитывать правило 5 построения диаграмм AoA. 10. Пронумеровать события так, чтобы все стрелки шли от событий с меньшим номером к событиям с большим. В приведенном алгоритме есть одно белое пятно – шаг 10. Приведем теперь алгоритм, который позволяет пронумеровать события с учетом правила 4 построенияAoA-диаграмм. Для этого разобьём все множество работ проекта на зоны предшествования. Каждая зона предшествования состоит из работ: 1) которые не связаны друг с другом отношениями предшествования (могут выполняться параллельно); 2) у которых все предшественники (если они есть) содержатся в предыдущих зонах. На основе этого разбиения можно выставить номера для событий так, чтобы они соответствовали правилу 4 следующим образом: 1. Ставим номер для начального события и формируем первую зону предшествования, состоящую из работ, у которых нет предшественников. 2. Для каждой работы из 2 зоны предшествования отмечаем начальные события. 3. Нумерация внутри отмеченных событий может осуществляться в любой последовательности. 4. Переходим к следующей зоне и повторяем всё сначала. Диаграммы «вершина-работа» предложил использовать Джон Фондал (John Fondahl) в 1977 году в качестве некомпьютерного аналога Методу критического пути. Эти диаграммы быстро завоевали популярность среди менеджеров проектов, благодаря своей простоте и наглядности. Сетевая диаграмма «вершина-работа» (AoN = Activity on Node, PDM = Precedence Diagramming Method[1]) – это представление сетевой модели проекта в виде ориентированного графа, в котором работы являются узлами (изображаются прямоугольниками), а связи между работами (отношения предшествования) стрелками. В первых работах по сетевому планированию все сетевые диаграммы были диаграммами «ребро-работа», диаграммы «вершина-работа» появились значительно позже и постепенно вытеснили своих предшественников. Это связано с тем, что диаграммы AoA больше подходят математикам, а AoN менеджерам. Не смотря на то, что в международных стандартах присутствуют обе диаграммы, и проектный менеджер должен уметь уверенно пользоваться и той и другой, диаграммы AoA на практике, скорее всего, скоро перестанут использоваться. Причин тут несколько. Во-первых, диаграммы «вершина-работа» строить значительно проще. Построение рекомендуют начинать с самых первых работ (работы, не имеющие предшественников), а заканчивать самыми последними (работы, не имеющие последователей). При этом желательно использовать некоторый порядок, который заключается в постановке на диаграмму той работы, все предшественники которой уже оказались на диаграмме (такой порядок был уже рассмотрен при построении диаграмм AoA). Если вы пренебрежете всеми этими правилами, то ничего страшного не произойдет и сетевую диаграмму вы, всё равно, построите. Причем в отличие от диаграммы AoA она будет иметь единственный вид. Во-вторых, несомненным достоинством диаграммы «ребро-работа» является возможность отображения событий. Однако в диаграмме «вершина-работа» уже давно поняли как её можно улучшить, чтобы иметь аналогичное достоинство. Для этого ввели понятие вехи. Веха – это работа нулевой длительности, которая обозначает некоторое событие, которое должно произойти в проекте (например, подписание документа), а также момента окончания или начала некоторого этапа выполнения проекта или группы его работ. Можно сказать, что вехи гораздо более удобнее событий, потому что в диаграмме «ребро-работа» каждая работа обязательно имеет 2 события – начальное и конечное, а в диаграмме «вершина-работа» вехи ставятся только там где нужно, не загромождая сетевой график. В третьих, одним из серьезных аргументов, при выборе диаграммы «ребро-работа» была возможность отображать с помощью длины стрелки (или её проекции на ось «х») продолжительность работы, против вершины, не имеющей продолжительности в AoN. Однако при построении AoN, вершины которой изображаются прямоугольниками, возможно растянуть каждый прямоугольник так, чтобы он отражал продолжительность работы. При этом, диаграмма «вершина-работа» превращается в диаграмму Гантта с введенными связями, что само по себе очень удобно, так как позволяет совместить два инструмента планирования и контроля: диаграмма Гантта и сетевую модель. В четвертых, диаграммы «вершина-работа» с отображением продолжительности работы в виде длинного прямоугольника весьма похожа на диаграмму AoA. Действительно, если вместо каждого прямоугольника нарисовать стрелку, в начале и конце поставить по одному событию, а прежние стрелки, отражающие взаимосвязи, сделать фиктивными работами, то получится диаграмма AoA. В пятых, фиктивные работы – это серьезный недостаток AoA, разрушающий саму идею AoA, согласно которой, работы изображаются стрелками, а связи можно «упаковать» в события. Когда этого не удается достичь, получается несуществующий в природе объект «фиктивная работа» - некоторая лишняя сущность, являющаяся, по сути, подпоркой для стойкости модели AoA и смешивающая понятия работы и связи (изображая и то и другое стрелкой). В этом смысле веха гораздо более удачное нововведение, потому что в результате все работы (включая вехи) изображаются в узлах диаграммы, а связи – стрелками. В шестых, при внесении изменений в сетевую модель или даже продолжительность работ, все вершины сетевой диаграммы придется перенумеровать. При этом исчезает смысл нумерации – менеджеру не нужна непостоянная нумерация. Все рассмотренные улучшения AoN позволяют утверждать, что используемые на практике диаграммы не являются ни диаграммами «ребро-работа», ни «вершина-работа», а являются неким их гибридом. Однако, вид этой гибридной диаграммы всё-таки заметно ближе к AoN, чем к AoA. Тем не менее, существуют люди, которые привыкли к диаграммам «ребро-работа» и считают их самыми удобными. Выбор той или иной диаграммы – дело вкуса и привычки, так как на конченый результат это никоем образом не повлияет. И метод стрелочных диаграмм и метод диаграмм предшествования приводят к одному и тому же результату – позволяют изобразить сетевую модель в виде графа, увидев всю структуру работ в их сложных взаимоотношениях. |