Eine klassische Erweiterung des Max-Flow-Problems ist das "Max-Flow-over-Time" -Problem: Sie erhalten einen Digraphen, von dem zwei Knoten als Quelle und Senke unterschieden werden, wobei jeder Bogen zwei Parameter hat, eine Kapazität pro -Einheitszeit und eine Verzögerung. Sie sind auch einen Zeithorizont gegeben . Das Ziel ist es, einen zeitlichen Fluss zu berechnen, der die maximale Materialmenge von der Quelle zur Senke bis zur Zeit . Ein Fluss mit maximalem Wert kann in Polynomzeit durch eine geschickte klassische Reduktion auf minimale Kosten und maximalen Fluss berechnet werden.
Ich bin an einer Erweiterung dieses Modells interessiert, bei der Kanten einen dritten "Lebensdauer" -Parameter haben. Wenn ein Lichtbogen Lebensdauer hat , und ist der früheste Zeitpunkt , an dem eine positive Strömung wird durch den Bogen geschickt, dann zerstören wir den Bogen zum Zeitpunkt . Sie können sich das wie die Plattformen in Super Mario Brothers vorstellen, die wegfallen / zerstört werden, sobald Sie darauf treten, oder Sie können sich diese als Batterien vorstellen, die für die Stromversorgung der Ränder benötigt werden und nach dem Einschalten nicht mehr ausgeschaltet werden können . ( Editieren :) Das Entscheidungsproblem ist, wenn auch eine Flusswertuntergrenze , ob ein Fluss eingeplant werden kann, der sowohl die Zeithorizontobergrenze als auch die Flusswertuntergrenze erfüllt.
Bisher kann ich feststellen, dass dieses Problem stark NP-hart ist (über 3-Partitionen). Aber ich weiß eigentlich nicht, ob es sich um NP handelt: Gibt es eine Garantie dafür, dass eine Lösung kompakt ausgedrückt werden kann? In der klassischen Version wird eine spezielle Art der optimalen Strömung verwendet, um dieses Problem zu umgehen.
Hinweis: Das obige Modell ist etwas zu wenig spezifiziert, da Sie möglicherweise die Bevorratung von Datenströmen an Knoten zulassen oder nicht zulassen und möglicherweise ein diskretes oder ein kontinuierliches Zeitmodell verwenden. Die Lösung der Frage für eines dieser Modelle wäre ausgezeichnet.
Antworten:
Es ist lange her, aber ich bin mir ziemlich sicher, dass dieses Problem in P. ist.
Ich schrieb 1995 meine Doktorarbeit darüber. Siehe "Efficient Dynamic Network Flow Algorithms" von Bruce Hoppe, eingereicht bei Cornell CS. Online unter http://dspace.library.cornell.edu/bitstream/1813/7181/1/95-1524.pdf
Siehe Kapitel 8, "Erweiterungen", Abschnitt 8.1 über "sterbliche Kanten".
quelle
BEARBEITEN: Die Antwort ist FALSCH. Ich habe die (alberne) implizite Annahme getroffen, dass ein Pfadfluss, der zum Zeitpunkt s beginnt und zum Zeitpunkt t endet und die Kante e durchläuft, die Kante e für diese Dauer blockiert. Dies ist jedoch nicht wahr. Sehen *.
Hinweis: Möglicherweise ist dieser Ansatz unnötig kompliziert oder falsch. Obwohl ich versucht habe, es zu überprüfen und sorgfältig aufzuschreiben, habe ich nicht viel Zeit darauf verwendet.
Unter der Annahme, dass eine Bevorratung nicht zulässig ist, muss der Durchfluss sofort übertragen werden. Es sei die Anzahl der Kanten und N die Eingangslänge. Ich habe keine kontinuierliche oder diskrete Zeit angegeben, da ich dies nicht berücksichtigt habe. Es sollte für diskretes Denken funktionieren, für kontinuierliches Ich bin mir sicher.m N
Dann können wir die Lösung als eine Menge von "Pfadflüssen" von der Quelle zur Senke beschreiben. Ein Pfadfluss ist ein Vierfacher der aus Folgendem besteht: Ein einfacher Pfad P von der Quelle zur Senke; Startzeit des Pfadflusses s ; Durchflussmenge durch den Weg a ; Durchsatzrate r .( S., s , a , r ) P s ein r
Es sei eine Lösung durch eine Menge von Pfadflüssen gegeben. Wir können überprüfen, ob die durch diese Pfadflüsse gegebene Lösung im Zeitpolynom in | korrekt ist F | und N :F | F| N
Nun müssen wir 'nur' zeigen, dass die Anzahl der Pfadflüsse in polynomial ist .N
Für eine gegebene Lösung können wir die Zeit bestimmen, zu der ein Fluss eine Kante passierte und wann die Kante zerstört wurde. Wandeln Sie dies in ein Problem mit einer äquivalenten Lösung um: Es gibt feste Grenzen an jeder Kante, wann sie verwendet werden kann und wann nicht - eine Start- und eine Endzeit. Lassen Sie bezeichnen die Menge all dieser Zeiten.{ t1, . . . , tk}
Betrachten Sie eine nicht kompakte Lösung und (anfangs) eine leere Menge von Pfadflüssen. Die Idee ist, dass wir iterativ einen Pfadfluss in der nicht kompakten Lösung finden, ihn entfernen und in unserem Satz von Pfadflüssen speichern.
Finden Sie Pfadflüsse, die zwischen und t j beginnen und enden , i < j, aber nicht zwischen t p und t q enden, so dass [ t p , t q ] ⊆ [ t i , t j ] . Lassen F i , j bezeichnet den Satz von Pfadflüsse zwischen t j und t j mit den Eigenschaften , wie oben beschrieben.tich tj i < j tp tq [ tp, tq] ⊆ [ tich, tj] Fich , j tj tj
Angenommen, wir haben bereits alle Pfadflüsse für alle kleineren Intervalle als . Finden Sie gierig Pfadflüsse, die in [ t i , t j ] beginnen und enden . Wenn wir einen finden, entfernen Sie diesen Fluss aus der Lösung und passen Sie die Durchsatzraten der Eckpunkte und die Menge des Flusses, der von der Quelle zur Senke gesendet wird, entsprechend an. Für diesen Pfadfluss maximieren wir den Durchsatz. Dies bedeutet, dass für mindestens eine Kante die maximale Durchsatzrate erreicht wurde oder nach dem Entfernen dieses Pfadflusses kein Fluss mehr über diese Kante stattfindet. Beachten Sie, dass dies für die Periode [ t i + 1 , t j gilt[ i , j ] [ tich, tj] . In beiden Fällen fließt kein Strom mehr durch diese Kante und wir können schließen, dass | F s , t | ≤m.[ ti + 1, tj - 1] | Fs , t| ≤m
(*) Warum ist die vorherige Behauptung richtig? Nun, jeder andere Pfadfluss in beginnt vor t i + 1 und endet nach t j - 1 . Daher müssen sie sich zeitlich so überlappen, dass sie eine bestimmte Kante nutzen. Da der Durchsatz für den Pfadfluss maximiert ist, muss es eine Kante geben, an der er dicht ist.Ftich, tj ti + 1 tj - 1
Daraus folgt , dass für eine Konstante c und die Behauptung, dass es in NP ist, folgt.∑i , j ∈ [ k ]| Fich , j| ≤c m3 c
quelle
So wie ich es verstehe, müssten Sie nur eine Nummer pro Bogen speichern, die den Moment darstellt, in dem der Fluss durch den Bogen gesendet wird. Dies setzt voraus, dass der Lichtbogen danach unbrauchbar wird. Wenn der Lichtbogen andernfalls nach Beendigung der Verwendung wieder verwendet werden kann, sollte er Lösungen enthalten, die im zeitlichen Verlauf beliebig nahe an den Lösungen für den maximalen Durchfluss liegen (da der Durchfluss möglicherweise für eine beliebig kurze Zeit unterbrochen und dann erneut gepumpt wird) ).
quelle