| Методы оптимизации |
| Конспект лекций |
Тема 8. Сетевые модели планирования и управления
При планировании и оперативном управлении сложными комплексами взаимосвязанных работ, которые необходимо выполнить в определенном порядке, и которые объединены общностью цели, используются графические модели, так называемые, сетевые графики (или просто сети) проектов.
Сетевое планирование и управление (СПУ) – совокупность методов, основанных на моделировании процесса с помощью сетевого графика, дающего возможность описать и проанализировать последовательность выполнения и взаимосвязи работ в проекте.
Основными понятиями в СПУ являются работа и событие. В сетевой модели весь комплекс операций расчленяется на отдельные операции (работы), располагаемые в строгой технологической последовательности. Термин работа в СПУ может иметь следующие значения:
· любое действие, трудовой процесс, сопровождающийся затратами ресурсов и времени и приводящий к определенным результатам;
· процесс, не требующий затрат труда, но занимающий некоторое время;
· “фиктивное действие”, которое вводится для отображения логической связи между операциями, не требующее ни затрат времени, ни ресурсов, но указывающее, что возможность начала одной работы непосредственно зависит от результатов другой.
Под событием понимают момент начала или завершения одной или нескольких работ. Предполагается, что событие не имеет протяженности во времени. Оно свершится только тогда, когда закончатся все работы, ему предшествующие. Последующие работы могут начаться только тогда, когда свершится событие. Событием может заканчиваться или начинаться сразу несколько работ. Начало работы и ее завершение являются событиями, называемыми соответственно начальным и конечным событиями данной работы. Таким образом, любая работа на сети определяется парой событий, между которыми она находится. Среди событий сетевой модели в целом выделяют начальное, промежуточные и конечное события комплекса работ. Начальное событие не имеет предшествующих работ, а конечное – последующих работ. У промежуточных событий есть и предшествующие, и последующие работы.
СПУ включает три основных этапа: этап структурного планирования, этап календарного планирования, этап анализа и управления.
Этап структурного планирования начинается с разбиения проекта на четко определенные работы (операции). Выбор множества работ для некоторого проекта зависит от необходимого уровня анализа. Первое разбиение бывает “укрупненным”, при этом ориентируются на основные действия процесса. Дальнейшее разбиение направлено на выявление взаимосвязей внутри групп работ, соответствующих более низкому уровню управления. Для каждой работы должны быть определены те работы, на результаты которых она непосредственно опирается и которые должны быть завершены к моменту начала выполнения рассматриваемой. Оценивается продолжительность работ и строится сетевой график всего комплекса работ. Построение сети позволяет детально проанализировать последовательность и взаимосвязи между работами проекта, внести улучшения в его структуру до начала реализации, разработать календарный план выполнения работ.
Конечной целью этапа календарного планирования является определение срока выполнения всего комплекса работ, а также построение календарного графика, задающего моменты начала и окончания каждой операции. Календарный график дает возможность выявлять критические с точки зрения времени работы, которым необходимо будет уделять особое внимание, чтобы закончить проект в определенный срок. Кроме этого, календарный график позволяет определять резерв времени некритических работ, которым можно будет воспользоваться с позиции более эффективного использования ресурсов.
На этапе управления разработанные сетевые графики и календарные планы используются в целях решения различных оптимизационных задач управления. Например, изменения состава работ и структуры сети, перераспределения всех видов ресурсов в целях их эффективного использования, сокращения общего срока выполнения проекта с минимально возможными дополнительными затратами, определения минимального времени выполнения комплекса работ с учетом ограничений на финансовые и другие ресурсы.
Подводя итог вышеизложенному, СПУ позволяет:
· наглядно, в виде графического изображения, представлять всю структуру комплекса работ, последовательность выполнения и взаимосвязи между всеми операциями;
· анализировать структуру проекта и вносить в нее улучшения;
· формировать календарный план реализации комплекса работ;
· выявлять резервы времени, трудовых, материальных и денежных ресурсов;
· осуществлять управление комплексом работ по принципу “узкого места” с прогнозированием и предупреждением возможных срывов в ходе работ;
· повышать эффективность управления и эффективность использования всех видов ресурсов.
Далее более подробно опишем этапы построения и использования сетевой модели комплекса работ.
8.2 Этап структурного планирования, графическое представление проекта
Прежде чем строить сетевой график проекта, надо составить список работ комплекса, в отношении каждой работы выяснить ее технологические связи с другими работами, место работы в комплексе, конечные результаты (события) каждой работы. После этого подготовительного этапа приступают к построению сети.
На сетевом графике проекта события изображаются кружками, в которых указывают порядковый номер (1, 2, 3, ... ) или шифр события. Кроме этого в кружках могут указываться некоторые характеристики событий. Работы изображают стрелками произвольной длины. Для обозначения работ используются либо буквы – А, В, С, ... , которые на сети проставляются у каждой стрелки, либо пары чисел – (i, j), где i – номер начального события, j – номер конечного события для данной работы. Помимо этого, у каждой стрелки проставляется время выполнения работы в нормальном режиме, а иногда и другие характеристики.
При построении сетевого графика следует основываться на следующих правилах.
1) Каждая операция в сети представляется только одной стрелкой.
2) В сетевом графике в целом должно быть одно начальное и одно конечное событие. На рисунке 8.1(а) изображен график, не удовлетворяющий этому правилу, а на рисунке 8.1(б) показано, каким образом его можно преобразовать.

