Я столкнулся с ожидающими графиками, и мне интересно, существуют ли какие-либо эффективные алгоритмы для обнаружения, если добавление ребра к ориентированному графу приводит к циклу?
Рассматриваемые графы являются изменяемыми (они могут иметь добавленные или удаленные узлы и ребра). И мы не заинтересованы в том, чтобы действительно знать оскорбительный цикл, просто зная, что одного достаточно (чтобы не добавлять к нему оскорбительный край).
Конечно, можно было бы использовать алгоритм для вычисления сильно связанных компонентов (например, Tarjan's), чтобы проверить, является ли новый граф ацикличным или нет, но повторять его каждый раз при добавлении края кажется довольно неэффективным.