8

Я ищу способ выполнить топологическую сортировку по заданному невзвешенному графику, содержащему циклы. Результат должен содержать не только упорядочение вершин, но и множество ребер, нарушаемых данным упорядочением. Этот набор ребер должен быть минимальным.Топологический вид циклического графа с минимальным количеством нарушенных ребер

Поскольку мой входной график потенциально большой, я не могу использовать алгоритм экспоненциального времени. Если невозможно вычислить оптимальное решение в полиномиальное время, какая эвристика была бы разумной для данной проблемы?

+0

Это не [набор дуги обратной связи] (http://en.wikipedia.org/wiki/Feedback_arc_set)? Вы можете получить заказ путем топологической сортировки остаточной DAG. –

+0

Также вы хотите, чтобы минимальное решение (каждая удаленная дуга завершила цикл в DAG) или минимальное решение (как можно меньше удаленных дуг)? –

+0

@DavidEisenstat на самом деле мне все равно, если это одна дуга более или менее, я просто должен обрабатывать их отдельно. Если какой-либо алгоритм занимает в два раза больше времени выполнения и только находит решение с меньшим количеством дуг, это не будет экономичным. Кажется, что проблема связана с набором обратной связи, но в этом случае NP трудно, поэтому нам нужно приблизиться. – orsg

ответ

8

Eades, Lin, and Smyth предлагается A fast and effective heuristic for the feedback arc set problem. Оригинальная статья находится за платной линией, но бесплатная копия доступна с here.

Существует алгоритм топологической сортировки, который строит порядок вершин, выбирая вершину без входящих дуг, рекурсивную на графе минус вершина и добавляя эту вершину к порядку. (Я описываю алгоритм рекурсивно, но вам не нужно его реализовать таким образом.) Алгоритм Eades-Lin-Smyth также ищет вершины без исходящих дуг, а присоединяет их. Конечно, может случиться, что все вершины имеют входящую и исходящую дуги. В этом случае выберите вершину с наивысшим разницей между входящим и исходящим. Здесь, несомненно, есть место для экспериментов.

Алгоритмы с доказуемым наихудшим поведением основаны на линейном программировании и графах. Они опрятные, но гарантии менее идеальны (log^2 n или log n log log n раз столько, сколько необходимо), и я подозреваю, что эффективные реализации были бы довольно проектом.

+0

Этот вопрос по-прежнему получает кучу взглядов время от времени, и я просто натолкнулся на него с бумагой, так что, если кто-то интересуется алгоритмами аппроксимации, которые Дэвид упоминает в последнем абзаце, он может иметь в виду «Разделить и -Коннельные алгоритмы приближения с помощью распространенных метрик ", by Even, Naor, Rao, Schieber, Journal of ACM, Vol. 47, № 4, июль 2000 г., стр. 585-616, который делает логарифмическое логарифмическое приближение даже для взвешенных орграфов. –

+0

Более раннее приближение log^2 n для задачи о невзвешенной задаче минимальной обратной связи (где мы минимизируем количество удаляемых ребер), которое основано на линейном программировании, можно найти в «Многоточечных теоремах о минимальном разрезе и их использовании в Проектирование аппроксимационных алгоритмов ", Лейтон, Рао, Журнал ACM, Vol. 46, № 6, ноябрь 1999 г., стр. 787-832. –