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