Мне нужно создать алгоритм, который мог бы найти все критические пути в графе.
Я нашел топологический порядок узлов, рассчитал самое раннее время окончания и самое позднее время начала для каждого узла.
Также я нашел все критические узлы (то есть те, которые находятся на критическом пути).
Проблема состоит в том, чтобы собрать все вместе и фактически распечатать все эти пути.Если в графе только 1 критический путь, то я могу с ним справиться, но проблемы начинаются, если существует несколько путей.
Например, один узел является частью нескольких критических путей, несколько начальных узлов, несколько концовузлы и тд.Мне не удалось придумать алгоритм, который мог бы учесть все эти факторы.
Вывод, который я ищу, выглядит примерно так (если a, b, c и т. Д. - все узлы):
- a-> e
- a-> c-> f-> i-> j-> k
- a-> c-> g
- l-> e
Было бы неплохо, если бы кто-то мог написать описание алгоритма, который мог бы найти пути, зная критические узлы, топологический порядок и т. Д. Или, возможно, также в C иликод Java.
РЕДАКТИРОВАТЬ: Вот пример, который должен предоставить вывод, который я опубликовал ранее.Критические пути красного цвета, значения каждого узла отмечены над или около него.