LINUX.ORG.RU

Алгоритм топологической сортировки для циклических ориентированных графов


0

0

Может ли кто-нибудь подсказать эффективный алгоритм?

Если все зависимости нельзя расположить в списке слева от цели, то они должны быть справа на минимальном от неё расстоянии.

А разве топологическая сортировка возможна на циклических графах?

Zubok ★★★★★
()

ммм... могу привести несколько уточнений к постановке задачи, но все они у меня привели к NP-полноте.

Waterlaz ★★★★★
()

Топологическая сортировка это алгоритм на DAG (directed *acyclic* graph) - при его кодировании даже пишут проверки на наличие циклов (чтобы выбросить ошибку). Поэтому всё что можно сделать это сначала преобразовать directed graph -> DAG, например FAS - только это, в общем случае, NP-полная задача. Разве что есть полный контроль над циклами - тогда можно их разорвать и провести сортировку.

З.Ы. Или сделать свой обход-сортировку? Специально под нужный вид циклического графа, на основе того же поиска в глубину.

quasimoto ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.