На этом шаге мы рассмотрим правила построения временного графика.
На этом шаге мы покажем, как на основе данных, полученных расчетным путем на предыдущем шаге, строится временной график последовательного выполнения проекта. Мы уже знаем, что Ai для процесса (i, j) указывает на самое раннее время начала этого процесса, а Bj - на самое позднее время завершения процесса. Таким образом, пара величин (Ai, Bj) ограничивает максимальный интервал времени, в течение которого может выполняться процесс (i, j).
Метод построения предварительного временного графика выполнения проекта покажем на следующем примере.
Предварительный временной график проекта можно начертить, используя максимальные интервалы выполнения каждого процесса. В результате получим график, представленный на рисунке 1:
Рис.1. Время выполнения процессов
Сделаем два замечания.
Как выбрать время начала выполнения некритического процесса? Обычно предпочитают начинать некритические процессы (по возможности) в самый ранний срок. В этом случае остается запас времени (остаток максимального интервала выполнения), который можно использовать для решения неожиданно возникших во время выполнения процесса проблем. Вместе с тем при необходимости можно перенести начало выполнения какого-либо процесса. Допустим, если в нашем примере во время выполнения процессов E и F (рис. 1) используется одно и то же оборудование, причем в каждый момент времени его можно задействовать только для одного процесса, тогда можно исключить временное наложение этих процессов, начав процесс F после завершения Е.
Если на некритические процессы не накладываются какие-либо дополнительные ограничения и все они начинаются в самый ранний момент времени, то временной график проекта строится автоматически. Однако в этом случае могут нарушаться некоторые отношения предшествования. В частности, в нашем примере (см. рис. 1 предыдущего шага) процесс С должен быть завершен до начала процесса Е. Но максимальные интервалы времени выполнения этих процессов перекрываются, поэтому и реальные интервалы времени их выполнения также могут перекрываться. Поэтому необходимо предусмотреть какие-нибудь "красные флажки", которые автоматически указывали бы, когда тот или иной процесс может начинаться без нарушения отношений предшествования с другими процессами. Далее мы покажем, как для этого использовать запасы времени отдельных процессов.
Запас времени некритического процесса - это часть максимального интервала времени выполнения этого процесса (который, напомним, больше реальной длительности процесса). Различают общий запас времени и свободный запас времени процесса.
На рисунке 2 показана разность между этими запасами времени процесса (i, j) - общим (TFij) и свободным (FFij). Общий запас времени процесса (i, j) определяется как превышение над длительностью выполнения этого процесса интервала времени от самого раннего момента осуществления события i до самого позднего осуществления события j, т.е.
TFij = Bj - Ai - Dij.
Свободный запас времени процесса (i, j) определяется как превышение над длительностью выполнения этого процесса интервала времени - от самого раннего момента осуществления события i до самого раннего времени осуществления события j, т.е.
FFij = Aj - Bi - Dij.
По определению FFij <= TFij.
Рис.2. Разность между общим и свободным запасами времени
Для некритического процесса (i, j)
Это правило означает, что некритический процесс (i, j) помечается "красным флажком" только тогда, когда FFij < TFij. Этот флажок принимается во внимание при сдвиге начала процесса относительно самого раннего времени i на такую величину, при которой следует рассчитывать сдвиг процессов, следующих из узла j.
Общие и свободные запасы времени некритических процессов представлены ниже. Такие расчеты можно проводить непосредственно на сети проекта, как показано на рисунке 2.
Некритический Длительность Общий запас Свободный запас процесс процесса времени (TF) времени (FF) B (1, 3) 6 11 - 0 - 6 = 5 8 - 0 - 6 = 2 C (2, 3) 3 11 - 5 - 3 = 3 8 - 5 - 3 = 0 E (3, 5) 2 13 - 8 - 2 = 3 13 - 8 - 2 = 3 F (3, 6) 11 25 - 8 - 11 = 6 25 - 8 - 11 = 6 H (4, 6) 1 25 - 13 - 1 = 11 25 - 13 - 1 = 11
Правило "красного флажка" следует применять только к процессам В и С, поскольку для них FF < TF. Оставшиеся процессы (E, F и H) имеют FF = TF, поэтому они могут выполняться в любое время внутри своих максимальных интервалов времени выполнения.
Рассмотрим процесс В, помеченный "красным флажком". Поскольку для этого процесса TF = 5 дней, он может начаться в любой день из интервала 0 - 5 дней от начала выполнения всего проекта (рис. 1). Но если FF = 2 дня, то, поскольку процесс В начнется в 0-й, 1-й или 2-й день от начала выполнения проекта, это не окажет никакого эффекта на последующие процессы E и F. Однако если процесс В начнется в (2 + B)-й день (2 + B < 5), начало выполнения процессов E и F необходимо сдвинуть от самого раннего срока их начала (8-й день от начала выполнения проекта) на величину, не меньшую B; только при таком условии не нарушатся отношения следования между процессами В, E и F.
Для помеченного "красным флажком" процесса С имеем FF = 0. Это означает, что любой сдвиг начала выполнения этого процесса должен сопровождаться таким же (не меньшим) сдвигом начала выполнения процессов E и F.
На следующем шаге мы приведем программу, позволяющую визуально строить сетевые модели.