Untergraph, der alle Knoten und Kanten enthält, die Teil längenbegrenzter einfacher st-Pfade in einem Digraphen sind

8

Hinweis: Ich habe eine ähnliche Frage zum ungerichteten Diagramm gestellt .

Gegeben

  • Ein Digraph ohne Mehrfachkanten oder SchleifenG
  • Ein Quellknoten s
  • Ein Zielknoten t
  • Maximale Pfadlänge l

Ich suche nach - Ein Teilgraph von G , der einen beliebigen Knoten und eine beliebige Kante in G enthält (und nur diejenigen), die Teil mindestens eines einfachen Pfades von s nach t mit einer Länge l sind .GGGstl

Beachten Sie, dass ich die Pfade nicht aufzählen muss.

Lior Kogan
quelle
Gibt es weitere Einschränkungen für Ihr Problem? Denken Sie daran, dass das folgende Problem NP-vollständig ist: Gibt es bei gegebenem Digraphen und Eckpunkten s , t , v einen ( s , t ) -Pfad, der auch v enthält ? Gs,t,v(s,t)v
Kristoffer Arnsfelt Hansen
@KristofferArnsfeltHansen, interessant! Möchten Sie dies als Antwort hinzufügen und eine Referenz für dieses Ergebnis bereitstellen? Es klingt so, als würde es die ursprüngliche Frage verneinen.
DW
@KristofferArnsfeltHansen: Es gibt keine Einschränkungen mehr.
Lior Kogan

Antworten:

6

Wie die Frage gestellt wird, ist als Teil der Eingabe N P -hart. Dies folgt als Sonderfall der Klassifikation der Klasse von Mustern, für die das Problem des gerichteten Subgraphen-Homöomorphismus nach Fortune, Hopcroft und Wyllies Arbeit N P -vollständig ist: Das Problem des gerichteten Subgraphen-Homöomorphismus .lNPNP

Insbesondere ist das folgende Problem -vollständig: Gibt es bei einem gerichteten Graphen G und Eckpunkten s , t , v einen (einfachen) ( s , t ) -Pfad durch v ?NPGs,t,v(s,t)v

Kristoffer Arnsfelt Hansen
quelle
Wie passt es hier zur akzeptierten Lösung? stackoverflow.com/questions/10825249/… Ist es NP-schwer, nur wenn das Diagramm gerichtet ist?
Lior Kogan
1
Richtig, das obige Problem kann für die Variante effizient gelöst werden, wenn das Diagramm ungerichtet ist, wie in der Antwort beschrieben, auf die Sie verlinken.
Kristoffer Arnsfelt Hansen
0

Update: Diese Antwort scheint fehlerhaft zu sein. Siehe den Kommentar von Kristoffer Arnsfelt Hansen.


Ich weiß nicht, wie ich Ihr Problem lösen soll, aber hier ist eine Technik, um eine einfachere Version Ihres Problems zu lösen: Testen Sie bei gegebener Kante , ob es einen einfachen Pfad von s nach t gibt , der Kante e enthält . (Dies entspricht dem Sonderfall Ihres Problems mit l = .)estel=

Sie können dieses einfachere Problem lösen, indem Sie "Max-Flow mit unteren Grenzen" als Unterprogramm verwenden. Beim Standardproblem mit maximalem Durchfluss gibt uns die Kapazität jeder Kante eine Obergrenze für die Durchflussmenge, die durch diese Kante fließt, und wir fordern, dass die Durchflussmenge an der Kante durch 0 untergrenze ist. In "max-flow" mit Untergrenzen "dürfen wir sowohl eine Untergrenze als auch eine Obergrenze für den Durchfluss durch diese Kante angeben. Es ist bekannt, dass "Max-Flow mit Untergrenzen" in Polynomzeit gelöst werden kann.

Nehmen wir nun an, wir haben eine Kante und möchten testen, ob es einen einfachen Pfad von s nach t gibt , der die Kante e enthält . Wir werden einen Max-Flow mit Problem der unteren Grenzen einrichten. Nehmen Sie insbesondere den Graphen G und fügen Sie einen neuen Knoten s 0 mit der Kante s 0s und einen neuen Knoten t 1 mit der Kante t t 1 hinzu . Stellen Sie die Kapazität (Obergrenze) für jede Kante 1 ein. Die Untergrenze für alle Kanten ist 0, mit der Ausnahme, dass die Untergrenze für Kante e gilteEsteGs0s0st1tt1eist 1. Überprüfen Sie nun, ob es einen realisierbaren Fluss von nach t gibt , der alle Grenzen erfüllt (dieser Test kann, wie oben erwähnt, in Polynomzeit durchgeführt werden). Wenn es keinen Fluss gibt, gibt es keinen einfachen Weg von s nach t . Wenn es einen solchen Fluss gibt, ergibt das Verfolgen dieses Flusses einen einfachen Pfad von s nach t , der die Kante e enthält , so dass es einen so einfachen Pfad gibt.ststste

e

Ich habe diese Idee aus folgendem Artikel gelernt:

(Lesen Sie unbedingt die Techreport-Version und nicht die veröffentlichte Version. Diese Idee finden Sie im zweiten Absatz der Einführung.)

l


Alternativ können wir Ihr Problem auf einfache Weise mithilfe der ganzzahligen linearen Programmierung (ILP) lösen. In der Praxis sind ILP-Löser bei vielen Problemen ziemlich gut. Ihre Worst-Case-Laufzeit ist jedoch immer noch exponentiell, sodass kein Algorithmus mit einer polynomiellen Worst-Case-Laufzeit erhalten wird. Lassen Sie mich wissen, ob ich erläutern soll, wie dies mit ILP formuliert werden kann.

DW
quelle
1
Vielen Dank. Schauen Sie auch hier: stackoverflow.com/questions/10825249/…
Lior Kogan
1
(s,t)NP
0

GO(V+E)

sGds(v)vGsvtG(v,u)(u,v)Gdt(v)vG

vstvds(v)+dt(v)

GvGds(v)+dt(v)l(u,v)ds(u)+dt(v)l1

Mathias Rav
quelle
5
Es kann Pfade zurückgeben, die nicht einfach sind (z. B. für den Graphen s <--> a <--> b <--> c <--> t; b <--> d: Knoten d ist eine Sackgasse und sollte nicht Teil der Lösung sein).
Lior Kogan
0

lO(2lm(n+m))l

mle

Foreach $e=(u,v)\in E$: 
a. do for $O(2^l)$ times:
  1. Compute a random partition of the vertices set $V=(S,V\setminus S)$ 
   such that $s,u\in S$, $v,t\not \in S$ (and every other vertex is in $S$ w.p. 1/2).
  2.Find the shortest path from $s$ to $u$ in the subgraph induced by $S$.
    And the shortest path from $v$ to $t$ in the subgraph of $V\setminus S$. 
  3.If the sum of distances is no more than $l-1$, add $e$ to the output graph.


lGe

uSVS2lO(2l)

Derandomisierung

2polylog(l)

(n,l)SO(2l+log3(l)poly(n))

RB
quelle