Рисунок 8.1 - Иллюстрация второго правила построения сетевых графиков
Для того чтобы обеспечить выполнение второго правила, необходимо ввести фиктивные работы А’, В’, С’, D’ (на рисунке они обозначены пунктирными стрелками) и фиктивные начальное (нулевое) и конечное (шестое) события.
3) В сетевом графике не должно быть замкнутых контуров (рисунок 8.2(а)). При возникновении такой ситуации следует еще раз изучить исходные данные и путем пересмотра состава работ и (или) логических связей между ними добиться устранения замкнутого контура в сетевом графике.
4) Любые два события в сетевом графике могут быть непосредственно связаны не более чем одной работой. На рисунке 8.2(б) изображен фрагмент сетевого графика, не удовлетворяющий этому правилу. Устранить такую ситуацию можно, введя новое фиктивное конечное событие для одной из работ и фиктивную работу, соединяющую новое конечное событие со старым (рисунок 8.2( в)).

Рисунок 8.2. Иллюстрация третьего и четвертого правил построения сетевого графика
5) Сетевой график должен быть упорядоченным. Для обеспечения этого до начала построения сети необходимо ответить на следующие вопросы.
а) Какие операции необходимо завершить непосредственно перед началом рассматриваемой операции?
б) Какие операции должны непосредственно следовать после завершения данной операции?
в) Какие операции могут выполняться одновременно с рассматриваемой?
Кроме того, нумерация событий должна быть такова, что для каждой работы (i, j) выполнялось бы условие i< j. Для соблюдения этого правила отношения упорядочения необходимо перепроверять в процессе построения сети. Здесь может возникнуть необходимость введения фиктивных операций, позволяющих правильно отображать логические связи. Например, предположим, что в некотором проекте операции А и В должны непосредственно предшествовать С, а операции D непосредственно предшествует только В. На рисунке 8.3(а) эти условия отражены неверно, так как, хотя упорядочения между А, В и С показаны правильно, из этого фрагмента сетевого графика следует, что операции D должны непосредственно предшествовать обе операции А и В. Правильное представление дает фрагмент сетевого графика, изображенный на рисунке 8.3(б), в котором используется фиктивная операция В’.

Рисунок 8.3. Отображение логических связей с помощью фиктивной операции
Пример 8.1.
Постройте сетевую модель, включающую работы А, В, С,…, H, которая отображает отношения упорядочения, представленные в таблице 8.1. (Помимо отношений упорядочения таблица содержит информацию о нормальных и ускоренных сроках выполнения работ, а также о стоимости работ. Эти данные понадобятся далее для составления календарного плана выполнения работ и решения задач управления проектом).
Таблица 8.1 – Данные к задаче
|
Имя работы |
A |
B |
C |
D |
E |
F |
G |
H |
|
Опирается на работу |
|
А, С |
H |
E, G |
H |
|
C |
|
|
Нормальный срок (дни) |
18 |
15 |
8 |
20 |
14 |
37 |
7 |
11 |
|
Ускоренный срок (дни) |
15 |
9 |
6 |
15 |
12 |
32 |
6 |
9 |
|
Норм. стоим. (тыс. руб.) |
60 |
70 |
65 |
80 |
110 |
100 |
50 |
55 |
|
Плата за ускор. (тыс.руб.) |
9 |
21 |
5 |
20 |
6 |
17 |
3 |
7 |
Решение.
Построение сетевого графика начинается с изображения начального события, которое обводится кружком. Из начального события выпускают стрелки, соответствующие работам, которым не предшествуют какие-либо другие работы. В нашем примере такими работами являются A, F и H. Первый этап построения сетевого графика представлен на рисунке 8.4.

Рисунок 8.4 – Первый этап построения сетевого графика
На следующем этапе построения сетевого графика изображают работы, которым предшествуют уже отмеченные A, F и H, или, что то же самое, которые опираются на A, F и H. Просматривая список работ, видим, что на работу H опираются работы C и E. Поэтому завершаем работу H (конец работы является событием, которое изображается кружком), а из вновь построенного события выпускаем стрелки, соответствующие работам C и E. Этот этап построения сетевого графика изображен на рисунке 8.5.

Рисунок 8.5 – Второй этап построения сетевого графика
Далее выбираем из списка работ те, для которых отмечены на графике все предшествующие. Это работы B и G. Работа B опирается на работы A и C, работа G непосредственно опирается только на работу C. Введем события – окончания работ A и C. Из события, являющегося конечным для А, выпустим стрелку, соответствующую работе B. Из события, являющегося конечным для С, выпустим стрелку, соответствующую работе G. Кроме того, для правильного отражения отношения следования необходимо ввести фиктивную операцию С’, соединяющую конечное для работы С событие и событие, являющееся начальным для работы В (так как, согласно условию, работе В непосредственно должны предшествовать две работы – A и C). Этот этап построения сетевого графика представлен на рисунке 8.6.

