Я ищу способ выполнить топологическую сортировку по заданному невзвешенному графику, содержащему циклы. Результат должен содержать не только упорядочение вершин, но и множество ребер, нарушаемых данным упорядочением. Этот набор ребер должен быть минимальным.Топологический вид циклического графа с минимальным количеством нарушенных ребер
Поскольку мой входной график потенциально большой, я не могу использовать алгоритм экспоненциального времени. Если невозможно вычислить оптимальное решение в полиномиальное время, какая эвристика была бы разумной для данной проблемы?
Это не [набор дуги обратной связи] (http://en.wikipedia.org/wiki/Feedback_arc_set)? Вы можете получить заказ путем топологической сортировки остаточной DAG. –
Также вы хотите, чтобы минимальное решение (каждая удаленная дуга завершила цикл в DAG) или минимальное решение (как можно меньше удаленных дуг)? –
@DavidEisenstat на самом деле мне все равно, если это одна дуга более или менее, я просто должен обрабатывать их отдельно. Если какой-либо алгоритм занимает в два раза больше времени выполнения и только находит решение с меньшим количеством дуг, это не будет экономичным. Кажется, что проблема связана с набором обратной связи, но в этом случае NP трудно, поэтому нам нужно приблизиться. – orsg