Шаг 133.
Методы сетевого планирования. Метод критического пути

    На этом шаге мы рассмотрим алгоритм определения критического пути.

    Конечным результатом применения метода критического пути будет построение временного графика выполнения проекта (см. рис. 1 шага 131). Для этого проводятся специальные вычисления, в результате чего получаем следующую информацию.

  1. Общая длительность выполнения проекта.
  2. Разделение множества процессов, составляющих проект, на критически и некритические.

    Процесс является критическим, если он не имеет "зазора" для времени своего начала и завершения. Таким образом, чтобы весь проект завершился без задержек, необходимо, чтобы все критические процессы начинались и заканчивались в строго определенное время. Для некритического процесса возможен некоторый "дрейф" времени его начала, но в определенных границах, когда время его начала не влияет на длительность выполнения всего проекта.

    Для проведения необходимых вычислений определим событие как точку на временной оси, где завершается один процесс и начинается другой. В терминах сети, событие - это сетевой узел. Нам понадобятся также следующие определения и обозначения:

    Вычисления критического пути включает два этапа (прохода). При проходе вперед вычисляются самые ранние времена наступления событий, а при проходе назад - самые поздние времена наступления тех же событий.

    Проход вперед. Здесь вычисления начинаются в узле 1 и заканчиваются в последнем узле n.

    Начальный шаг. Полагаем A1=0; это указывает на то, что проект начинается в нулевой момент времени. Основной шаг j. Для узла j определяем узлы p, q, …, v, непосредственно связанные с узлом j процессами (p, j), (q, j), …, (v, j), для которых уже вычислены самые ранние времена наступления соответствующих событий. Самое раннее время наступления события j вычисляется по формуле

    Aj = max { Ap + Dpj,  Aq + Dqj, …,  Av + Dvj}.

    Проход вперед завершается, когда будет вычислена величина An для узла n. По определению величина j равна самому длинному пути (длительности) от начала проекта до узла (события) j.

    Проход назад. В этом проходе вычисления начинаются в последнем узле n и заканчивается в узле 1.

    Начальный шаг. Полагаем Bn = An; это указывает, что самое раннее и самое позднее времена для завершения проекта совпадают.

    Основной шаг j. Для узла j определяем узлы p, q, …, v, непосредственно связанные с узлом j процессами (j, p), (j, q), …, (j, v), для которых уже вычислены самые поздние времена наступления соответствующих событий. Самое позднее время наступления события j вычисляется по формуле

    Bj = min {Bp - Djp, Bq - Djq, …, Bv - Djv}.

    Проход назад завершается при вычислении величины B1 для узла 1.

    Процесс (i, j) будет критическим, если выполняются три условия.

  1. Bi = Ai.
  2. Bj = Aj.
  3. Bj - Bi = Aj - Ai = Dij.

    Эти условия не выполняются, то процесс некритический.

    Критические процессы должны образовывать непрерывный путь через всю сеть от начального события до конечного.


    Пример. Найдем критический путь для сети проекта, показанной на рисунке 1. Длительность всех процессов дана в днях.

    Проход вперед.

    Узел 1. Полагаем A1 = 0.

    Узел 2. A2 = A1 + D12 = 0 + 5 = 5.

    Узел 3. A3 = max { A1 + D13, A2 + D23} = max {0 + 6, 5 + 3} = 8.

    Узел 4. A4 = A2 + D24 = 5 + 8 = 13.

    Узел 5. A5 = max { A3 + D35, A4 + D45} = max {8 + 2, 13 + 0} = 13.

    Узел 6. A6 = max { A3 + D36, A4 + D46, A5 + D56} = max {8 + 11, 13 + 1, 13 + 12} = 25.


Рис.1. Пример проекта

    Таким образом, расчеты показывают, что проект можно выполнить за 25 дней.

    Проход назад.

    Узел 6. Полагаем A6 = B6 = 25.

    Узел 5. B5 = B6 - D56 = 25 - 12 = 13.

    Узел 4. B4 = min {B6 - D46, B5 - D45} = min {25 - 1, 13 - 0} = 13.

    Узел 3. B3 = min {B6 - D36, B5 - D35} = min {25 - 11, 13 - 2} = 11.

    Узел 2. B2 = min {B4 - D24, B3 - D23} = min {13 - 8, 11 - 3} = 5.

    Узел 1. B1 = min {B3 - D13, B2 - D12} = min {11 - 6, 5 - 5} = 0.

    Вычисления без ошибок всегда приводят к результату B = 0.

    Результаты вычислений, выполняемых при проходах вперед и назад, показаны на рисунке 1. Правила определения критических процессов показывают, что критический путь составляют процессы 1->2->4->5->6, т.е. этот путь проходит от начального узла 1 до конечного узла 6. Сумма длительности критических процессов (1, 2), (2, 4), (4, 5) и (5, 6) равна длительности всего проекта (т.е. 25 дней). Отметим, что процесс (4, 6) удовлетворяет первым двум условиям критического пути (B4 = A4 = 13 и B6 = A6 = 25), но не удовлетворяет третьему условию ( A6 - B4 не равно D46). Поэтому данный процесс не является критическим.

    Для проверки полученных результатов воспользуемся программой, приведенной на 121 шаге, которая позволяет спланировать критический путь. Для заданных исходных данных результат вычислений по этой программе будет следующим:


Рис.2. Результат работы приложения

    На следующем шаге мы рассмотрим построение временного графика.




Предыдущий шаг Содержание Следующий шаг