Путь — любая последовательность работ, в которой конечное событие каждой работы совпадает с начальным событием следующей за ней работы. Следует различать пути трех видов:
1) полный путь — любой путь, начало которого совпадает с исходным событием сети, а конец — с завершающим;
2) путь от начального события до данного события сети называется путем, предшествующим этому событию, а путь, соединяющий это событие с завершающим событием сети, — путем, следующим за данным событием;
3) путь, соединяющий какие-либо два события i и j, из которых ни одно не является ни исходным, ни завершающим, называется путем между событиями i и j.
Если известна продолжительность каждой работы tij то для каждого пути может быть вычислена его длина (продолжительность) t(L). Длина каждого пути равна сумме продолжительностей составляющих его работ. Дадим формализованную постановку расчета длины пути. Пусть весь комплекс работ уже изображен в виде пронумерованного сетевого графика, и пусть для каждой работы (Рi, Рj) задана продолжительность tij³0 ее выполнения, которую будем считать длиной этой работы (дуги). Тогда под длиной пути (Рi, Рji), (Рji, Рj2),..., (Pjk, Рj) из Рi в Рj будем понимать продолжительность выполнения всей последовательности работ, составляющих этот путь, т.е. число tij1+tij2+...+tikj.
Счет времени будем вести от наступления начального события Р0, т.е. время Т0 наступления события Р0 будем считать равным нулю. Временем Тj наступления (свершения) любого события Рj будем считать время окончания всех работ, входящих в Рj. Минимальное (т.е. наиболее раннее) время возможного наступления события Pj равно максимальной длине пути из Р0 в Рj. Оно же, следовательно, является наиболее ранним временем начала всех работ, выходящих из Рj. Обозначим это время через Тj(0).
Критическим временем проекта назовем минимальное время Тn(0)наступления последнего события Рn. Другими словами, критическое время — это минимальное количество времени, необходимое для выполнения всего комплекса работ.
Критический путь — наиболее продолжительный путь в сетевом графике. Причем критическим путем называют любой путь из Р0 в Рn, имеющий максимальную длину.
Алгоритм вычисления минимальных времен и критического времени.
Для вычисления минимальных времен наступления событий будем пользоваться основным алгоритмом, рассмотренным ранее для определения рангов вершин сети.
Предварительный шаг. Каждому событию Рj приписываем число lj=0; однако, в отличие от предыдущего, каждой работе (Рi, Рj) ставим теперь в соответствие не число уij=1, а число tij — продолжительность выполнения этой работы.
Общий шаг. Просматриваем всю пронумерованную сеть последовательно от Р0 до Рn, вычисляем новые значения I'jчисел Ij по формуле (2.3):
(2.3)
и записываем около каждого вычисленного I'jномера i1, i2,..., iv тех событий Рi, для которых был достигнут максимум. Эти пометки будут затем использованы при отыскании критического пути. Убедимся, что в рассматриваемом случае пронумерованной сети второй шаг не изменит ни одного из чисел l'j=l(1)j, полученных после первого шага.
Действительно, так как сеть просматривается в порядке Р0, P1,…, Рi,..., Рj,..., Рn, то число l'j вычисляется лишь после того, как определены все числа l'i, участвующие в вычислении l'j (i<j). Далее, поскольку числа tij одни и те же на всех шагах, то число l(2)j может оказаться больше числа l(1)j лишь тогда, когда l(2)j>l(1)j, при некотором i<j. Но l(2)0=l(1)0=0, следовательно, l(2)1=l(1)1. Но тогда l(2)2=l(1)2, и т.д.
Каждое из чисел l'j(у=1,..., n), полученное после единственного шага, определяет максимальную продолжительность пути из Р0 в Pj и, по определению, равно минимальному времени Tj(0) наступления события Рj. Наконец, число l'n=Tn(0) дает критическое время проекта.