Сетевые графики составляются на начальном этапе планирования. Вначале планируемый процесс разбивается на отдельные работы, составляется перечень работ и событий, продумываются их логические связи и последовательность выполнения, работы закрепляются за ответственными исполнителями. С их помощью оценивается длительность каждой работы. Затем составляется (сшивается) сетевой график. После упорядочения сетевого графика рассчитываются параметры событий и работ, определяются резервы времени и критический путь. Наконец, проводятся анализ и оптимизация сетевого графика, который при необходимости вычерчивается заново с пересчетом параметров событий и работ.
При построении сетевого графика необходимо соблюдать ряд правил.
1. В сетевой модели не должно быть «тупиковых» событий, т.е. событий, из которых не выходит ни одна работа, за исключением завершающего события (рис. 5.2). Здесь либо работа (2, 3) не нужна и ее необходимо аннулировать, либо не замечена необходимость определенной работы, следующей за событием 3, для свершения какого- либо последующего события. В таких случаях необходимо тщательное изучение взаимосвязей событий и работ для исправления возникшего недоразумения.
2. В сетевом графике не должно быть «хвостовых» событий (кроме исходного), которым не предшествует хотя бы одна работа (событие 3 на рис. 5.3). Здесь работы, предшествующие событию 3, не предусмотрены. Поэтому событие 3 не может свершиться, а следовательно, не может быть выполнена и следующая за ним работа (3, 5). Обнаружив в сети такие события, необходимо определить исполнителей предшествующих им работ и включить эти работы в сеть.
3. В сети не должно быть замкнутых контуров и петель, т.е. путей, соединяющих некоторые события с ними же самими.
4. Любые два события должны быть непосредственно связаны не более чем одной работой-стрелкой.
В сети рекомендуется иметь одно исходное и одно завершающее событие. Если в составленной сети это не так (рис. 5.4, а), то добиться желаемого можно путем введения фиктивных событий и работ, как это показано на рис. 5.4, 6.
Предположим, что при составлении некоторого проекта выделено 12 событий: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 и 24 связывающие их работы: (0,1), (0, 2), (0, 3), (7, 2), (7, 4), (7, 5), (2, 3), (2, 5), (2, 7), (3, 6), (3, 7), (3, 10), (4, 8), (5, 8), (5, 7), (6,10), (7, 6), (7, S), (7, 9), (7,10), (8, 9), (9,11), (10, 9), (10,11). Необходимо составить и упорядочить сетевой график.
Как следует из перечня работ, исходным событием сетевого графика является событие 0 (ему не предшествуют никакие работы), а завершающим — событие 11 (за ним не следует ни одна работа). Полагая на сетевых графиках изменение времени слева направо, поместим событие 0 в левую часть графика, а событие 11 — в правую часть, разместив между ними промежуточные события в некотором порядке, соответствующем их номерам (рис. 5.5). События свяжем работами-стрелками в соответствии с перечнем работ.
Построенный сетевой график удовлетворяет сформулированным правилам, предъявляемым к его построению. Однако этот график не полностью упорядочен.
Упорядочение сетевого графика заключается в таком расположении событий и работ, при котором для любой работы предшествующее ей событие расположено левее и имеет меньший номер по сравнению с завершающим эту работу событием. Другими словами, в упорядоченном сетевом графике все работы-стрелки направлены слева направо: от событий с меньшими номерами к событиям с большими номерами.
Разобьем условно сетевой график на несколько вертикальных слоев (обводим их пунктирными линиями и обозначаем римскими цифрами).
Поместив в I слое начальное событие 0 (рис. 5.6), мысленно вычеркнем из графика (см. рис. 5.5) это событие и все выходящие из него работы-стрелки. Тогда без входящих стрелок останется событие 1, образующее II слой. Вычеркнув мысленно событие 1 и все выходящие из него работы, увидим, что без входящих стрелок остаются события 4 и 2, которые образуют III слой. Продолжая указанную процедуру вычеркивания, получим IV слой с событиями 4 и 3, V слой — с событием 7, VI слой — с событиями 8 и 6, VII слой — с событием 10, VIII слой — с событием 9 и, наконец, IX слой — с событием 11.
Теперь видим, что первоначальная нумерация событий не совсем правильная: так, событие 6 лежит в VI слое и имеет номер меньший, чем событие 7 из предыдущего слоя. То же можно сказать о событиях 9 и 10.
Изменим нумерацию событий б соответствии с их расположением на графике (см. рис. 5.6) и получим упорядоченный сетевой график (рис. 5.7), в котором над стрелками указана продолжительность соответствующих работ (в сутках).
Одно из важнейших понятий сетевого графика — понятие пути. Путь — любая последовательность работ, в которой конечное событие каждой работы совпадает с начальным событием следующей за ней работы. Среди различных путей сетевого графика наибольший интерес представляет полный путь L — любой путь, начало которого совпадает с исходным событием сети, а конец — с завершающим.
Наиболее продолжительный полный путь в сетевом графике называется критическим. Критическими называются также работы и события, расположенные на этом пути.
Например, для рассматриваемого нами сетевого графика (см. рис. 5.7) полными путями будут: путь 0®1®2®7®10®11 продолжительностью 8 + 9 + 3 + 5 +13 = 38 суток, путь 0®1®3®4®6®10®11 продолжительностью 8 + 4 + 10 + 3 + 5 + 13 = 43 суток, путь 0®5®8®9®11 продолжительностью 9 + 10 + 4 + 17 = 40 суток, путь 0 ®3®5®6®9®10®11 продолжительностью 13 + 7 + + 9 + 13 + 6 + 13 = 61 сутки и т.д.
Можно убедиться в том, что последний путь имеет наибольшую продолжительность (не только среди приведенных четырех полных путей, но и среди всех полных путей, которых в данном случае насчитывается 64), поэтому он и является критическим. Продолжительность критического пути составляет 61 сутки, т.е. для проведения комплекса работ понадобятся 61 сутки. Быстрее комплекс выполнить нельзя, так как для достижения завершающего события критический путь надо пройти обязательно.
Действительно, для достижения события 11 надо выполнить работу (10, 11), т.е. достичь события 10; для достижения события 10 надо провести работу (9, 10), т.е. достичь события 9; для достижения события 9 надо провести работу (6, 9), т.е. достичь события 6, и т.д.
Определив критический путь, мы тем самым установили критические события сети 0, 3, 5, 6, 9,10 и 11 и критические работы (0, 3), (3, 5), (5, 6), (6, 9), (9, 10), (10, 11).
Критический путь имеет особое значение в системе СПУ, так как работы этого пути определяют общий цикл завершения всего комплекса работ, планируемых при помощи сетевого графика. И для сокращения продолжительности проекта необходимо в первую очередь сокращать продолжительность работ, лежащих на критическом пути.
Следует отметить, что классический вид сетевого графика — это сеть, вычерченная без масштаба времени. Поэтому сетевой график, хотя и дает четкое представление о порядке следования работ, но недостаточно нагляден для определения тех работ, которые должны выполняться в каждый данный момент времени. В связи с этим небольшой проект после упорядочения сетевого графика рекомендуется дополнить линейной диаграммой проекта. Такая линейная диаграмма для рассматриваемой сети показана на рис. 5.8.
При построении линейной диаграммы каждая работа изображается параллельным оси времени отрезком, длина которого равна продолжительности этой работы. При наличии фиктивной работы нулевой продолжительности (в рассматриваемой сети ее нет) она изображается точкой. События i и j, начало и конец работы (i, j) помещают соответственно в начале и конце отрезка. Отрезки располагают один над другим, снизу вверх в порядке возрастания индекса i, а при одном и том же i — в порядке возрастания индекса j. По линейной диаграмме проекта можно определить критическое время, критический путь, а также резервы времени всех работ.
Так, критическое время комплекса работ равно координате на оси времени самого правого конца всех отрезков диаграммы:
tкр = t(11) = 61 сутки.
Для определения критического пути рассматриваем работы-отрезки, конечные события которых совпадают с завершающим событием сети (в нашем примере (9, 11) и (10, 11)). Затем находим отрезок (9, 10), правый конец которого лежит на одной вертикали t(10) с левым концом одного из рассматриваемых ранее отрезков (10, 11). Аналогично определяем и другие работы-отрезки критического пути: (6, 9),..., (0, 3) (на рис. 5.8 все они выделены жирным шрифтом).