Рисунок 8.6 – Третий этап построения сетевого графика
Далее, на работы E и G опирается работа D. Сведем стрелки, соответствующие работам Е и G, в круг, обозначающий общее для них конечное событие. Из этого события выведем стрелку, соответствующую работе D (рисунок 8.7).

Рисунок 8.7 – Четвертый этап построения сетевого графика
На работы D, В и F не опирается ни одна работа. Поэтому они являются завершающими работами сетевого графика. Проведем стрелки, обозначающие эти работы, в общее для них конечное событие. Это событие будет конечным для всего графика. Заключительный этап построения сетевого графика изображен на рисунке 8.8.

Рисунок 8.8 – Заключительный этап построения сетевого графика
Далее необходимо пронумеровать события сетевого графика. Рассмотрим метод упорядочения сетевого графика, который позволяет добиться того, чтобы все последующие события имели большие номера, чем предшествующие события. Этот метод основан на понятии ранга события. Все события сетевого графика подразделяются на ранги. К одному рангу может относиться несколько событий. Нумерация событий производится в соответствии с принадлежностью к тому или иному рангу. Чем выше ранг, тем больший номер имеет событие. Внутри одного ранга нумерация событий произвольна.
Проведем упорядочение построенного сетевого графика. Начальное событие относим к нулевому рангу и перечеркиваем одной чертой все стрелки-работы, выходящие из этого события, то есть стрелки, обозначающие работы A, F, H. К первому рангу относим те события, которые не имеют входящих неперечеркнутых стрелок (рисунок 8.9 (а)). Таким событием будет одно – конечное для работы H. Далее, перечеркиваем двумя чертами работы-стрелки, выходящие из событий 1-го ранга, то есть работы C и E (рисунок 8.9(а)). Ко второму рангу относим те события, которые теперь не имеют входящих неперечеркнутых стрелок. Таким будет событие, конечное для работы C.

Рисунок 8.9 – Ранжирование событий сетевого графика
Продолжая описанный процесс упорядочения (рисунок 8.9(б)), получим, что к третьему рангу относятся события, конечные для работ G и С’; к четвертому – конечное событие сетевого графика. Упорядоченный сетевой график изображен на рисунке 8.10, на котором рядом с буквой, обозначающей работу, в скобках проставлено число, равное сроку ее выполнения в нормальном режиме. Фиктивной работе С’ припишем нулевую длительность выполнения.

