или, исходя из формулы (3.1):
. (3.3)Поскольку мы предположили от противного, что среди всех исходящих из события 2 работ нет работ с нулевым полным резервом времени, то отсюда сразу вытекает, что и работа, исходящая из события 1 и входящая в событие 2, также не может иметь нулевой полный резерв времени, уж если его минимальное значение заведомо неравно нулю, в соответствии с полученным равенством (3.3). Последнее противоречит условию теоремы. Из этого противоречия следует то, что невозможна ситуация, когда при нулевом резерве времени работы, входящей в событие 2, все исходящие из этого события работы имели бы ненулевые резервы времени. Если бы это имело место, то в соответствии с приведённым доказательством, работа, входящая в событие 2 также бы имела ненулевой полный резерв времени. Но ведь это не так по условию теоремы. Тогда для работ, исходящих из события 2 остаётся другая возможная ситуация – хотя бы одна из них имеет также нулевой полный резерв времени. Теорема доказана.
Из доказанных выше теорем, непосредственно, следует методика поиска критического пути, приводимая ниже.
Рациональная методика поиска критического пути сетевого графика:
1 Просмотр сетевого графика ведётся от его начального события к конечному;
2 При рассмотрении начального события сетевого графика, в качестве работы, лежащей на критическом пути, выбирается та, которая имеет нулевой полный резерв времени. В соответствии с теоремой 3.1 (утверждение-необходимость), такая работа обязательно будет существовать;
3 При рассмотрении работ, исходящих из события, к которому привила работа с нулевым полным резервом времени, выбирается работа, также имеющая нулевой полный резерв времени. В соответствии с теоремой 3.2, такая работа существует;
4 Если, среди исходящих из некоторого события работ, есть несколько работ с нулевыми полными резервами времени, то выбирается любая. При этом, согласно теореме 3.2, процесс построения критического пути в тупик зайти не может, и рано или поздно дойдет до завершающего события сетевого графика.
Реализация указанных правил даёт путь, состоящий только из работ с нулевыми полными резервами времени. Тогда, на основании теоремы 3.1 (утверждение-достаточность), этот путь и будет являться критическим.
В целях проверки, доказанная методика применена для сетевого графика, представленного на рисунке 2.1 . Здесь, найденные критические пути, выделены жирными стрелками. Как видно, таких путей два, благодаря тому, что среди работ, исходящих из события 0, есть две работы с нулевыми полными резервами времени. Проверить то, что найденные пути являются критическими легко, просуммировав длительности принадлежащих им работ. Суммы окажутся: во-первых, равными между собой, а во-вторых, наибольшими среди аналогичных сумм других возможных путей.
Теперь рассмотрим вопрос поиска наикратчайшего пути сетевого графика. Оказывается, для его поиска можно применять, методику поиска критического пути, если использовать идею, высказываемую в следующей теореме.
Теорема 3.3 – Если произвести расчёт параметров заданного сетевого графика по установленным правилам, но заменяя известные длительности работ на те же значения с отрицательным знаком (длительности всех работ будут меньше нуля), то наикратчайший путь сетевого графика станет подчиняться всем свойствам критического пути.
Эту теорему легко доказать, используя правило сравнения отрицательных чисел. Данное правило заключается в том, что одно отрицательное число считается большим другого, если абсолютное значение первого меньше абсолютного значения второго. Поскольку длительность наикратчайшего пути, по абсолютному значению наименьшая, среди длительностей всех других путей сетевого графика, то, на основании указанного правила, отрицательная длительность наикратчайшего пути будет наибольшей среди отрицательных длительностей остальных путей. Тогда, наикратчайший путь, состоящий из работ с отрицательными длительностями, будет критическим, при условии, что все остальные пути, также состоят из работ с отрицательными длительностями. Теорема доказана.
Для проверки доказанной теоремы, параметры сетевого графика на рисунке 2.1 пересчитаны заново, при отрицательных значениях длительностей работ, и представлены на рисунке 3.2 . Как видно, сетевой график на рисунке 3.2 содержит путь, работы которого имеют только нулевые полные резервы времени. Данный путь выделен жирными стрелками. Этот путь, являясь критическим для сетевого графика на рисунке 3.2 , в тоже время является наикратчайшим путем для сетевого графика на рисунке 2.1 . Последнее можно проверить простым суммированием длительностей его работ. Полученная сумма должна быть наименьшей по абсолютному значению, среди аналогичных сумм других путей сетевого графика на рисунке 2.1 .
Вообще говоря, для нахождения продолжительности наикратчайшего пути, необходимой при анализе оптимальности сетевого графика по критерию (1.1), не обязательно суммировать длительности всех, принадлежащих ему работ. Она уже известна из рассчитанных, при отрицательных длительностях работ, параметров сетевого графика, и равна, как и для любого критического пути, сроку свершения завершающего события. Естественно, что данный срок свершения имеет отрицательное значение, и поэтому, для нахождения фактической длительности наикратчайшего пути, требуется менять это значение на противоположное.
Любая ЭВМ нуждается в преобразовании различных абстрактных понятий, ясных для человека, в удобную для неё форму. Сетевой график, как графическое изображение упорядоченных кружков и стрелок само по себе для ЭВМ нечего не значить. Для того, чтобы ЭВМ могла понимать структуру сетевого графика и, главное, обрабатывать её, необходимо представить эту структуру в эквивалентной машинной форме.
Наиболее удобный способ представления структуры сетевого графика в машинной форме, основан на понятии матрицы смежностей
. Пример данной матрицы для структуры сетевого графика на рисунке 2.1 представлен на рисунке 4.1 .Матрица смежностей квадратная и имеет размерность
, где – число событий сетевого графика. Номера строк матрицы задаются номерами событий , из которых работы сетевого графика исходят, номера столбцов матрицы задаются номерами событий , в которые работы сетевого графика входят. На пересечении строки и столбца , в матрице смежностей, может быть только одно из двух значений: 0 или 1. Если , то это означает, что на сетевом графике существует работа, исходящая из события с номером и входящая в событие с номером . Если , то такой работы на сетевом графике нет.Матрица смежностей будет верно отражать структуру сетевого графика, если сетевой график построен по всем, узаконенным стандартом правилам. Здесь, наиболее важны следующие:
−
− Два события сетевого графика может соединять только одна работа. Если все же имеет место факт соединения двух событий несколькими работами, то, для выполнения указанного правила, необходимо ввести дополнительные события, разрывающие лишние работы и дополняющие их фиктивными работами с нулевой длительностью (см. пример на рис. 4.2 ). Дополнительные события также должны иметь свои уникальные, в сетевом графике, номера, присвоенные им в соответствии с первым правилом.