Ich bin auf folgendes Problem gestoßen:
Berechnen Sie bei einem gerichteten azyklischen Graphen mit reellen Kantengewichten und zwei Eckpunkten s und t den minimalen M.-Schnitt.
Für allgemeine Diagramme ist dies NP-hart, da man den Maximalschnitt trivial reduzieren kann, indem man einfach die Kantengewichte umkehrt (korrigiere mich, wenn ich falsch liege).
Wie ist die Situation mit DAGs? Kann Min-Cut (oder Max-Cut) in Polynomzeit gelöst werden? Ist es NP-schwer und wenn ja, gibt es bekannte Approximationsalgorithmen?
Ich habe versucht, Arbeit zu finden, konnte dies aber nicht (vielleicht verwende ich bei meinen Suchanfragen nur falsche Schlüsselwörter), also hoffte ich, dass jemand etwas darüber weiß (oder findet).
Antworten:
Sie haben Ihr Problem in den Kommentaren noch weiter verfeinert. Genauer gesagt haben Sie eine DAG, bei der alle Kanten von der Quelle weg und in Richtung der Senke t fließen (dh alle Kanten befinden sich auf einem Pfad von s nach t ). Sie möchten den minimalen Schnitt zwischen zwei Teilen der DAG finden, wobei das erste Teil mit s und das zweite mit t verbunden ist . Für dieses Problem funktioniert eine Variation des Standardalgorithmus für die lineare Programmierung für MIN-CUT auch bei negativen Kantengewichten.s t s t s t
Wir verwenden die gleiche Notation wie in Wikipedia . Die Kosten für die Kante ist , c i j . Wir setzen eine potentielle Funktion p i auf jeden Knoten und lassen d i j = p i - p j . Die LP ist m i n i m i z e( i , j ) ci j pich di j= pich- pj
Diese Gleichungen garantieren , dass , da jeder Knoten auf einige ist s - t Weg. In ähnlicher Weise nehmen die Potentiale auf jedem Weg von s nach t ab , da d i j = p i - p j nicht negativ ist . Wir müssen noch zeigen, dass es eine optimale Lösung für die LP mit allen p i entweder 0 oder 1 gibt . Dies folgt aus der Tatsache, dass der Wert für eine Lösung des obigen LP der erwartete Wert des Schnitts C w ist , wobei0 ≤ pich≤ 1 s t di j= pich- pj s t pich 0 1 C.w wird in [ 0 , 1 ] zufällig ausgewählt, und wobei der Schnitt C w erhalten wird, indem alle Eckpunkte i mit p i ≥ w in den ersten Satz von Eckpunkten und alle Eckpunkte mit p i < w in den zweiten Satz gesetzt werden.w [ 0 , 1 ] C.w ich pich≥ w pich< w
quelle