Рисунок 8.10 – Сетевой график комплекса работ
8.3 Этап календарного планирования
Применение методов СПУ должно обеспечить получение срока выполнения всего комплекса работ, а также календарного плана, определяющего сроки начала и окончания каждой операции. Для решения этих задач введем несколько новых понятий и обозначений.
Путь – это любая последовательность работ, в которой конечное событие каждой работы совпадает с начальным событием следующей за ней работы. Полный путь – это путь от начального до конечного события сетевого графика. Например, в построенном сетевом графике примера 8.1 последовательность работ P1 = (H, C, G) образует путь, а последовательности P2 = (А, B), P3 = (H, C, G, D) образуют полные пути.
Допустим, что сеть некоторого комплекса работ построена и известна продолжительность каждой работы. При расчете временных характеристик сетевого графика продолжительность (или длительность) выполнения работ обозначают буквой t с индексом наименования работы, например, tA – длительность выполнения работы A, или же через tij, где i – номер начального, а j – номер конечного события данной работы. Сумма продолжительностей работ, составляющих путь P, выражает продолжительность или длину всего пути, и обозначается через t(P). Например,
t(P1) = tH + tC + tG = t12 + t23 + t34 = 11 + 8 +7 = 26.
Полный путь, имеющий наибольшую продолжительность, называется критическим путем, а длина критического пути называется критическим временем или критическим сроком сетевого графика и обозначается через Tкр. Критическое время – это наименьшее время выполнения всего комплекса работ. Сетевой график может иметь несколько различных критических путей, но все они должны иметь одну и ту же длину.
Критическая работа – работа, задержка начала которой приводит к увеличению срока выполнения всего проекта. Критическая работа входит в критический путь. Критическое событие – событие, расположенное на критическом пути. Остальные работы и события являются некритическими.
Критические пути могут быть найдены путем перебора всех полных путей и определения их продолжительности. Однако, в сетевой модели, содержащей достаточно много работ, перебор всех полных путей может занять много времени. Существует простой алгоритм нахождения критического пути и критического времени, основанный на понятии раннего времени наступления события.
Как отмечалось выше,
в событие может входить и выходить из него несколько работ. Под свершением
события понимается момент, к которому заканчиваются все входящие в него работы,
и может быть начата любая выходящая работа. Раннее время наступления i-го события
(обозначается через
) – это момент времени, раньше
которого событие i не может наступить. Каждое событие может наступить
только тогда, когда будут выполнены все работы на всех путях, ведущих от
начального события графика к данному событию. Поэтому раннее время
наступления i-го события равно
наибольшей длине путей, ведущих от начального события к i-му событию.
Время наступления
1-го, начального, события сетевого графика полагают равным нулю, то есть
. Далее последовательно находят раннее
время наступления всех событий сетевого графика. И, согласно определению, критический
срок выполнения всего комплекса работ совпадает с ранним временем
наступления конечного события сетевого графика.
Определив критический срок выполнения всего комплекса работ, можно определить критический путь сетевого графика. Критический путь представляет собой полный путь, продолжительность которого равна критическому сроку выполнения всего комплекса работ, обозначается через Pкр. Выявить критический путь можно, проследив от конечного события к начальному, как образовался критический срок (конечное и начальное события всегда входят в критический путь).
Позднее время наступления i-го события (обозначается через
) – это предельный срок, до которого
может быть отложено свершение события без задержки длительности всего проекта.
Определяется оно как разность между критическим временем и продолжительностью
самого длительного пути, ведущего от данного события к конечному событию
графика. Заметим, что для критических событий раннее и позднее время
наступления совпадают и, наоборот, выполнение этого свойства обеспечивает
принадлежность события критическому пути.
Некритические работы допускают некоторое запаздывание их выполнения без нарушения критического срока. Эту возможность иногда полезно использовать в целях повышения эффективности использования ресурсов. Например, ресурсы могут быть переброшены на критические работы с тем, чтобы уменьшить время осуществления проекта. Однако увеличить продолжительность любой работы, не входящей в критический путь, можно на некоторое определенное время. Слишком большое увеличение может привести к возникновению нового критического пути и увеличению времени выполнения всего проекта. Чтобы определить время, на которое можно задержать выполнение некритической работы, вводятся понятия резервов времени работы.
Полный резерв времени работы,
обозначается через
, – это максимальное количество
времени, на которое можно задержать начало работы или увеличить ее
продолжительность, не нарушая критический срок. Согласно определению, полный
резерв времени равен разности позднего времени наступления конечного события и
раннего времени наступления начального события работы минус ее
продолжительность:
.
(8.1)
Использование полного резерва времени некоторой работы может уменьшить полные резервы времени последующих или предыдущих работ.
Свободный резерв времени работы,
обозначается через
, – это максимальное количество
времени, на которое можно задержать начало работы или увеличить ее
продолжительность при условии, что раннее время наступления конечного события
работы не изменится, и, как следствие, все последующие работы начнут
выполняться в самые ранние возможные для них сроки. Согласно определению
свободный резерв времени равен разности раннего времени наступления конечного
события и раннего времени наступления начального события работы минус ее
продолжительность:
.
(8.2)
Понятно что, если задержка начала работ или
увеличение их продолжительностей укладываются в рамки свободных резервов
времени, комплекс работ завершится в критический срок. Заметим, что
≤
, то
есть свободный резерв времени составляет часть полного резерва времени, которая
может быть использована без изменения резерва последующих работ. Использование
свободного резерва на стадии планирования уменьшает полные резервы предшествующих
работ.
Независимый резерв времени,
обозначается через
, – это максимальное количество
времени, на которое можно задержать начало работы или увеличить ее
продолжительность без изменения полных резервов времени как предшествующих, так
и последующих работ. Таким образом, независимый резерв времени равен
разности раннего времени наступления конечного события и позднего времени
наступления начального события работы минус ее продолжительность:
. (8.3)
Заметим, что
≤
. В некоторых случаях при вычислении
независимых резервов могут получаться отрицательные значения, тогда величину
независимого резерва полагают равной нулю.
Критические работы не имеют резервов времени и, наоборот, отсутствие полного резерва времени является признаком принадлежности работы к критическому пути. Заметим, что некритические работы имеют ненулевые полные резервы времени, однако свободные и независимые резервы этих работ могут равняться нулю.
Помимо резервов времени, для каждой работы определяют ранние и поздние сроки их начала и окончания.
Ранний срок начала
работы (i,j) – это момент времени
,
раньше которого работа не может быть начата. Определяется ранним временем
наступления начального события работы:
. (8.4)
Поздний срок начала
работы (i,j) – это самый поздний момент
, в который можно начать выполнение
работы с тем, чтобы не изменить критическое время выполнения проекта.
Определяется разницей между поздним временем наступления конечного события
работы и ее продолжительностью:
. (8.5)
Ранний срок окончания
работы (i,j) – это момент времени
,
раньше которого работа не может быть окончена. Определяется суммой раннего
времени наступления начального события работы и ее продолжительности:
.
(8.6)
Поздний срок
окончания работы (i,j) – это самый поздний
момент
, в который нужно уложиться с выполнением
работы с тем, чтобы не изменить критическое время проекта. Определяется
поздним временем наступления конечного события работы:
. (8.7)
Результаты расчетов ранних и поздних сроков начала и окончания работ, резервов времени можно свести в единую таблицу. Эта таблица будет содержать всю информацию, необходимую для построения календарного плана (графика) выполнения работ проекта.
Пример 8.2.
По данным примера 8.1 рассчитать временные характеристики, критическое время выполнения и определить все критические пути сетевого графика проекта.
Решение.
Сетевой график проекта изображен на рисунке 8.10.
Как отмечалось выше,
непосредственный перебор всех полных путей сетевого графика для определения
критического пути может занять много времени. Разберем алгоритм нахождения
критического пути и критического времени, основанный на понятии раннего времени
наступления события. Рассчитаем
для всех событий
сетевого графика. Время наступления 1-го, начального, события сетевого графика
будем считать равным нулю, то есть
. Далее последовательно
находим
,...,
. Так
как событие 2 наступает сразу после выполнения работы H, “выходящей” из
начального события, то раннее время наступления 2-го события будет равно
времени выполнения работы H. Поскольку tH = t12 = 11, то
= t12 = 11.
Далее определяем
раннее время наступления 3-го события, к которому от начального ведет один путь
– (H, C). Следовательно,
= t12+ t23=11+8=19.
Далее, к 4-му событию от начального ведут два пути – (А) (первый путь) и (H, C, С’) (второй путь). Следовательно, согласно определению раннего времени наступления события:
= max{tA , tН + tC+
tC’}
= max{t14,
t12 + t23+t34} = max{18, 11 + 8+0} = 19.
Если находить
исходя из определения, то придется
выявлять все пути, ведущие от начального события к i-му. По мере
увеличения i количество таких
путей будет увеличиваться и нахождение
превратится
в громоздкую и трудоемкую процедуру. Этого можно избежать, используя найденные
для событий под номером k, наступивших раньше i-го события.
Действительно, 4-е событие не может наступить раньше, чем:
* будет выполнена работа A,
* будет выполнена работа C’ (пусть даже она фиктивная), которую можно начать выполнять только после наступления 3-го события. Следовательно:
= max{
+ tA,
+ tC’}=max{
+t14,
+ t34} = max{0+18, 19+0}= 19.
Аналогично,
= max{
+ t25,
+ t35} = max{11+14,
19+7}= 26,
= max{
+ t16,
+ t46,
+ t56} = max{0+37,
19+15, 26+20}=
= max{37, 34, 46}= 46.
Таким образом, раннее время наступления конечного события сетевого графика составляет 46 дней. И, поскольку критическое время выполнения всего комплекса работ совпадает с ранним временем наступления конечного события сетевого графика, то Ткр = 46 дней.
Алгоритм определения критического пути состоит в следующем. Рассмотрим формулу, по которой было найдено критическое время:
Ткр =
= max{
+ t16,
+ t46,
+ t56} =
+ t56=
46,
и определим работу, на которой достигается максимум в этой формуле. Очевидно, что это работа (5,6), то есть работа D. Она принадлежит критическому пути и является критической. Далее рассматриваем раннее время наступления того события, которое является начальным для работы D, то есть рассматриваем раннее время наступления пятого события:
= max{
+ t25,
+ t35} = 26.
Максимум достигается на работе (3, 5), то есть работе G, поэтому эта работа является критической.
Далее, рассмотрим раннее время наступления события 3 − начального для работы G:
=
+ t23 = 11+8 = t12+ t23 = 19.
Срок 19 дней составили продолжительности работ H и С, поэтому обе эти работы являются критическими.
Таким образом,
найден единственный критический путь сетевого графика проекта:
= (H, C, G, D).
На рисунке 8.11 критический путь выделен жирными стрелками. На этом рисунке каждый круг, обозначающий событие, разделен на три части. В верхней части указан номер события, в нижней левой − раннее время наступления этого события.

