6. Кратчайший путь между двумя заданными вершинами в ориентированном ациклическом графе
Методы, развитые в предыдущих разделах этой главы, приме нимы к совершенно произвольным графам. Но на практике задачу кратчайшего пути часто требуется решать для класса ориентированных ациклических графов. Такие графы возникают в методах ПЕРТ и МКП.
Допустим, что нужно реализовать некий большой проект, и этот проект состоит из большого числа этапов. Мы можем изобразить каждый зтап вершиной некоторого графа и построить дугу от вершины к вершине чтобы показать, что этап должен предшествовать этапу Каждой дуге приписывается некоторый вес равный минимальной задержке во времени между началом этапа и началом этапа Пусть, например, проект представляет собой процесс строительства здания. Этап может состоять в строительстве стен, этап вставка окон, зтап к — прокладка проводов в стенах и т. д. Очевидно, что в этом случае нужно провести дуги от и от Но минимальный срок между началом строительства стен и вставкой окон может быть отличным от срока между строительством стен и прокладкой проводов. Если, например, оконные рамы деревянные и стены должны сначала высохнуть, а для прокладки проводов это не важно, то
Совершенно очевидно, что рассматриваемый граф будет ориентированным и ациклическим. Действительно, предположение о существовании некоторого цикла, содержащего вершину приводит к (нелепому для нашей задачи) выводу о возможности повторения этапа
В задаче требуется найти минимальное время, необходимое для реализации проекта. Иными словами, нужно найти в графе самый длинный путь между вершиной изображающей начало, и вершиной изображающей завершение всех необходимых для реализации проекта работ. Самый длинный путь называется критическим путем, так как этапы, относящиеся к этому пути, определяют полное время реализации проекта и всякая задержка с началом выполнения любого из этих этапов приведет к задержке выполнения проекта в целом.
Сходство этой задачи с задачей о кратчайшем пути между совершенно очевидно и ее можно решить, используя алгоритм