Logical Min Cut (LMC) -Problemdefinition
Angenommen, ist ein ungewichteter Digraph, und sind zwei Eckpunkte von , und ist von aus erreichbar . Das LMC-Problem untersucht, wie wir aus unerreichbar machen können, indem wir einige Kanten von entfernen, wobei wir die folgenden Einschränkungen beachten:
- Die Anzahl der entfernten Kanten muss minimal sein.
- Wir können nicht jede Austrittskante eines Scheitelpunkts von entfernen (dh bei keinem Scheitelpunkt mit ausgehenden Kanten können alle ausgehenden Kanten entfernt werden).
Diese zweite Einschränkung wird als logische Entfernung bezeichnet. Wir suchen also nach einer logischen, minimalen Entfernung einiger Kanten von so dass t von s nicht erreichbar wäre .
Lösungsversuche
Wenn wir die logische Entfernungsbeschränkung des LMC-Problems ignorieren, ist es das Min-Cut-Problem im ungewichteten Digraphen , sodass es polynomiell lösbar ist (Max-Flow-Min-Cut-Theorem).
Wenn wir die minimale Entfernungsbeschränkung des LMC-Problems ignorieren, wird es in einer DAG wieder polynomiell lösbar sein: Finden Sie einen Knoten so dass k von s erreichbar ist und t von k nicht erreichbar ist . Dann betrachte man einen Pfad p, der ein beliebiger Pfad von s nach k ist . Betrachten Sie nun den Pfad p als einen Untergraphen von G : Die Antwort ist jede Austrittskante des Untergraphen p . Es ist offensichtlich, dass der Vertex k durch DFS in G in der Polynomzeit gefunden werden kann. Leider funktioniert dieser Algorithmus im Allgemeinen nicht für einen willkürlich gerichteten Graphen.
Ich habe versucht, das LMC-Problem durch eine dynamische Programmiertechnik zu lösen, aber die Anzahl der erforderlichen Zustände zur Lösung des Problems wurde exponentiell. Außerdem habe ich versucht, einige NP-Complete-Probleme wie 3-SAT, max2Sat, max-cut und Clique auf das LMC-Problem zu reduzieren, bei dem ich keine Reduzierung gefunden habe.
Ich persönlich denke, dass das LMC-Problem NP-vollständig ist, auch wenn eine binäre DAG ist (dh eine DAG, bei der kein Knoten einen Grad größer als 2 hat).
Fragen
- Liegt das LMC-Problem NP-Complete in einem beliebigen Digraphen ? (Hauptfrage)
- Ist das LMC-Problem NP-Complete in einer beliebigen DAG ?
- Ist das LMC-Problem NP-Complete in einer beliebigen binären DAG ?
Antworten:
Sei G = (V, E) eine gewichtete DAG, s und t zwei Eckpunkte von G, und LSTMC = (G, s, t) sei eine Instanz des logischen st-min-cut-Problems. Es ist offensichtlich, dass das LSTMC-Problem NP ist. Nun sollten wir zeigen, dass das LSTMC NP-schwer ist. Wir reduzieren das Schlagmengenproblem auf das LSTMC-Problem. Sei S = {s1, s2, ..., sn} die gegebene Menge und {a1, a2, ..., am} die Vereinigung aller Mengen. Unter Berücksichtigung der Zahl k1 gibt das Entscheidungsproblem des Schlagmengenproblems an, ob eine Menge A mit k1 Elementen existiert, so dass jedes Element von S (jede Menge si st i = 1..n) mindestens ein Element von A enthält. We bezeichne das Schlagsatzproblem als HS (S). Wir konstruieren die gewichtete DAG G 'aus der Menge S mit dem Algorithmus HS2LSTMC. Dieser Algorithmus betrachtet s als den Quellenscheitelpunkt der DAG G '. Für jede Menge si von HS st i = 1..n berücksichtigt der Algorithmus den entsprechenden Scheitelpunkt, si und fügt jedem si eine Kante mit unendlichem Gewicht von s hinzu. Dann betrachtet der Algorithmus für jedes Element aj der Vereinigung der Eingangssätze stj = 1..m den entsprechenden Scheitelpunkt aj und addiert eine Kante mit einer Gewichtung von Null von jedem si zu jedem ajstajsi in HS. Schließlich betrachtet der Algorithmus zwei Endscheitelpunkte, die als t und k bezeichnet werden, und addiert zwei Kanten von jedem aj st j = 1..m zu den beiden Endscheitelpunkten. Es ist klar, dass G 'in Polynomzeit hergestellt werden kann.
Nun soll gezeigt werden, dass HS (S) genau dann eine Antwort mit k1 Elementen hat, wenn LSTMC = (G ′, s, t) eine Antwort mit einigen logisch entfernten Kanten hat, so dass die Summe der Gewichte der entfernten Kanten ist k1.
Der Einfachheit halber führen wir diesen Teil des Beweises anhand eines Beispiels durch:
Angenommen, in der folgenden Abbildung ist S = {s1, s2, s3}, so dass s1 = {1, 2, 3}, s2 = {1, 4} und s3 = {2, 5}. Fig. 2 zeigt die gewichtete DAG G 'des LSTMC-Problems entsprechend dem Schlagmengenproblem HS (S). In diesem Beispiel ist die Menge A, nämlich die Vereinigung aller Elemente von S, A = {1, 2, 3, 4, 5}. Wir haben | S | = 3 und | A | = 5. Dieses Beispiel zeigt, wie eine beliebige Instanz des Treffersatzproblems mithilfe einer bestimmten Instanz des logischen St-Min-Cut-Problems in einer gewichteten DAG gelöst werden kann. Wenn wir eine Antwort auf LSTMC = (G ′, s, t) berechnen und die entfernten Kanten der Antwort in Form von (aj, t) betrachten, die als E1 (1 ≤ j ≤ m) bezeichnet werden, dann ist die Endmenge von E1 ist eine Antwort auf HS (S). Eine Antwort auf das LSTMC-Problem ist die Kantenmenge E1 = {(s1, 2), (s1, 3), (s2, 4), (s3, 5), (1, t), (2, t)}. Also ist die Endmenge der Teilmenge E2 = {(1, t), (2,
quelle
Hier ist (ein Versuch) ein Polynom-Algorithmus für LMC auf beliebigen binären DAGs .G
Dies beantwortet Frage 3. (Entschuldigen Sie die unordentliche Beschreibung im Voraus. :))
Werfen Sie zunächst "für immer" alle Scheitelpunkte aus, von denen aus Sie nicht erreichen können . Wir kümmern uns nicht um diese, da sie nicht Teil irgendeines sind s - t Weg.s s t
Definieren Sie als Nächstes die Sub-DAGs und B , die anfangs leer sind. Dann gilt für alle Eckpunkte v ∈A B ,v∈G−{s,t}
Testen Sie, ob es einen Pfad von nach t gibt . Wenn ja, fügen Sie v aufv t v . Wenn nicht, füge v zu B hinzu .A v B
Die Kanten von und B sollen die Kanten sein, die durch die Scheitelpunkte in jeder Menge induziert werden (vorerst ignorieren Sie alle Kanten von s nach A , von A nach t und von A nach B)A B s A A t A B ; beachten Sie auch, dass es keine Kanten von nach t von gibt Konstruktion).B t
Dann berechnet die transitive Hülle von . Wir sind nämlich daran interessiert, eine Reihe von Eckpunkten zu finden {A , die die "Blätter" der Sub-DAG A sind .{a∗} A
Repariere so . Beachten Sie, dass es eine gerichtete Kante von a ∗ bis t geben muss . Dies liegt daran, dass konstruktionsbedingt (i) es einen s - t - Pfad durch a ∗ gibt , (ii) es keine Pfade von a ∗ durch B gibt und (iii) da A selbst eine DAG ist und a ∗ ein Blatt ist von A gibt es keinen Weg von a ∗ durch einen anderen Scheitelpunkt von A nach t .a∗ a∗ t s t a∗ a∗ B A a∗ A a∗ A t
Jetzt muss es auch eine gerichtete Kante von jedem Scheitelpunkt in zu einem Scheitelpunkt in B geben , oder einige der { a ∗ } müssen eine einzelne Kante zu t haben . In jedem Fall werden wir alle löschen erlaubt eine * → t Rand.{a∗} B {a∗} t a∗→t
Wenn = 1, dann müssen wir entweder die Kante aus dem eindeutigen a ∗ → t löschen , oder es gibt einen Scheitelpunkt im s - t - Pfad, der ein ∗ enthält , das zwei Pfade zu t hat - einen durch ein ∗ und einen direkt. Für den Fall, dass Letzteres zutrifft, nehmen wir ein ∗ → t auf und gehen "gierig rückwärts" vor (Details dazu weiter unten).|{a∗}| a∗→t s t a∗ t a∗ a∗→t
Wenn > 1, dann müssen wir entweder alle Kanten aus { a ∗ } → t löschen , oder es gibt eine gewisse Anzahl von Kanten k < | { a ∗ } | früher in der transitiven Schließung von A , die alle Pfade von s durch die { a ∗ } zu t trennen .|{a∗}| {a∗}→t k<|{a∗}| A s {a∗} t
Hier verwenden wir die Tatsache, dass der Graph eine binäre DAG ist.G
Betrachten Sie die Menge der Vorgänger von . Da jeder dieser Eckpunkte höchstens zwei Ausmaße hat, gibt es genau drei Fälle:{a∗}
Fall 1 ein Vorgänger hat eine außerKante bis zu einem gewissen Eckpunkt in und ein Out-Rand zu einem gewissen Vertex in B .{a∗} B
In diesem Fall spielt es keine Rolle, ob wir die Kante vom Vorgänger zum Scheitelpunkt in oder die Kante vom Scheitelpunkt in { a ∗ } bis t löschen . Daher können wir diesen Scheitelpunkt "überspringen" (und prüfen, ob der Rückwärtspfad mit einem Pfad eines anderen Scheitelpunkts in { a ∗ } verschmilzt ).{a∗} {a∗} t {a∗}
Fall 2. Ein Vorgänger hat eine Außenkante zu einem Scheitelpunkt in und einen anderen Vorgänger von { a ∗ } .{a∗} {a∗}
In diesem Fall müssen wir entweder beide Kanten von bis t löschen, oder wir können eine einzelne frühere Kante im Pfad von s zum Vorgänger löschen , die beide Pfade trennt.{a∗} t s
Fall 3. Ein Vorgänger hat eine Außenkante zu zwei Eckpunkten in .{a∗}
Dies ist identisch mit Fall 2. Es spielt keine Rolle , ob wir einen der diesen Vorgängers Kanten löschen und die entsprechenden anderen Kanten von zu t oder beide der Kanten von der { eines * } zu t . Wir wollen nur wissen, ob wir den Pfad von s durch diesen Vorgänger zu t mit einer einzelnen Kante früher auf dem Pfad von s zum Vorgänger trennen können .{a∗} t {a∗} t s t s
Insgesamt können wir, während wir die Vorgänger im transitiven Abschluss von rückwärts durchgehen , die "bisher besten" Entscheidungen gierig verfolgen. Das heißt, wir haben bei jedem Schritt eine offensichtliche Wahl, bei der einige Kanten gelöscht werden, aber wir möchten abwarten, ob eine bessere Option verfügbar ist. Sobald eine bessere Option gefunden wurde, können wir die vorherige Option "vergessen". Daher genügt eine gierige Wahl auf jeder Ebene der Vorgänger (solange wir bis zum Ende warten, um uns auf eine Wahl zu verpflichten).A
Therefore, with some basic memoization, the time and space complexities of this process appear to be at mostO(|E|) . This leaves out the fact that, while we can locally/greedily identify when we have found a "cheaper choice," it's a priori unclear which previously-recorded edges to remove. Therefore, we record the order in which we check edges as we go. Upon finding a better option, we repeat the search up to this point in order to find which previously-recorded edges to remove. The total time complexity of this step is O(|E|2) and space complexity O(|E|) .
Altogether, the time complexity isO(|V|⋅(|V|+|E|)) for initialization, plus O(|V|3) for the transitive closure, plus O(|E|2) for the search. The total time is O(|V|2+|E||V|+|V|3+|E|2)=O(|V|3+|E|2) .
Upon completing the process, we obtain the minimum set of edges required to disconnects from t while preserving at least one out-edge of every vertex in the graph (or we discover that a solution is impossible along the way, and abort).
quelle