Рисунок 8.11. Сетевой график с критическим путем и временными характеристиками событий
Разберем методику
определения позднего времени наступления события. Как было отмечено выше,
позднее время наступления события
определяется как
разность между критическим временем проекта и продолжительностью самого
длительного пути, ведущего от данного события к конечному событию сетевого
графика проекта. Поэтому поздние времена наступления событий вычисляются,
начиная с конечного события графика. При этом, согласно определению, позднее
время наступления конечного события совпадает с критическим временем проекта,
то есть
=46.
Далее, позднее время наступления пятого и четвертого событий будет следующим:
,
.
Отметим, что для определения позднего времени наступления i-го события можно воспользоваться уже найденными поздними временами событий, следующих за i-ым. Так, например:
,
,
.
Заметим, что поздние времена критических событий 1, 2, 3, 5 можно было специально не вычислять, поскольку ранние и поздние времена критических событий совпадают (здесь вычисления приводились в качестве демонстрации методики определения позднего времени наступления события).
На рисунке 8.11 в нижних правых частях кругов, обозначающих события, указаны их поздние времена наступления.
Далее определим резервы времени работ проекта. Для критических работ H, C, G, D полный, свободный, независимый резервы времени равны нулю. Для работы А имеем:
(дней),
(день),
(день).
Таким образом, можно задержать выполнение работы А максимум на 13 дней, при этом весь комплекс работ будет выполнен за критический срок 46 дней (если, конечно, все остальные работы будут завершены не позже позднего времени их окончания). Однако при этом для последующей работы В не останется резерва времени. Если же есть необходимость сохранить резерв времени для работы В, то задержка в окончании работы А не должна превышать ее свободный резерв времени, то есть 1 день.
В таблице 8.2 приведены результаты расчета сетевой модели. Резервы времени работ, ранние и поздние начала и окончания определены согласно формулам (8.1)-(8.7). Звездочкой (*) помечены работы, принадлежащие критическому пути.
Таблица 8.2 – Календарный план
|
Работа (i,j) |
Продолжитель -ность tij |
Раннее |
Позднее |
Полный резерв
|
Свобод-ный резерв
|
Незави-симый резерв
|
||
|
начало
|
окончание
|
начало
|
окончание
|
|||||
|
(1,2)* |
11 |
0 |
11 |
0 |
11 |
0 |
0 |
0 |
|
(1,4) |
18 |
0 |
18 |
13 |
31 |
13 |
1 |
1 |
|
(1,6) |
37 |
0 |
37 |
9 |
46 |
9 |
9 |
9 |
|
(2,3)* |
8 |
11 |
19 |
11 |
19 |
0 |
0 |
0 |
|
(2,5) |
14 |
11 |
25 |
12 |
26 |
1 |
1 |
1 |
|
(3,4) |
0 |
19 |
19 |
31 |
31 |
12 |
0 |
0 |
|
(3,5)* |
7 |
19 |
26 |
19 |
26 |
0 |
0 |
0 |
|
(4,6) |
15 |
19 |
34 |
31 |
46 |
12 |
12 |
0 |
|
(5,6)* |
20 |
26 |
46 |
26 |
46 |
0 |
0 |
0 |
8.4 Этап анализа и управления
После нахождения критического пути и определения временных характеристик событий и работ проводится анализ сетевого графика и принимаются меры по его оптимизации. Оптимизация сетевого графика представляет собой процесс улучшения структуры графика, приведения сроков выполнения работ в соответствие с заданным сроком (директивным), учитывая при этом имеющиеся ограничения на все виды ресурсов, а также улучшения организации выполнения комплекса работ и повышения эффективности используемых ресурсов.
Возможность оптимизации графика выполнения работ появляется благодаря тому, что общий срок выполнения может быть уменьшен за счет сокращения продолжительности работ критического пути. При этом необходимо учитывать тот факт, что может измениться состав работ критического пути, и в дальнейшем процесс должен быть направлен на сокращение продолжительности работ нового критического пути.
При решении оптимизационных задач в СПУ необходимо учитывать и возможные изменения в стоимости выполнения работ всего комплекса, так как уменьшение продолжительности работ требует, как правило, дополнительных затрат. Так, например, часто возникает необходимость определить вариант сокращения общей длительности проекта до некоторого срока при минимальном увеличении затрат. Поскольку сетевой график проекта обычно допускает выбор из нескольких вариантов изменения, то появляется возможность выбора некоторого наилучшего варианта.
Стоимостной аспект вводится в схему календарного планирования проектов путем определения зависимости “затраты (стоимость) – продолжительность” для каждой операции проекта. Здесь для простоты ограничимся рассмотрением прямых затрат (не учитывая возможные изменения косвенных). Простейшая зависимость – линейная зависимость стоимости операции от ее продолжительности. Для любой операции ее можно определить двумя точками – точкой нормального режима выполнения операции и точкой максимально интенсивного режима (ускоренного режима).
На рисунке 8.12 по горизонтальной
оси откладывается продолжительность операции tij в единицах времени, а по вертикальной
– ее стоимость Сij в денежных единицах. Точка
соответствует нормальному режиму выполнения
операции, то есть такому режиму, при котором дальнейшее увеличение
продолжительности операции не даст экономии затрат. Эту точку можно считать
точкой максимально допустимого по времени режима.
Продолжительность операции
можно уменьшить, увеличив интенсивность
использования ресурсов, а, следовательно, увеличив и стоимость операции. Однако
существует предел
, являющийся минимальной
продолжительностью операции и называемый ускоренной или срочной
продолжительностью, и соответствующая этой продолжительности стоимость
выполнения операции
. Точка
на
рисунке 8.12 соответствует максимально интенсивному режиму выполнения
операции, то есть такому режиму, при котором дальнейшее увеличение
интенсивности использования ресурсов не приведет к уменьшению продолжительности
операции.

