Управление проектами: методы принятия решений
Объект проектного управления
Термин проект, как известно, происходит от латинского слова projectus, что в буквальном переводе означает “брошенный вперед”. Таким образом, сразу становится ясно, объект управления, который можно представить в виде проекта, отличает возможность его перспективного развертывания, т.е. возможность предусмотреть его состояния в будущем. Хотя различные официальные источники трактуют понятие проекта по-разному2 , во всех определениях четко просматриваются особенности проекта как объекта управления, обусловленные комплексностью задач и работ, четкой ориентацией этого комплекса на достижение определенных целей и ограничениями по времени, бюджету, материальным и трудовым ресурсам.
Однако, любая деятельность, в том числе и та, которую никто не собирается называть проектом, выполняется в течение определенного периода времени и связана с затратами определенных финансовых, материальных и трудовых ресурсов. Кроме того, любая разумная деятельность, как правило, целесообразна, т.е. направлена на достижение определенного результата. И, тем не менее, в одних случаях к управлению деятельностью подходят как к управлению проектом, а в других случаях – нет.
Деятельность как объект управления рассматривается в виде проекта тогда, когда
она объективно имеет комплексных характер и для ее эффективного управления важное значение имеет анализ внутренней структуры всего комплекса работ (операций, процедур и т.п.)
переходы от одной работы к другой определяют основное содержание всей деятельности;
достижение целей деятельности связано с последовательно-параллельным выполнением всех элементов этой деятельности;
ограничения по времени, финансовым, материальным и трудовым ресурсам имеют особое значение в процессе выполнения комплекса работ;
продолжительность и стоимость деятельности явно зависит от организации всего комплекса работ.
Поэтому, объектом проектного управления принято считать особым образом организованный комплекс работ, направленный на решение определенной задачи или достижение определенной цели, выполнение которого ограничено во времени, а также связано с потреблением конкретных финансовых, материальных и трудовых ресурсов. При этом под “работой” понимается элементарная, неделимая часть данного комплекса действий.
Элементарность работы – понятие условное и относительное. То, что нецелесообразно делить в одной системе действий, полезно разукрупнять в другой. Например, если за элемент комплекса работ по сборке автомобиля принимается технологическая операция, то одной из “работ” может считаться установка сборщиком фары. Эта “работа” в данном случае неделима, так как остаются неизменными ее факторы – исполнитель, предмет и объект действия. Но, как только мы начинаем рассматривать исполнение этой работы как отдельную задачу, она сама превращается в комплекс.
Однако если задача возникает регулярно, а ее решение превращается в рутинную деятельность, доведенную до автоматизма, то нет никакого особого смысла каждый раз, приступая к ее решению, рассматривать и моделировать ее сложную структуру. Результат известен заранее и время, потраченное на планирование, будет просто потеряно. Поэтому объектом проектного управления является, как правило, комплекс взаимосвязанных работ, направленных на решение некоторой оригинальной задачи.
Но, в том то и дело, что в современной деловой среде, при стремительном развитии техники, технологии и организации производства, при стремительной смене видов и разновидностей товаров и услуг на рынках, появление перед менеджером оригинальных задач стало фактически обычной ситуацией. Если в конце пятидесятых годов, на заре зарождения проектного управления, в качестве объектов такого управления выступали исключительно научно-исследовательские и опытно-конструкторские программы, то в наши дни уже мало кого можно удивить техническими, организационными, экономическими и даже социальными проектами. Уже в самом определении типа проекта заложена характеристика области его приложения.
Теоретические основы проектного управления
Для описания, анализа и оптимизации проектов наиболее подходящими оказались сетевые модели, представляющие из себя разновидность ориентированных графов.
В сетевой модели роль вершин графа могут играть события, определяющие начало и окончание отдельных работ, а дуги в этом случае будут соответствовать работам. Такую сетевую модель принято называть сетевой моделью с работами на дугах (Activities on Arrows, AoA). В то же время, возможно, что в сетевой модели роль вершин графа играют работы, а дуги отображают соответствие между окончанием одной работы и началом другой. Такую сетевую модель принято называть сетевой моделью с работами в узлах (Activities on Nodes, AoN).
Пусть множество A={a1, a2, a3, ... an} – комплекс работ, выполнение которых требуется для решения определенной задачи, например, строительства дома. Тогда, если множество V={v1, v2, v3, ..., vm} будет представлять комплекс событий, возникающих в процессе выполнения комплекса работ, то сетевая модель будет задаваться ориентированным графом G=(V, A), в котором элементы множества V играют роль вершин, а элементы множества A – роль дуг, соединяющих вершины, причем каждой дуге ai можно поставить в однозначное соответствие пару вершин (vsi, vfi), первая из которых будет определять момент начала работы аi, а вторая – момент окончания этой работы. Такая сетевая модель будет сетевой моделью с работами на дугах.
Теперь пусть множество A={a1, a2, a3, ... an} – по-прежнему будет рассматриваться как комплекс работ, выполнение которых требуется для решения определенной задачи, например, строительства дома. Тогда, если множество V={v1, v2, v3, ..., vm} будет представлять комплекс отношений предшествования-следования работ в процессе их выполнения, то сетевая модель будет задаваться ориентированным графом G=(A, V), в котором элементы множества A играют роль вершин, а элементы множества V – роль дуг, соединяющих вершины, причем каждой дуге vi можно поставить в однозначное соответствие пару вершин (asi, afi), первая из которых будет непосредственно предшествующей работой в данной паре, а вторая – непосредственно следующей. Такая сетевая модель будет сетевой моделью с работами в узлах.
Сетевая модель может быть представлена:
1) сетевым графиком,
2) в табличной форме,
3) в матричной форме,
4) в форме диаграммы на шкале времени.
Как будет показано ниже, переход от одной формы представления к другой не составляет большого труда.
Преимущество сетевых графиков и временных диаграмм перед табличной и матричной формами представления состоит в их наглядности. Однако это преимущество исчезает прямо пропорционально тому, как увеличиваются размеры сетевой модели. Для реальных задач сетевого моделирования, в которых речь идет о тысячах работ и событий, вычерчивание сетевых графиков и диаграмм теряет всякий смысл.
Преимущество табличной и матричной формы перед графическими представлениями состоит в том, что с их помощью удобно осуществлять анализ параметров сетевых моделей; в этих формах применимы алгоритмические процедуры анализа, выполнение которых не требует наглядного отображения модели на плоскости.
Сетевым графиком называется полное графическое отображение структуры сетевой модели на плоскости.
Если сетевым графиком на плоскости отображается сетевая модель типа АоА, то однозначное представление должны получить все работы и все события модели. Однако структура сетевого графика модели АоА может быть более избыточна, чем структура самой отображаемой сетевой модели.
Дело в том, что по правилам построения сетевого графика для удобства его анализа необходимо, чтобы два события были соединены только единственной работой, что в принципе не соответствует реальным обстоятельствам в окружающей нас действительности. Поэтому принято вводить в структуру сетевого графика элемент, которого нет ни в действительности, ни в сетевой модели. Этот элемент называется фиктивной работой. Таким образом, структура сетевого графика образуется из трех типов элементов (в отличие от структуры сетевой модели, где только два типа элементов):
событий – моментов времени, когда происходит начало или окончание выполнения какой-либо работы (работ);
работ – неделимых частей комплекса действий, необходимых для решения некоторой задачи;
фиктивных работ – условных элементов структуры сетевого графика, используемых исключительно для указания логической связи отдельных событий.
Графически события изображаются кружками, разделенными на три равных сегмента (радиусами под углом в 120°); работы изображаются сплошными линиями со стрелками на конце, ориентированными слева направо; фиктивные работы изображаются пунктирными линиями со стрелками на конце, ориентированными слева направо. Пример сетевого графика модели АоА представлен ниже на рис. 1.
Отметим, что индексация работ производится рядом с соответствующими стрелками; фиктивные работы не индексируются; индексы событий проставляются в нижнем сегменте соответствующего кружка. Заполнение остальных сегментов рассматривается ниже.
Если сетевым графиком отображается модель типа AoN, то избыточности структуры удается избежать. Здесь нет необходимости вводить в качестве дополнительного структурного элемента фиктивные работы, поскольку отсутствуют те структурные элементы, которые они призваны обслуживать, а именно – события. В сетевом графике модели типа AoN есть только узлы (или вершины), которые обозначают работы и дуги (сплошные линии со стрелками, ориентированными слева направо), которые обозначают отношения предшествования-следования работ. Никаких событий и никаких фиктивных работ! Заметим, что в наиболее известной программе по проектному управлению Microsoft Project реализуется именно этот тип модели.
Здесь узлы сети, соответствующие работам, принято изображать прямоугольниками, поделенными на 5 секторов. В центральном секторе проставляется индекс (или записывается наименование работы). Заполнение остальных секторов рассматривается ниже. Пример сетевого графика для модели типа AoN представлен ниже на рис. 2.
Рисунок 2. Пример сетевого графика модели типа АоN.
В табличной форме сетевая модель задается множеством {A, A(IP)}, где А – это множество индексов работ, а A(IP) множество комбинаций работ, непосредственно предшествующих работе А. Для рассматриваемого выше примера табличная форма сетевой модели будет такой, которая представлена в табл. 1.
Таблица 1. Табличная форма сетевой модели.
Матричная форма описания сетевой модели задается в виде отношения между событиями (ei, ej), которое равно 1, если между этими событиями есть работа (либо реальная, либо фиктивная) и 0 – в противном случае. Матричная форма для описания сетевой модели из рассматриваемого выше примера приведена ниже в табл. 2:
Таблица 2
События | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
1 |
| 1 | 1 |
|
|
|
|
2 | 1 |
|
|
|
| 1 |
|
3 | 1 |
|
| 1 | 1 |
|
|
4 |
|
| 1 |
| 1 | 1 |
|
5 |
|
| 1 | 1 |
|
| 1 |
6 |
| 1 |
| 1 |
|
| 1 |
7 |
|
|
|
| 1 | 1 |
|
Описание сетевой модели в форме временной диаграммы (или графика Ганта) предполагает размещение работ в координатной системе, где по оси абсцисс (X) откладывается время (t), а по оси ординат (Y) – работы. Точкой начала отсчета любой из работ будет момент окончания всех ее предшествующих работ. Если работе не предшествует ничто, то она откладывается от начала временной шкалы, т.е. с самого левого края диаграммы. На рис. 3 представлен график Ганта для сетевой модели по данным табл. 1 с добавлением информации о продолжительности выполнения работ.
Поскольку в сетевых графиках моделей типа АоА вершины соответствуют событиям, постольку эти элементы структуры обладают свойством “сшивания” предыдущих работ с последующими. Иными словами, любое событие наступает только тогда, когда закончены все предшествующие ему работы. С другой стороны, оно является предпосылкой для начала следующих за ним работ. Событие не имеет продолжительности и наступает мгновенно. В связи с этим предъявляются особые требования к его определению.
Так, каждое событие, включаемое в сетевой график, должно быть полно, четко и всесторонне определено, его формулировка должна включать результат всех непосредственно предшествующих ему работ. И пока не выполнены все работы, непосредственно предшествующие данному событию, не может наступить и само событие, а, следовательно, не может быть начата ни одна из работ, непосредственно следующих за ним. Более того, если то или иное событие наступило, то это означает, что могут быть немедленно и реально начаты работы, следующие за ним. Если же по какой-либо причине хотя бы одна из таких работ не может быть начата, следовательно, нельзя считать данное событие наступившим.
Рисунок 3
Различаются следующие разновидности событий сетевого графика модели АоА:
исходное событие – результат, в отношении которого условно предполагается, что он не имеет предшествующих работе
завершающее событие – результат, в отношении которого предполагается, что за ним не следует ни одна работа; это и является конечной целью выполнения всего комплекса работ или решением задачи;
промежуточное событие или просто событие. Это любой достигаемый результат в выполнении одной или нескольких работ, дающий возможность начать последующие работы;
начальное событие – событие, непосредственно предшествующее данной конкретной работе;
конечное событие – событие, непосредственно следующее за данной работой.
Временные параметры (или временные характеристики) сетевой модели являются главными элементами аналитической системы проектного управления. Именно для их определения и последующего улучшения выполняется вся подготовительная, вспомогательная работа по составлению сетевой модели проекта и ее последующей оптимизации.
Различают следующие временные параметры:
продолжительность работ;
раннее время начала работы;
раннее время окончания работы;
позднее время начала работы;
позднее время окончания работы;
раннее время наступления события;
позднее время наступления события;
продолжительность критического пути;
резерв времени наступления события;
полный резерв времени выполнения работы;
свободный резерв времени выполнения работы;
независимый резерв времени выполнения работы.
Продолжительность работы (ti) – календарное время, которое занимает выполнение работы.
Раннее время начала работы (ESTi) – наиболее ранний из возможных сроков начала выполнения работы.
Раннее время окончания работы (EFTi) – равно раннему времени начала работы плюс ее продолжительность.
Позднее время окончания работы (LFTi) – наиболее поздний из допустимых сроков окончания работы.
Позднее время начала работы (LSTi) – равно позднему времени окончания работы минус ее продолжительность.
Раннее время наступления события (EETj) – характеризует наиболее ранний из возможных сроков свершения того или иного события. Поскольку каждое событие является результатом свершения одной или нескольких работ, а те в свою очередь следуют за какими-либо предшествующими событиями, то срок его наступления определяется величиной наиболее длительного отрезка пути от исходного события до рассматриваемого.
Позднее время наступления события (LETj) – характеризует наиболее поздний из допустимых сроков совершения того или иного события. Если установлен срок наступления завершающего события, являющегося результатом всего комплекса проводимых работ, то каждое промежуточное событие должно наступить не позже определенного срока. Этот срок и является предельно допускаемым сроком наступления события.
Любая последовательность непосредственно следующих друг за другом работ в сетевой модели называется путем. Путей в сетевой модели может быть очень много, но при этом пути, связывающие исходное и завершающее события сетевой модели, называются полными, а все остальные – неполными. Сумма продолжительностей выполнения работ, составляющих тот или иной путь, называется продолжительностью этого пути.
Самый продолжительный из всех полных путей называется критическим путем сетевой модели. Таким образом, продолжительность критического пути равна сумме продолжительностей всех работ, составляющих этот путь.
Работы, лежащие на критическом пути, называются критическими работами, а события – критическими событиями.
Уже одного определения критического пути сетевой модели проекта достаточно для организации управления всем комплексом работ. Жестко контролируя календарные сроки выполнения критических работ, можно в итоге избежать потерь. У работ, не находящихся на критическом пути, как правило, имеются резервы времени, позволяющие на некоторое время откладывать их выполнение, если это необходимо.
Резерв времени наступления события – это разница между поздним и ранним сроками наступления этого события.
Полный резерв времени выполнения работы (TFi) – это максимально возможный запас времени для выполнения данной работы сверх продолжительности самой работы при условии, что в результате такой задержки конечное для данной работы событие наступит не позднее, чем в свой поздний срок.
Свободный резерв времени выполнения работы (FFi) – это запас времени, которым можно располагать при выполнении данной работы в предположении, что предшествующее и последующее события этой работы наступают в свои самые ранние сроки.
Независимый резерв времени выполнения работы (IFi) – это запас времени, на который можно отложить начало выполнения работы без риска повлиять на какие бы то ни было сроки наступления каких-либо событий в модели вообще.
Параметры раннего и позднего времени наступления события используются в маркировке вершин сетевого графика модели типа АоА. В левый сегмент записывается раннее время наступления соответствующего события (ЕETj), а в правый – позднее (LETj), что показано на рис 4.
Рисунок 4. Пример маркировки времени наступления событий
В маркировке вершин сетевого графика модели типа AoN помимо индекса работ используются параметры (см. Рис. 5):
раннего времени начала выполнения работы (ESTj), которое записывается в левый верхний сектор прямоугольника, маркирующего вершину работы;
позднего времени начала выполнения работы (LSTj), которое записывается в правый верхний сектор прямоугольника, маркирующего вершину работы;
продолжительность выполнения работы (tj), которая записывается в левый нижний сектор прямоугольника, маркирующего вершину работы;
полный резерв времени выполнения работы (TFi) – который записывается в правый нижний сектор прямоугольника, маркирующего вершину работы.
Рисунок 5. Пример маркировки вершин сетевого графика модели типа АоN
Методы расчета временных параметров и критического пути сетевой модели проекта
Если размеры сетевого графика невелики, то его временные параметры и критический путь могут быть найдены путем непосредственного рассмотрения графика вершина за вершиной, работа за работой. Но, естественно, по мере увеличения масштабов модели вероятность появления ошибки в расчетах будет возрастать в геометрической прогрессии. Поэтому, даже при небольших размерах модели целесообразно воспользоваться одним из наиболее подходящих алгоритмических методов расчета, позволяющих подойти к этой задаче формально.
Самыми распространенными методами расчета временных параметров сетевой модели являются табличный и матричный. Поэтому, даже если исходная информация по сетевой модели представлена в виде сетевого графика или временной диаграммы, приступая к анализу, ее следует привести к табличной либо матричной форме.
В качестве примера будем рассматривать модель, заданную изначально сетевым графиком, приведенным на рис. 6.
Рисунок 6. Пример сетевого графика для иллюстрации методов расчета временных параметров
Как табличный, так и матричный метод расчета временных параметров сетевой модели основывается на следующих соотношениях, вытекающих из определений временных параметров. Для удобства понимания индекс работы, как правило, состоит из двух букв, например, [ij], первая из которых соответствует индексу начального события работы, а вторая – индексу конечного события работы. С учетом этого замечания:
Раннее время начала работы [ij] совпадает с ранним временем наступления события [i], т.е.
ESTij = EET [i].
Позднее время окончания работы [ij] совпадает с поздним временем наступления события [j], т.е.
LFTij = LET [j].
Раннее время окончания работы [ij]:
EFTij = ESTij + tij.
Позднее время начала работы [ij]:
LSTij = LFTij – tij.
Раннее время наступления события [j] совпадает с самым поздним (максимальным) ранним временем окончания из всех тех работ, для которых данное событие является конечным, т.е.
EET[j] = max { EFTrj, EFTnj, ..., EFTmj}, где [rj], [nj], ..., [mj] – индексы работ, для которых событие [j] является конечным.
Позднее время наступления события [j] совпадает с самым ранним (минимальным) поздним временем начала из всех тех работ, для которых данное событие является начальным, т.е.
LET[j] = min { LSTjr, LSTjn, ..., LSTjm}, где [jr], [jn], ..., [jm] – индексы работ, для которых событие [j] является начальным.
Для исходного и заключительного события сетевой модели справедливо:
EET[s] = LET[s
Но если для исходного события принимается, как правило, момент времени, равный 0, то для заключительного события он появляется в результате расчетов и по нему можно судить о продолжительности критического пути. Итак, для заключительного события справедливо:
EET[f] = LET[f] = TK, где TK – продолжительность критического пути.
Полный резерв времени выполнения работы [ij]:
TFij = LЕT[j] – EET[i] – tij.
Свободный резерв времени выполнения работы [ij]:
FFij = EЕT[j] – EET[i] – tij.
Независимый резерв времени выполнения работы [i]:
IFi = EЕT[j] – LET[i] – tij.
Рассмотрим сначала матричный метод определения временных параметров.
Прежде всего, необходимо составить квадратную матрицу (см. Рис. 7), число столбцов и строк, в которой равно числу событий сетевой модели. Строки и столбы индексируются в одинаковом порядке индексами события. Полученные на пересечении строк и столбцов клетки разбиваются на две части по диагонали снизу слева вверх вправо. Левая верхняя часть клетки называется ее числителем, правая нижняя – знаменателем.
Первый шаг заполнения матрицы заключается в следующем. Если события [i] и [j] соединяются какой-то работой, то продолжительность этой работы tij заносится в числители двух клеток: клетки, лежащей на пересечении i-й строки и j-го столбца, и клетки лежащей на пересечении j-й строки и i-го столбца. Эти действия выполняются для всех работ сетевой модели, а числители всех остальных клеток, кроме клеток, лежащих на главной (слева сверху вправо вниз) диагонали матрицы, заполняются нулями или вообще не заполняются.
Следующий шаг заполнения матрицы первоначально предполагает занесение в числитель первой клетки главной диагонали значения 0. Это равносильно тому, что мы полагаем, что раннее время наступления исходного события сетевой модели равно 0. Затем осуществляем заполнение знаменателей тех клеток первой строки, лежащих справа от (или над) главной диагонали, чьи числители содержат значения больше 0. При этом значения, которые проставляются в знаменатели, вычисляются как сумма числителя клетки данной строки, лежащей на главной диагонали, и числителя заполняемой клетки. Таким образом, мы подсчитываем раннее время окончания соответствующей работы. Результат выполнения этих действий приведен на рис. 8.
Рисунок 7. Разметка матрицы при определении временных параметров сетевой модели матричным методом
Рисунок 8.
Нетрудно проверить по формулам, что раннее время окончания работы 1-2 равно 4, а работы 1-4 равно 7.
Следующий шаг заполнения матрицы начинается с того, что мы должны решить, какое значение должно стоять в числителе диагональной клетки второй строки. По определению это должно быть значение, соответствующее раннему началу события 2. Раннее начало некоторого события, являющегося конечным для нескольких работ, равно моменту раннего окончания самой поздней из работ, которые заканчиваются данным событием. Значит, просто необходимо просмотреть знаменатели клеток столбца 2 сверху вниз до главной диагонали и выбрать максимальное значение, после чего записать его в числитель диагональной клетки 2. В нашем примере это будет знаменатель клетки 1-2, который равен 4.
После этого также, как были подсчитаны знаменатели в первой строке выше диагонали, подсчитываются знаменатели клеток второй строки выше диагонали.
Процедуры, описанные выше, повторяются до тех пор, пока не будет найден числитель последней диагональной клетки.
Дойдя до последней диагональной клетки (см. Рис. 9), мы получили значение раннего времени наступления завершающего события сетевой модели (36), которое и определяет продолжительность критического пути. Вместе с тем, для завершающего события, как известно, раннее время равно позднему времени его наступления, следовательно, знаменатель этой клетки будет равен ее числителю. Запишем это.
Рисунок 9
Получив значение знаменателя последней диагональной клетки, можно вычислить значения знаменателей клеток (чьи числители больше 0), находящихся в той же строке слева (ниже) от главной диагонали. Они будут равны разнице значения знаменателя соответствующей диагональной клетки и значения числителя клетки, для которой производится расчет. Так, например, значение знаменателя клетки 8-7 будет равно 36-5=31, а клетки 8-4 будет равно 36-6=30.
После подсчета всех знаменателей в последней строке можно найти значение знаменателя в диагональной клетке на предпоследней строке. Оно будет равно минимальному значению из знаменателей всех клеток, лежащих в данном столбце ниже главной диагонали, т.е. 31.
Затем аналогичным образом обсчитываем предпоследнюю строку и находим знаменатель третьей от конца диагональной клетки.
Из заполненной матрицы нетрудно увидеть не только продолжительность критического пути (числитель или знаменатель последней диагональной клетки), но также сам критический путь. Он проходит через события, у которых раннее и позднее время наступления равны, т.е. через события, у которых в соответствующих диагональных клетках совпадают числители и знаменатели. В нашем примере это будут события 1, 2, 4, 6, 8 (см. Рис. 9).
В соответствии с расчетными формулами резервов времени, которые были приведены выше, полный резерв времени выполнения работы, находящейся между событиями i и j, определяется разностью значений знаменателя диагональной клетки j-j и знаменателя клетки j в строке i выше главной диагонали. Чтобы найти свободный резерв времени выполнения работы, находящейся между событиями i и j, необходимо из числителя диагональной клетки j-j вычесть числитель диагональной клетки i-i и числитель клетки i-j. Чтобы найти независимый резерв времени выполнения работы, находящейся между событиями i и j, необходимо из числителя диагональной клетки j-j вычесть знаменатель диагональной клетки i-i и числитель клетки i-j.
Так, для работы 3-5 полный резерв будет равен 29-9=20, свободный – 17-2-7=8, а независимый – 17-22-7=-12 (принимается равным 0). Для работы 2-6 полный резерв будет равен 26-12=14, свободный – 26-4-8=14 и независимый – 26-4-8=14.
На рис. 10 приведены результаты расчетов всех резервов времени на основании данных из таблицы на рис. 9.
Табличный метод. Составляется таблица, число строк в которой равно числу работ, включающая в себя следующие столбцы (в порядке их следования слева направо):
индекс работы;
индексы непосредственно предшествующих работ;
индексы непосредственно следующих работ
продолжительность выполнения работы;
раннее время начала выполнения работы;
позднее время начала выполнения работы;
раннее время окончания выполнения работы;
позднее время окончания выполнения работы;
полный резерв времени работы;
свободный резерв времени работы;
независимый резерв времени работы.
Исходная информация, связанная с описанием топологии сетевой модели, содержится в столбцах (1), (2) и (4). Суть табличного метода расчета временных параметров сетевой модели состоит в последовательном заполнении остальных столбцов данной таблицы.
Алгоритм табличного метода предусматривает выполнение следующих последовательных шагов.
Рисунок 10
ШАГ 1. Определение индексов непосредственно следующих работ.
Рассматриваем работу с индексом [i]. Непосредственно следующие за ней работы – это те работы, для которых работа [i] является непосредственно предшествующей. Следовательно, индексы непосредственно следующих работ – это индексы тех работ, у которых в столбце (2) содержится индекс работы [i].
ШАГ 2. Определение раннего времени начала и раннего времени окончания работ.
Определение раннего времени начала и раннего окончания работ, т.е. заполнение столбцов (5) и (7) таблицы должно осуществляться одновременно, т.к. время начала одних работ зависит от времени окончания других.
Заполнение указанных столбцов осуществляется последовательно от начала сетевой модели к ее концу, т.е. сверху вниз. При этом действуют следующие правила:
Раннее время окончания рассматриваемой работы равно раннему времени ее начала (из столбца (5)) плюс продолжительность работы (из столбца (4)).
Раннее время начала выполнения работы равно 0, если данной работе непосредственно не предшествует ни одна из работ сетевой модели, или равно максимальному раннему времени окончания среди всех непосредственно предшествующих ей работ (из столбца (7)).
Продолжительность критического пути равна максимальному значению в столбце (7).
ШАГ 3. Определение позднего времени окончания и позднего времени начала работ.
Определение позднего времени окончания и позднего начала работ, т.е. заполнение столбцов (6) и (8) таблицы должно осуществляться также одновременно, т.к. время начала одних работ зависит от времени окончания других.
Заполнение указанных столбцов осуществляется последовательно от конца сетевой модели к ее началу, т.е. снизу вверх. При этом действуют следующие правила:
Позднее время начала рассматриваемой работы равно позднему времени ее окончания (из столбца (8)) минус продолжительность работы (из столбца (4)).
Позднее время окончания выполнения работы равно продолжительности критического пути, если за данной работой нет ни одной непосредственно следующей работы (из столбца (3)) сетевой модели, или равно минимальному позднему времени начала среди всех непосредственно следующих за данной работой работ (из столбца (6)).
Шаг 4. Определение полного резерва времени выполнения работы.
Полный резерв времени работы [i] находится как разность значений ее позднего и раннего времени окончания (соответственно, столбцы (8) и (7)), либо как разность значений ее позднего и раннего начала выполнения (соответственно, столбцы (6) и (5)).
Шаг 5. Определение свободного резерва времени выполнения работы.
Свободный резерв времени работы [i] определяется как разность между значением раннего времени начала любой из непосредственно следующих за ней работ и суммой раннего времени начала работы [i] и ее продолжительности.
Шаг 6. Определение независимого резерва времени выполнения работы.
Независимый резерв времени работы [i] определяется как разность между значением раннего времени начала любой из непосредственно следующих за ней работ и суммой позднего времени наступления начального события работы [i] и ее продолжительности. Позднее время наступления начального события работы [i] табличным путем определяется как минимальное позднее время начала тех работ, у которых с работой [i] одинаковый состав непосредственно предшествующих работ.
По приведенным выше правилам заполнена следующая табл. 3.
Таблица 3.
Работа | Непосредс. Предшеств. | Непосредств Следующая. | t | EST | LST | EFT | LFT | TF | FF | IF |
A | – | D, E | 4 | 0 | 0 | 4 | 4 | 0 | 0 | 0 |
B | – | H, I, J | 7 | 0 | 7 | 7 | 14 | 7 | 7 | 0 |
C | – | F, G | 2 | 0 | 20 | 2 | 22 | 20 | 0 | 0 |
D | A | M | 8 | 4 | 18 | 12 | 26 | 14 | 14 | 14 |
E | A | H, I, J | 10 | 4 | 4 | 14 | 14 | 0 | 0 | 0 |
F | C | K, L | 7 | 2 | 22 | 9 | 29 | 20 | 8 | 0 |
G | C | N | 6 | 2 | 25 | 8 | 31 | 23 | 11 | 0 |
H | B, E | M | 12 | 14 | 14 | 26 | 26 | 0 | 0 | 0 |
i | b, e | – | 6 | 14 | 30 | 20 | 36 | 16 | 16 | 16 |
J | B, E | K, L | 3 | 14 | 26 | 17 | 29 | 12 | 0 | 0 |
K | F, J | – | 4 | 17 | 32 | 21 | 36 | 15 | 15 | 3 |
L | F, J | N | 2 | 17 | 29 | 19 | 31 | 12 | 0 | 0 |
M | D, H | – | 10 | 26 | 26 | 36 | 36 | 0 | 0 | 0 |
N | G, L | – | 5 | 19 | 31 | 24 | 36 | 12 | 12 | 0 |
Основы сетевого моделирования в условиях неопределенности
На практике чаще всего допускают, что продолжительность работ, составляющих проект, определена достаточно четко. Преимущества такого подхода к сетевому моделированию комплексных задач вполне очевидны:
благодаря такой сети получается полное и ясное представление относительно всего комплекса работ; четко выявляются связи всех элементов комплекса;
выявление критического пути позволяет установить работы, определяющие ход выполнения всего комплекса (т.е. критические работы);
появляется полная ясность относительно резервов времени, на которые можно откладывать выполнение отдельных работ, не находящихся на критическом пути, а это, в свою очередь, позволяет более эффективно распоряжаться наличными ресурсами.
Однако в реальной жизни очень часто приходится сталкиваться с ситуациями, когда продолжительность работ не может быть определена точно, а лишь приблизительно. Например, в научно-исследовательских проектах, связанных с проведением экспериментов, ученому заранее не известно, сколько потребуется сделать опытов для получения надежного искомого результата. В бизнесе при разработке программы инвестиций заранее неизвестно, сколько времени займет ее согласование в различных инстанциях. При строительстве дома тоже можно допустить ошибку в количестве дней, которые займет рытье котлована под фундамент, а ошибка может быть очень просто связана с недооценкой сложности грунта.
В принципе, могут иметь место два случая:
1) либо работы не являются новыми, и мы знаем приблизительно закон распределения продолжительности выполнения каждой их них,
2) либо эти работы совершенно новые для нас, и закон распределения продолжительности их выполнения нам неизвестен.
В первом случае, известность закона распределения продолжительности выполнения работы автоматически подразумевает известность таких двух его параметров как:
математическое ожидание m продолжительности выполнения работы;
дисперсия s2 продолжительности выполнения работы.
Во втором случае, когда точный закон распределения продолжительности выполнения работ неизвестен предполагается, что это распределение подчиняется нормальному закону и описывается b-функцией, которая имеет следующие математическое ожидание и дисперсию:
m = 1/6(O + 4M + P);
s2 =[1/6 (O – P)]2.
Таким образом, в любом случае для оценки продолжительности любой работы мы будем иметь его ожидаемое время (математическое ожидание) и погрешность (дисперсию) этого ожидания.
Процедура построения и разметки сетевого графика в случае со случайной продолжительностью работ ничем не отличается от той, что используется в случае с детерминированной продолжительностью работ. Однако продолжительность найденного критического пути также будет иметь две оценки – ожидаемую и погрешность. Ожидаемая продолжительность критического пути равна сумме ожидаемых продолжительностей критических работ, а погрешность продолжительности критического пути равна сумме дисперсий критических работ.
В этом случае говорить о том, что комплекс работ будет завершен к какой-то определенной дате (т.е. будет иметь какую-то фиксированную продолжительность выполнения Tk), можно лишь с некоторой вероятностью P(Tk < x) = P(TkN < z), определяемой по таблицам стандартного нормального распределения вероятностей, причем
TkN=(x – mk )/sk ,
где: mk – ожидаемая продолжительность критического пути, а sk – квадратный корень из погрешности продолжительности критического пути.
Рассмотрим в качестве примера сетевую модель, определенную следующей табл. 4:
Таблица 4
Работа | Предшественники | Оптимистическая оценка продолжительности | Наиболее вероятная оценка продолжительности | Пессимистическая оценка продолжительности |
A | - | 4 | 6 | 10 |
B | - | 3 | 5 | 8 |
C | - | 2 | 4 | 7 |
D | A | 6 | 8 | 12 |
E | C | 5 | 10 | 15 |
F | A | 9 | 12 | 16 |
G | F | 15 | 18 | 22 |
H | B,D,E | 7 | 10 | 16 |
Результаты расчета ожидаемой продолжительности выполнения работ и ее дисперсии приведены в табл. 5:
Таблица 5
Работа | Ожидаемая продолжительность | Дисперсия продолжительности |
A | 6,33 | 1,00 |
B | 5,18 | 0,69 |
C | 4,17 | 0,69 |
D | 8,33 | 1,00 |
E | 10,0 | 2,78 |
F | 12,17 | 1,36 |
G | 18,17 | 1,36 |
H | 10,5 | 2,25 |
Сетевой график и его разметка с полученными временными характеристиками работ представлены на рис. 11:
Критический путь сетевого графика, приведенного на рис. 11, составляют работы A–F–G. Ожидаемая продолжительность критического пути равна 6,33 + 12,17 + 18,17 = 36,67, а суммарная погрешность продолжительности критического пути равна 1 + 1,36 + 1,36 = 3,72.
Рисунок 11. Сетевой график по данным из табл. 4 и 5
Однако полученная ожидаемая продолжительность критического пути не означает, что весь комплекс работ, описанный сетевым графиком, будет завершен именно в течение данного промежутка времени. Утверждать, что этот комплекс работ будет завершен именно в данный промежуток времени, можно только с вероятностью 0,5, так как:
P(Tk < (37,7–36,7)/1,93)= P(TkN < 0) Þ 0,5.
Если отобразить графически кривую нормального распределения вероятностей, которому соответствует, как предполагается, распределение вероятностей продолжительности выполнения комплекса работ, то нетрудно увидеть, что кумулятивная вероятность до математического ожидания будет равна именно половине всей площади под кривой распределения (см. Рис. 12).
Рисунок 12. Кривая нормального стандартного распределения вероятностей
С таким же успехом можно определить вероятность завершения комплекса работ до любого директивного срока Х, например, до Х=38. Тогда:
P(Tk £ (38-36,7)/1,93)= P(TkN < 0,69) Þ 0,7549.
Кроме того, можно решить и обратную задачу, т.е. определить тот срок, к которому рассматриваемый комплекс работ может завершиться с некоторой заданной вероятностью Pd. Зная Pd, можно воспользоваться нормальным стандартным распределением (в форме таблиц или с помощью известной функциональной зависимости, описываемой интегралом нормального стандартного распределения ) и найти zd, а имея zd, продолжительность критического пути Тd, соответствующая заданной вероятности Pd, будет равна Тd= zdsk + mk.
Так, для рассматриваемого здесь примера промежуток времени, в течение которого комплекс работ, описываемых сетевым графиком, будет завершен с вероятностью 0,95, равен:
Pd = 0,95 Þ zd = 1,65 Þ Тd = zdsk + mk = 1,65 ´ 1,93 + 36,67 = 39,85.
Практически любой учебник по теории вероятностей содержит таблицы нормального стандартного распределения вероятности, которые можно использовать для решения описанной выше задачи.
Анализ соотношения между временем и затратами на выполнение проекта
Проектное управление, как уже отмечалось, базируется на теории и методах сетевого моделирования. Однако сетевые модели являются упрощенными представлениями реальных ситуаций, прежде всего, из-за того, что в них главное внимание сосредотачивается только на сроках выполнения отдельных работ и комплекса в целом, но совсем не учитывается потребность в ресурсах, их стоимость и наличие.
В реальных условиях выполнение отдельных или даже всех работ проектного комплекса можно ускорить путем выделения для них большего количества ресурсов (финансовых, трудовых, материальных). Это, конечно же, приводит к увеличению общих прямых затрат на выполнение работ. Вместе с тем, появляется множество различных комбинаций продолжительностей работ, при которых может быть получена некоторая требуемая плановая продолжительность проекта. Каждая комбинация может давать различные значения общей стоимости проекта.
Анализ соотношения между сроками и затратами имеет целью составление календарного плана, обеспечивающего минимальные затраты при данной продолжительности проекта.
Рассмотрим в качестве примера простой проект, состоящий из 8-ми работ, исходная информация по которым представлена в табл. 6.
Таблица 6
Работа | Нормальные сроки | Сжатые сроки | Суточное прираще ние затрат, доллары | |||
Текущая | Предшеств. | Продолж., сутки | Затраты, доллары | Продолж., сутки | Затраты, доллары | |
A | - | 4 | 210 | 3 | 280 | 70 |
B | - | 8 | 400 | 6 | 560 | 80 |
C | A | 6 | 500 | 4 | 600 | 50 |
D | A | 9 | 540 | 7 | 600 | 30 |
E | B,C | 4 | 500 | 1 | 1100 | 200 |
F | B,C | 5 | 150 | 4 | 240 | 90 |
G | E | 3 | 150 | 3 | 150 | 0 |
H | D,F | 7 | 600 | 6 | 750 | 150 |
|
|
| 3050 |
| 4280 |
|
Сетевая модель проекта показана на рис. 13.
Рисунок 13. Сетевая модель проекта по данным табл. 6
Каждая работа может выполняться за разное время – от верхнего “нормального” срока при некоторых “нормальных” затратах до меньшего “сокращенного” срока при соответствующих более высоких затратах. Если предполагается, что компромиссное соотношение между временем и затратами для каждой работы является линейным, то затраты при промежуточных продолжительностях работы, лежащих между нормальными и сокращенными сроками, легко определить с помощью единичного (суточного) приращения затрат для каждой работы. Например, затраты на выполнение работы В за 7 суток вместо 8 равны 400 долл. + (8-7) х 80 долл. = 480 долл.
Если заданы “нормальные” продолжительности всех работ, то продолжительность проекта составит 22 суток, что видно из рис. 14.
Рисунок 14
Как показано на рис. 15, соответствующая стоимость выполнения всего проекта составит 3050 долларов. Заметим, что принятие неправильного решения, согласно которому ускоряется выполнение работ, не лежащих на критическом пути, не приводит к сокращению продолжительности проекта. Однако при этом стоимость проекта возрастает до величины 3870 долларов. Таким образом, “сжимать” сроки выполнения проекта можно по-разному, и задача состоит в том, чтобы сжимать с минимально возможным увеличением общей стоимости проекта.
В рассматриваемом примере общая стоимость проекта определяется суммой прямых затрат на выполнение каждой из работ.
Между верхним и нижним значениями стоимости проекта при продолжительности 22 суток возможны несколько других значений в зависимости от того, срок выполнения каких некритических работ сокращается.
Если устанавливаются сокращенные сроки выполнения всех работ, то продолжительность осуществления проекта можно сократить до 17 суткам, но, как видно из рис. 15, стоимость проекта при этом возрастет до суммы в 4280 долларов. Однако, продолжительность проекта, равную 17 суток, можно достигнуть при меньших затратах без ненужного ускорения отдельных работ. Так, работа B может продолжаться не 6, а 7 суток, работа D – не 7, а 8 суток, а работа E – не 1, а 4 суток. Если все остальные работы выполняются в свои “сжатые” сроки, стоимость выполнения проекта в течение 17 суток снижается до 3570 долларов.
Рисунок 15
В рассмотренном простом примере линия минимальных прямых затрат была построена методом проб и ошибок. Однако в реальных случаях, когда рассматриваются проекты с сотнями и тысячами работ, такая технология поиска решения невозможна. Поэтому применяются различные систематические вычисления, в том числе и методы математического программирования, позволяющие быстро определить кривую минимальных затрат при любом возможном значении продолжительности проекта. Некоторые из таких методов предназначены для использования в тех случаях, когда компромиссные соотношения между временем и затратами являются нелинейными; многие из них позволяют получить кривую минимальных общих затрат (равных сумме прямых и косвенных затрат).
Если прямые затраты определяются для каждой работы в отдельности и зависят, как правило, от объема и интенсивности использования привлекаемых для ее выполнения ресурсов, то косвенные затраты рассчитываются на проект в целом и поэтому их величина, как правило, исчисляется в пересчете на каждую единицу времени проекта (затрат/час, затрат/день и т.п.).
Минимизация общей стоимости при заданной продолжительности проекта
Если предполагается, что продолжительность проекта не должна (или не может) меняться по каким-либо причинам, то косвенные затраты как часть общей стоимости проекта могут не учитываться при расчетах, так как они остаются постоянной величиной. Поэтому общая стоимость проекта в данном случае будет равна сумме прямых затрат, зависящих от продолжительности каждой работы в отдельности.
Продолжительность любой работы проекта можно регулировать количеством ресурсов, выделяемых для ее выполнения. В общем случае можно предположить, что эта продолжительность может изменяться между двумя границами (пессимистической оценкой) и (оптимистической оценкой). Однако, в отличие от метода PERT, в данном случае считается, что продолжительностью работ можно управлять путем выделения на их выполнение больших или меньших ресурсов. Продолжительность работы соответствует нормальному времени работы (i,j) и ее минимальной стоимости и называется нормальной продолжительностью.
Продолжительность работы соответствует такому времени выполнения работы (i,j), когда она ускорена до предела. Она называется сжатой продолжительностью. Стоимость выполнения работы в такие сроки максимальна.
Обозначая через cij стоимость работы (i,j), можно допустить, что Cij = fij(tij) в общем случае представляет из себя функцию нелинейного вида, как показано на рис. 16. Стоимость возрастает, когда убывает вплоть до границы , за которой работа уже просто не может выполняться. Представляется весьма правдоподобным, что функция продолжительности работы проходит через очень пологий минимум и затем возрастает в силу ненормальных условий работы, связанных, например, с недостатком рабочей силы или материалов. Таким образом, ее форма скорее напоминает параболу.
Рисунок 16
В то же самое время практика показывает, что чаще всего cij на отрезке dij £ tij £ Dij является линейной функцией от tij, для которой несложно найти коэффициент обратной пропорциональности sij продолжительности и стоимости работы, если известны стоимость нормальной продолжительности Nij и стоимость “сжатой” продолжительности Rij:
Пример расчета таких коэффициентов пропорциональности приведен в табл. 7.
Таблица 7
Работа | Предшеств. | (дни) | (дни) | ($) | ($) | ($ в день) |
A | - | 9 | 3 | 900 | 6300 | 900 |
B | - | 7 | 6 | 2800 | 3300 | 500 |
C | A | 10 | 2 | 7000 | 16600 | 1200 |
D | A | 12 | 6 | 8400 | 13800 | 900 |
E | B | 12 | 4 | 7200 | 12800 | 700 |
F | D,E | 6 | 6 | 4900 | 4900 | 0 |
G | D,E | 6 | 4 | 3000 | 6200 | 1600 |
H | G | 14 | 12 | 4200 | 5200 | 500 |
I | G, F | 8 | 3 | 3200 | 6700 | 700 |
Построим опорный (первоначальный) план выполнения описанного в табл. 7 проекта, взяв в качестве исходных продолжительностей работ комплекса любые значения в интервале dij £ tij £ Dij, построим сетевую модель, соответствующую этим исходным данным (см. Рис. 17), и рассчитаем свободные резервы времени работ (см. Табл. 8).
Рисунок 17. Сетевая модель проекта по данным табл. 7
Таблица 8
Работа | (дни) |
| Свободный резерв |
| Экономия общей стоимости |
A | 7 | 2 | 0 | 0 | 0 |
B | 6 | 1 | 0 | 0 | 0 |
C | 4 | 6 | 10 | 6 | 7200 |
D | 8 | 4 | 0 | 0 | 0 |
E | 8 | 4 | 1 | 1 | 700 |
F | 6 | 0 | 0 | 0 | 0 |
G | 5 | 1 | 0 | 0 | 0 |
H | 12 | 2 | 0 | 0 | 0 |
I | 5 | 3 | 6 | 3 | 2100 |
Для уменьшения общей стоимости проекта при сохранении продолжительности его выполнения в пределах продолжительности критического пути, необходимо уменьшить свободные резервы времени некритических работ с соблюдением условия dij £ tij £ Dij. Теоретически у каждой работы есть резерв “растяжения” (Dij - tij), однако не у всех работ есть свободный резерв времени, а даже у тех работ, которые имеют свободный резерв времени, он может быть значительно меньше теоретического резерва “растяжения”. Поэтому, корректирующее воздействие на “растяжение” kij с целью уменьшения общей стоимости проекта в пределах продолжительности установленного критического пути для работы (i,j) определяется соотношением kij = min {(Dij-tij)FFij}, где FFij – свободный резерв работы (i,j).
В рассматриваемом примере может быть увеличена продолжительность только трех работ – C, E, I, причем продолжительность выполнения работы C может быть увеличена на 6 дней, E – на 1 день и I – на 3 дня. Суммарная экономия общей стоимости проекта будет равна 1200 х 6+700 х 1+700 х 3 = 10000. До сжатия общая стоимость проекта равнялась 62200, после “растяжения” трех указанных работ она стала 52200.
В данном примере критический путь остался без изменений. Однако, в других случаях после “растяжения” могут появиться новые критические пути и работы, на которые придется обращать основное внимание.
Не следует думать, что полученный в результате проделанной процедуры “растяжения” план проекта является оптимальным по стоимости и времени. Был получен план, минимальный по стоимости при заданной продолжительности критического пути, который в общем случае может быть очень далек от оптимального.
Если задаваемая продолжительность меньше критического пути опорного плана, то сначала последовательно “сжимаются” работы на критическом пути (по принципу “чем дешевле сжатие, тем раньше оно должно быть выполнено”), а затем проделывается описанная выше процедура.
Ускорение проекта при минимизации его общей стоимости
Более близкий к оптимальному план выполнения проекта может быть получен посредством осуществления процедуры ускорения проекта при минимизации общей стоимости. При этом общая стоимость должна включать как сумму прямых, так и сумму косвенных затрат.
Добавим к рассмотренному в предыдущем пункте примеру условие, что косвенные затраты на реализацию проекта определяются из расчета $ 1500 в день. Кроме того, выберем в качестве опорного плана проекта его так называемый “нормальный” план, когда продолжительность выполнения каждой из работ комплекса максимальна, т.е. “нормальна”. Все остальное, в том числе логика выполнения работ, коэффициенты пропорциональности стоимости и продолжительности их выполнения, остаются без изменения.
Временные параметры нового опорного плана (см. Табл. 9), естественно, будут отличаться от тех, что представлены на рис. 17.
Таблица 9
Работа | Предшественники | (дни) | Свободный резерв |
A | - | 9 | 0 |
B | - | 7 | 0 |
C | A | 10 | 8 |
D | A | 12 | 0 |
E | B | 12 | 2 |
F | D,E | 6 | 0 |
G | D,E | 6 | 0 |
H | G | 14 | 0 |
I | G,F | 8 | 6 |
Сетевая модель, соответствующая этим исходным данным, представлена на рис. 18.
Рисунок 18. Сетевая модель проекта по данным табл. 9
Критический путь проекта в опорном плане – [A,D,G,H], а его продолжительность равна 41 дню. Общая стоимость проекта в опорном плане равна:
- Прямые затраты: 900+2800+7000+8400+7200+4900+3000+4200+3200=41600
- Косвенные затраты: 1500 х 41 = 61500
- Всего: 103100
Алгоритм поиска плана, одновременно ускоряющего выполнение и минимизирующего общую стоимость проекта, предполагает выполнение следующих действий.
Поскольку ускорение выполнения проекта всегда связано с ускорением выполнения критических работ, постольку алгоритм предполагает уделение критическим работам основного внимания.
На каждом шаге из числа критических работ выбирается такая работа, которая может дать максимальное сокращение критического пути. Сжатие выбранной работы не должно превышать минимального свободного резерва, который рассчитан для всех работ данного варианта плана проекта (исключая 0). Если таких работ несколько, то выбирается та из них, которая имеет наименьший коэффициент обратной пропорциональности s. Если имеется несколько критических путей, то для того, чтобы получить эффект ускорения проекта в целом, сжатие критических работ должно производиться одновременно на всех этих путях. Производится “сжатие” выбранной работы (работ), строится новый план проекта, рассчитываются его временные параметры, определяются новая сумма прямых затрат (с учетом прироста стоимости выполнения сокращенной работы) и сумма косвенных затрат (с учетом новой продолжительности критического пути).
Если общая стоимость проекта в новом варианте его плана оказывается меньше (либо равной), чем в предыдущем варианте, то новый вариант принимается за опорный и описанная выше процедура его ускорения повторяется. Если же общая стоимость проекта в новом варианте оказывается больше, чем в предыдущем варианте, то принимается решение об остановке алгоритма, а за оптимальный берется предыдущий вариант плана.
Применим описанный алгоритм к примеру, приведенному выше.
Таблица 10
Рисунок 19. Сетевая модель проекта после 1 шага алгоритма ускорения
Рисунок 20. Сетевая модель проекта после 2 шага алгоритма ускорения
Рисунок 21. Сетевая модель проекта после 3 шага алгоритма ускорения
Все последующие сжатия работ приводят к удорожанию проекта в целом, так как экономия на косвенных затратах не перекрывает дополнительных прямых затрат. Следовательно, после 3 шага получен оптимальный план проекта.
В табл. 11 представлены продолжительности работ и свободные резервы времени их выполнения на каждом шаге алгоритма оптимизации.
Таблица 11
| Шаг 1 | Шаг 2 | Шаг 3 | Шаг 4 | ||||
Работа | / | Свободный резерв | / | Свободный резерв | / | Свободный резерв | / | Свободный резерв |
A | 9 / 6 | 0 | 9 / 6 | 0 | 9 / 6 | 0 | 8 / 5 | 0 |
B | 7 / 1 | 0 | 7 / 1 | 0 | 7 / 1 | 0 | 6 / 0 | 0 |
C | 10 / 8 | 8 | 10 / 8 | 8 | 10 / 8 | 6 | 10 / 8 | 6 |
D | 12 / 6 | 0 | 12 / 6 | 0 | 10 / 4 | 0 | 10 / 4 | 0 |
E | 12 / 8 | 2 | 12 / 8 | 2 | 12 / 8 | 0 | 12 / 8 | 0 |
F | 6 / 0 | 0 | 6 / 0 | 0 | 6 / 0 | 0 | 6 / 0 | 0 |
G | 6 / 2 | 0 | 6 / 2 | 0 | 6 / 2 | 0 | 6 / 2 | 0 |
H | 14 / 2 | 0 | 12 / 0 | 0 | 12 / 0 | 0 | 12 / 0 | 0 |
I | 8 / 5 | 6 | 8 / 5 | 4 | 8 / 5 | 4 | 8 / 5 | 4 |
Сглаживание потребности в ресурсах
Несмотря на то, что потребление ресурсов само по себе находит отражение в стоимости как отдельных работ, составляющих проект, так и в стоимости проекта в целом, на практике повсеместно приходится сталкиваться с ситуацией, когда потребность в том или ином виде физического ресурса в конкретный момент времени превышает имеющиеся возможности его обеспечения. Такие ситуации возникают в силу следующих причин:
Стремление сократить время выполнения работы приводит к неправильному решению в отношении выделяемых на нее ресурсов. Это – достаточно тривиальная ситуация, как правило, обусловленная невнимательным отношением к ограничениям по проекту. Нельзя назначить на выполнение работы, скажем, 3 исполнителя, если в наличии только 2. Такую ситуацию легко избежать при использовании компьютерных систем поддержки проектного управления, таких как Microsoft Project, в которых запрограммирована процедура проверки на непротиворечивость условий проекта.
Другое дело, когда для каждой в отдельности взятой работы проекта условия соответствия ограничениям по ресурсам соблюдены, но топология сетевой модели проекта оказывается причиной запараллеливания нескольких работ, предусматривающих использование одинаковых ресурсов, что приводит к соответствующему увеличению суммарной потребности в них в определенные моменты времени. Возникает конфликтная ситуация, суть которой, коротко, заключается в том, что в рассматриваемый момент времени потребность в ресурсах превышает возможности, а значит для какой-то (или каких-то) из работ оказывается невозможным осуществить выполнение так, как это предполагается текущим планом.
Данная ситуация, как правило, становится предметом тщательного анализа, поскольку требует своего разрешения на стадии планирования проекта. Конфликт должен и может быть разрешен с помощью перепланирования проекта, а целью этого перепланирования должно быть либо максимальное сокращение перерасхода ресурсов без увеличения общего времени выполнения проекта, либо приведение потребности в ресурсах в соответствие с установленными ограничениями (пусть даже за счет некоторого удлинения сроков выполнения проекта), либо комбинация этих двух целей.
В любом случае речь идет о сглаживании потребности в ресурсах, только в первом случае, как бы предполагается, что имеются четкие ограничения “по горизонтали”, т.е. по срокам осуществления проекта, во втором случае – что имеются четкие ограничения “по вертикали”, т.е. по суммарной потребности в ресурсах, а в третьем случае – что имеются четкие установки относительно общей стоимости проекта, а именно, что она должна быть минимальна.
Общие принципы сглаживания потребности в ресурсах очень просты.
Первый принцип исходит из того, что, как правило, многие из параллельно запланированных работ, требующих одних и тех же ресурсов, имеют резервы времени их выполнения, предполагающие, что их осуществление может быть отложено на некоторое время безо всякого влияния на общую продолжительность выполнения всего проекта в целом. Поэтому, распараллеливание работ приводит к сглаживанию потребности в ресурсах (принцип распараллеливания).
Второй принцип исходит из того, что продолжительность выполнения некоторых работ зависит от объема выделяемых для них ресурсов. Поэтому, если у таких работ имеются также и резервы времени, то можно безболезненно для проекта в целом пойти на снижение интенсивности выполнения этих работ, что приведет к сглаживанию потребности (принцип снижения интенсивности работ).
Применение этих двух принципов (в той мере, в какой это возможно) необязательно обеспечит приведение суммарной потребности в ресурсах в соответствие с установленными ограничениями. Иными словами, чтобы удовлетворить эти установленные ограничения, может потребоваться увеличение общих сроков выполнения проекта. Это увеличение может быть оправдано в том случае, когда стоимость “удлинения” продолжительности проекта окажется меньше стоимости “превышения лимита” ресурса.
Однако, несмотря на простоту и понятность общих принципов, на которых строится сглаживание потребности проекта в ресурсах, расчетные алгоритмы оказываются очень и очень трудоемкими. Следует признать, что пока не разработано метода прямого поиска оптимального решения этой задачи и на практике процедуры сглаживания связаны либо с полным перебором возможных вариантов топологии проектного плана (в этом случае оказывается возможным доказать оптимальность варианта плана), либо с применением некоторых эвристических правил выстраивания квазиоптимальной топологии (например, “наиболее короткая работа должна выполняться первой”). И в том, и в другом случае нельзя обойтись без специального программного обеспечения, не только из-за трудоемкости решения задачи, но из-за того, что при ее решении слишком высока вероятность допустить расчетную ошибку.
Следующий небольшой пример (см. Рис. 22) позволит лучше представить, за счет чего происходит сглаживание потребности в ресурсах и как отличить лучший (с точки зрения равномерности потребности в ресурсах) вариант проектного плана от остальных. Сетевая модель проекта, который будет анализироваться на предмет сглаживания потребности в ресурсах, представлена на рис. 8.
Рисунок 22.
К анализу потребности в ресурсах приступают с построения графика Ганта проекта, на котором работы откладываются на временной шкале от ранних сроков начала их выполнения. Параллельно с графиком Ганта строится гистограмма изменения потребности во времени, ось абсцисс которой – это временная шкала выполнения проекта, а ось ординат – суммарная (по всем выполняемым в данный момент времени работам) потребность в ресурсах. Исходный график Ганта и гистограмма потребности в ресурсах представлены на рис. 23.
Среднедневная вариация потребности в ресурсах = 2,66
Рисунок 23.
Расчеты показывают, что средняя дневная потребность в ресурсе составляет приблизительно 7. Однако в некоторые дни она может быть равна 12, а в другие 3.
Среднедневная вариация потребности в ресурсах = 1,71
Рисунок 24.
Вместе с тем, у работ A, G, I и L имеется свободный резерв времени (который изображен на графике Ганта серой волнистой линией), в пределах которого их выполнение может откладываться. Если отложить, например, начало выполнения работы А на 6 дней (см. Рис. 24), то можно существенно сгладить потребность данного проекта в ресурсе. Если исходный план выполнения проекта предполагал в отдельные дни потребность, равную 12, и среднедневная вариация потребности (отклонение от средней) составляла плюс-минус 2,66, то после изменения сроков выполнения работы А максимальная потребность будет снижена до 11, а среднедневная вариация потребности составит плюс-минус 1,71.
Дальнейший анализ вариантов может привести к такому решению, когда начало выполнения работы А откладывается на 11 дней, а работы G – на 2 дня. Это позволяет свести максимальную потребность в ресурсе к 9, а среднедневную вариацию потребности к 1,69 (см. Рис. 25).
Среднедневная вариация потребности в ресурсах = 1,69
Рисунок 25.
Поиск оптимальных календарных планов проектов при заданных ограничениях по ресурсам представляет скорее теоретический интерес, чем практическое значение.
Нецелесообразность применения методов линейного программирования для данного класса задач была обнаружена достаточно рано (уже в 60-е годы). Для сетевой модели с 55 работами и четырьмя видами ресурсов требуется решение системы более 5000 уравнений с 1600 переменными.
Приведение проекта в соответствие с ограничениями по ресурсам
На практике из-за того, что при построении сетевых моделей проектов изначально невозможно учесть все ограничения по ресурсам, времени и стоимости, очень часто приходится сталкиваться с ситуацией, что полученный в конце концов календарный план проекта нельзя считать удовлетворительным именно из-за того, чтов отдельные периоды времени требуется привлечение гораздо больших ресурсов, чем на самом деле может быть выделено. Тогда возникает необходимость в решении задачи изменения опорного календарного плана проекта с целью приведения проекта в соответствие с ограничениями по ресурсам.
Наибольшее распространение для решения такой задачи получили разнообразные эвристические методы из-за своей относительной простоты и вместе с тем неплохого качества получаемых решений (зачастую мало отличающихся от тех, которые можно было бы получить, применяя сложные методы оптимизации). Все эти методы основаны на принципе использования эвристик (определенных правил) перемещения ресурсов между работами и изменения календарных сроков выполнения работ. Один из алгоритмов, основанных на подобных эвристиках, приводится ниже.
Алгоритм приведения проекта в соответствие с ограничениями по одному ресурсу:
Шаг 1. Определяем список работ, которые могут начинаться в день Di (i=1, 2, 3, ..., N). Сначала рассматривается первый день. Переход к Шагу 2.
Шаг 2. Работы упорядочиваются в порядке возрастания их свободных резервов времени. Переход к Шагу 3.
Шаг 3. Из упорядоченного списка выбирается работа Х и определяется, достаточно ли имеется ресурсов для начала ее выполнения в день Di? Если ДА, то переходим к Шагу 4. Если НЕТ, то переходим к Шагу 9.
Шаг 4. Начало выполнения работы Х окончательно назначается на день Di , а наличное количество ресурсов уменьшается на сумму ресурсов, требуемых для выполнения работы Х. Переход к Шагу 5.
Шаг 5. Проверяется условие, все ли работы из списка тех, что могут начинаться в день Di, рассмотрены? Если НЕТ, то переход к Шагу 6. Если ДА, то переход к Шагу 7.
Шаг 6. Рассмотренная и закрепленная только что за днем Di работа Х исключается из списка и переходим к Шагу 3.
Шаг 7. Проверяется условие, имеются ли еще работы в проекте, для которых не произведено окончательное закрепление сроков начала выполнения? Если ДА, то переход к Шагу 8. Если НЕТ, то переход к Шагу 13.
Шаг 8. Выбирается следующий день (Di = Di + 1) и переходим к Шагу 1.
Шаг 9. Проверяется условие является ли работа Х критической? Если ДА, то переход к Шагу 11. Если НЕТ, то переход к Шагу 10.
Шаг 10. Возможный срок начала работы откладывается на 1 день. Переход к Шагу 5.
Шаг 11. Проверяется условие, можно ли передать данной работе ресурсы с некритических работ, выполнение которых уже распланировано на этот день? Если НЕТ, то переход к Шагу 10. Если ДА, то переход к Шагу 12.
Шаг 12. Начало выполнения критической работы Х окончательно назначается на день Di, приводится в соответствие количество ресурсов на связанных работах, а наличное количество ресурсов уменьшается на сумму ресурсов, требуемых для выполнения работы Х (за минусом того количество ресурсов, которое было перенесено с другой работы). Переход к Шагу 5.
Шаг 13. Алгоритм считается завершенным.
Оценка инвестиционной привлекательности проектов
Принимая решение о начале того или иного проекта, необходимо, хотя бы в общих чертах, оценить будущую выгоду от его реализации, риск потери инвестиций и неопределенность будущих условий.
Следует иметь в виду, что инвестиционная привлекательность проекта тем выше, чем короче период его окупаемости, при прочих равных условиях (прежде всего при условии невысокого риска).
Например, имеется два проекта, А и В. Стоимость проекта А $ 20000, а проекта В – $ 16000. Через 4 года и тот и другой проект принесут прибыль, равную $ 7000. Казалось бы проект В выгоднее (меньше затрат, а прибыль та же). Однако, рассмотрим движение денежной наличности (см. Табл.12):
Таблица 12
| 0 | 1 | 2 | 3 | 4 |
А | -20000 | 10000 | 7500 | 5000 | 4500 |
В | -16000 | 11000 | 2000 | 3000 | 7000 |
Анализ движения денежной наличности свидетельствует, что срок окупаемости проекта А – 2,5 года, а проекта В – 3 года. С этой точки зрения проект В менее выгоден.
Принимая решение относительно инвестиций в какой-либо проект, необходимо также иметь в виду, что со временем стоимость денег меняется и это изменение зависит от процентных ставок, которые действуют в данной стране. Иными словами, вместо того, чтобы вкладывать деньги в рискованный проект в надежде получить прибыль, вы можете положить деньги в банк и получить некоторый процент на них.
Если процентная ставка равна r, то сумма денег Р, положенная вами в банк на n лет, по истечении этого срока возрастет до величины:
An=P (1+r)n.
Это означает, что доход An , который предполагается получить от инвестиций через n лет, в настоящий момент необходимо рассматривать с учетом коэффициента дисконтирования, равного 1/(1+r)n . Это дает нам так называемую приведенную к настоящему моменту стоимость будущих денег (PV).
Для нашего примера, если процентная ставка устанавливается на уровне 15%, то коэффициенты дисконтирования и приведенная стоимость проектов по годам будет следующей (см. Табл. 13):
Таблица 13
| 0 | 1 | 2 | 3 | 4 |
15% | 1 | 0.8696 | 0.7561 | 0.6575 | 0.5718 |
А | -20000 | 10000 | 7500 | 5000 | 4500 |
PV(A) | -20000 | 8696 | 5671 | 3288 | 2573 |
NPV(A) |
|
|
| -2344 | +228 |
В | -16000 | 11000 | 2000 | 3000 | 7000 |
PV(B) | -16000 | 9566 | 1512 | 1973 | 4003 |
NPV(B) |
|
|
| -2949 | +1054 |
Сумма приведенной стоимости за n лет (включая первоначальные инвестиции со знаком минус) дает так называемую чистую приведенную стоимость проекта (NPV).
Если NPV > 0, то проект прибыльный;
Если NPV = 0, то проект самоокупаемый;
Если NPV < 0, то проект неприбыльный.
В нашем примере видно, что по истечении 3 лет ни один из проектов еще не дает прибыль, зато через четыре года прибыль проекта В оказывается выше, чем у проекта А.
Рубрика: Бизнес технологии / Проекты
Просмотров: 9624 Метки: управление проектами
Оставьте комментарий!