Ich suche nach einer Möglichkeit, eine topologische Sortierung auf einem bestimmten gerichteten ungewichteten Graphen durchzuführen, der Zyklen enthält. Das Ergebnis sollte nicht nur die Ordnung der Knoten enthalten, sondern auch die Menge der Kanten, die durch die gegebene Reihenfolge verletzt werden. Dieser Kantensatz soll minimal sein.Topologische Art von zyklischen Graph mit minimaler Anzahl von verletzten Kanten
Da mein Eingabediagramm möglicherweise groß ist, kann ich keinen exponentiellen Zeitalgorithmus verwenden. Wenn es nicht möglich ist, eine optimale Lösung in polynomieller Zeit zu berechnen, welche Heuristik wäre für das gegebene Problem sinnvoll?
Ist das nicht [Feedback Arc Set] (http://en.wikipedia.org/wiki/Feedback_arc_set)? Sie können die Bestellung erhalten, indem Sie die Rest-DAG topologisch sortieren. –
Wollen Sie auch eine minimale Lösung (jeder entfernte Bogen würde einen Zyklus in der DAG abschließen) oder eine minimale Lösung (so wenig Bögen wie möglich entfernt)? –
@DavidEisenstat eigentlich interessiere ich mich nicht zu sehr, wenn es ein Bogen mehr oder weniger ist, muss ich einfach getrennt damit umgehen. Wenn ein Algorithmus die doppelte Laufzeit benötigt und nur eine Lösung mit wenigen Bögen weniger findet, ist dies nicht wirtschaftlich. Das Problem scheint ein Feedback-Bogen zu sein, aber das ist in diesem Fall NP schwer, also brauchen wir eine Annäherung. – orsg