Рисунок 8.12 – График линейной зависимости «затраты (стоимость) – продолжительность»
В предположении линейности функции
затрат, можно определить
–дополнительные удельные
затраты на ускорение, приходящиеся на одну единицу времени:
. (8.8)
Заметим, что зависимость “затраты – продолжительность” для операции проекта может быть нелинейной (рисунок 8.13(а)) или кусочно-линейной (рисунок 8.13(б)). В этих случаях формула (8.8) не приемлема для определения удельных затрат на ускорение.

Рисунок 8.13. Графики нелинейной и кусочно-линейной зависимостей “затраты (стоимость) – продолжительность”
Определив зависимость “затраты – продолжительность”, для всех операций проекта принимают нормальную продолжительность. Далее производится расчет временных характеристик сетевой модели и суммы затрат Снор на весь комплекс работ при этой продолжительности:
.
Далее, подвергая анализу критические операции, рассматривается возможность сокращения продолжительности выполнения проекта. Чтобы добиться сокращения при минимально возможных затратах, следует в первую очередь уменьшать до максимально интенсивного режима продолжительность критической операции с наименьшими удельными затратами на ее ускорение. В результате “сжатия” критической операции получают новый план, возможно с новым критическим путем и обязательно с более высокими затратами. Далее этот новый план вновь подвергается сжатию за счет следующей критической операции с наименьшими удельными затратами на ускорение. И так, пока срок выполнения всего комплекса работ не будет приведен в соответствие с директивным или не достигнет минимально возможного.
Сокращая время выполнения критических работ, необходимо отслеживать появление новых критических путей. Иначе может возникнуть ситуация, при которой сокращение продолжительности работ, лежащих на “старых” критических путях, не приведет к сокращению продолжительности выполнения всего комплекса, так как время выполнения проекта будет определяться продолжительностью новых критических путей. Если такие пути появляются, то следует сокращать время выполнения работ таким образом, чтобы продолжительность каждого критического пути уменьшалась на одно и то же количество временных единиц. Следовательно, для сокращения срока завершения проекта на одну временную единицу может потребоваться сокращение времени выполнения не одной работы, а сразу нескольких. В этом случае для сокращения времени выполнения проекта работы выбираются таким образом, чтобы общие дополнительные затраты на ускорение были минимальными.
Итак, при уменьшении срока выполнения всего комплекса работ с минимальным удорожанием необходимо учитывать:
* возможные сроки сокращения критических работ;
* удельные стоимости удорожания работ;
* принадлежность одной и той же работы к разным критическим путям.
Единовременно, то есть за один шаг, сократить критический срок на требуемое количество дней, как правило, не удается. При таком сокращении можно не заметить появления новых критических путей. Более надежный способ состоит в последовательном сокращении критического времени на одну единицу на каждом шаге. Однако заметим, что применение этого способа не является обязательным, и в некоторых случаях можно за один шаг сократить критическое время сразу на несколько временных единиц. Выбор величины периода сокращения за один шаг зависит от структуры конкретного сетевого графика.
В результате последовательного сокращения получают оценку затрат Суск при ускоренном выполнении всего комплекса работ и кривую зависимости “затраты – продолжительность” для проекта в целом.
Пример 8.3.
По данным примера 8.1 определить стоимость выполнения комплекса работ в нормальном режиме. В предположении линейной зависимости затрат от продолжительности работ, указать стратегию минимального удорожания комплекса работ при сокращении сроков выполнения до минимально возможных. В какую итоговую сумму обойдется ускоренное выполнение проекта? Начертить график зависимости “затраты – продолжительность” для проекта в целом.
Решение.
Стоимость Снор выполнения комплекса работ в нормальном режиме определяется как сумма стоимостей выполнения всех работ при нормальном сроке выполнения каждой. При этом стоимость фиктивной работы C’ полагают равной нулю. Итак,
Снор = 60+ 70+ 65 + 80+110 + 100 + 50 + 55 = 590 (тыс. руб.).
Удельные затраты на один день ускорения для всех работ рассчитаем по формуле
,
где δij – плата за ускорение
работы (i,j), определяемая как
разность стоимостей выполнения работы в ускоренном и нормальном режимах, то
есть δij = Суск – Снор, и
заданная в таблице 8.1. Кроме этого в таблице 8.1 заданы длительности всех
работ при нормальном и ускоренном режимах их выполнения, соответственно
и
.
Рассчитанные удельные затраты на ускорение и максимальное количество дней, на которое можно сократить работы, приведены в таблице 8.3.
Таблица 8.3 – Удельные затраты на сокращение времени выполнения работ
|
Работы |
A |
B |
C |
D |
E |
F |
G |
H |
|
Максимальное сокращение времени выполнения (дни) |
3 |
6 |
2 |
5 |
2 |
5 |
1 |
2 |
|
Удельные затраты на сокращение времени выполнения работ (тыс. руб./день) |
3 |
3,5 |
2,5 |
4 |
3 |
3,4 |
3 |
3,5 |
Среди работ
критического пути
= (H, C, G, D) наименьшие
удельные затраты на ускорение имеет работа С. Поэтому для сокращения
критического времени сетевого графика в первую очередь следует уменьшить
продолжительность выполнения работы С. Сокращение ее срока выполнения на один
день повлечет увеличение ее стоимости на 2,5 тыс. руб.
Итак, новый срок выполнения работы С составляет 7 дней, новый критический срок всего проекта Tкр = 45 дней, новая стоимость проекта равна
590 + 2,5 = 592,5 (тыс. руб.).
Для того чтобы проверить, не появились ли новые критические пути, построим сетевой график после сокращения срока выполнения работы С и найдем его критические пути. На рисунке 4.14 в нижних половинках кружков, обозначающих события, указаны ранние времена наступления событий.

Рисунок 8.14 – Сетевой график после сокращения срока выполнения работы С на 1 день
Заметим, что теперь
при расчете раннего времени наступления события 5 максимум достигается как за
счет работы G, так и за счет
работы E. Поэтому появляется
новый критический путь:
= (H, E, D). На рисунке 8.14
он выделен жирными стрелками.
Продолжим пошаговое сокращение времени выполнения проекта. Заметим, для того чтобы уменьшить критическое время сетевого графика еще на один день, теперь недостаточно сократить только работу C, так как при этом раннее время наступления события 5 останется равным 25 дней. Для уменьшения этого времени одновременно с сокращением срока выполнения работы С придется сократить срок выполнения работы Е на один день. Удельные затраты на ускорение при этом суммируются (2,5+3=5,5 тыс. руб.). Есть возможность выбрать иной способ сокращения.
Работа H входит во все критические пути, а удельные затраты на ее ускорение равны 3,5 тыс. руб. Сокращая продолжительность этой работы на максимально возможный срок – 2 дня, уменьшаем ранние времена наступления второго, третьего, пятого и шестого (конечного) событий. Итак, новый срок выполнения работы Н составляет 9 дней, новый критический срок всего проекта Tкр = 43 дня, новая стоимость проекта равна
592,5 + 2∙3,5 = 599,5 (тыс. руб.).
Для того чтобы проверить, не появились ли новые критические пути, построим сетевой график после сокращения срока выполнения работы H и найдем его критические пути (рисунок 8.15). Заметим, что раннее время наступления четвертого события осталось прежним, равным 18 дням, новых критических путей не появилось.

Рисунок 8.15 – Сетевой график после сокращения срока
выполнения работы H на 2 дня
Далее, работа D входит во все критические пути, а удельные затраты на ее ускорение равны 4 тыс. руб. Сокращая продолжительность этой работы на максимально возможный срок – 5 дней, уменьшаем раннее время наступления конечного события сетевого графика проекта. Итак, новый срок выполнения работы D составляет 15 дней, новый критический срок всего проекта Tкр = 38 дней, новая стоимость проекта равна
599,5 + 5∙4 = 619,5 (тыс. руб.).
Для того чтобы проверить, не появились ли новые критические пути, построим сетевой график после сокращения продолжительности работы D (см. рисунок 8.16). Заметим, новых критических путей не появилось.

Рисунок 8.16 – Сетевой график после сокращения срока
выполнения работы D на 5 дней
Для того чтобы сократить критическое время сетевого графика еще на один день, то есть до Tкр = 37 дней, придется сократить продолжительность параллельно ведущихся работ – С и Е, или G и Е. Удельные затраты на ускорение при сокращении на 1 день сроков работ С и Е составят 5,5 тыс. руб. А удельные затраты на ускорение при сокращении на 1 день сроков работ G и Е составят 3+3=6 тыс. руб. Поэтому на данном шаге выгодней сократить на 1 день сроки работ С и Е. Новая стоимость проекта будет равна
619,5 + 5,5 = 625 (тыс. руб.).
Для того чтобы проверить, не появились ли новые критические пути, построим сетевой график после сокращения работ С и Е (рисунок 8.17).

Рисунок 8.17 – Сетевой график после сокращения сроков
выполнения работ С и Е на 1 день
Теперь
при расчете раннего времени наступления конечного события сетевого графика
максимум достигается как за счет работы D, так и за счет
работы F. Поэтому появляется
новый критический путь:
= (F), выделенный на
рисунке 8.17 жирной стрелкой.
Заметим, что больше
нельзя уменьшать срок выполнения работы С, поэтому для сокращения критического
времени выполнения проекта необходимо будет сократить продолжительность работ G и Е на один
день. Но и этого будет недостаточно, так как появился новый критический путь
= (F). Поэтому для
уменьшения критического срока до Tкр = 36 дней необходимо
сократить на 1 день и срок выполнения работы F (с соответствующим увеличением
стоимости проекта).
Итак, новый срок выполнения работы G составляет 6 дней, работы Е – 12 дней, работы F – 36 дней, новый критический срок всего проекта Tкр = 36 дней, новая стоимость проекта равна
625 + 3+3+3,4 = 634,4 (тыс. руб.).
Сетевой
график проекта после сокращения сроков выполнения работ F, G и Е представлен на
рисунке 8.18. Заметим, что новых критических путей не появилось. Далее
сократить срок выполнения всего комплекса работ невозможно, так как все работы
критических путей
и
выполняются
в максимально сжатые сроки. Уменьшение продолжительности критической работы F и (или)
некритических работ A
и В увеличит стоимость комплекса работ, но не приведет к уменьшению времени его
выполнения.
Итак, минимально возможный срок выполнения комплекса работ составляет Tкр = 36 дней. Стратегия минимального удорожания при сокращении срока выполнения комплекса работ до минимально возможного состоит в следующем. Необходимо уменьшить сроки выполнения следующих работ: С на 2 дня, H на 2 дня, Е на 2 дня, D на 5 дней, G на 1 день и F на 1 день. При этом ускоренное выполнение работ проекта обойдется в Суск=634,4 тыс. руб., что на 44,4 тыс. руб. больше, чем при нормальном режиме работы:
Суск – Снор =634,4 – 590= 44,4 (тыс. руб.).
Кроме того, при ускоренном выполнении работ проекта сроком 36 дней сетевой график проекта будет иметь следующие критические пути:
= (H, C,
G, D),
= (H, Е, D),
= (F).

Рисунок 8.18 – Сетевой график после сокращения сроков
выполнения работ F, G и Е на 1 день
График зависимости “затраты (стоимость) – продолжительность” для проекта в целом представлен на рисунке 8.19. На горизонтальной оси откладывается продолжительность выполнения комплекса работ Т, на вертикальной – соответствующая стоимость проекта С.

Рисунок 8.19 – График зависимости “затраты (стоимость) – продолжительность” для проекта