Shalmoli Gupta hat bereits erklärt, dass das allgemeine Problem NP-schwer ist. Deshalb habe ich mich entschlossen, zu untersuchen, ob irgendwelche Sonderfälle polynomiell lösbar sind. Schließlich fand ich eine Lösung für den Sonderfall von Mengen, die einen Baum repräsentieren, oder allgemeiner eine serielle parallele Reihenfolge durch Einbeziehung von Teilmengen, wobei alle unvergleichbaren Mengen disjunkt sind.
Eine Eigenschaft, die die Sache einfacher macht, ist, wenn die Liste der Mengen unter der Überschneidung geschlossen wird. Wenn ist, gibt es eine optimale Reihenfolge, in der s 1 vor s 2 steht . Wir können WLOG annehmen, dass die optimale Reihenfolge eine lineare Erweiterung der durch die Einbeziehung von Teilmengen gegebenen Teilreihenfolge ist.s1⊆ s2s1s2
Da alle Teilmengen einer Menge in der Reihenfolge davor erscheinen, bedeutet dies, dass der Betrag, der von einer gegebenen Menge zur laufenden Summe addiert wird, unabhängig davon, wo er erscheint, festgelegt ist. Wenn die Liste der Mengen ist, sind die zusätzlichen Kosten einer Menge die Anzahl der Elemente in s, die sich nicht in einer Teilmenge von s befinden, die in S erscheint . Wenn derselbe Satz in S mehrfach vorkommt , können wir beliebig einen auswählen, um zuerst zu beginnen und die anderen 0 kosten zu lassen.SSS
Dies bedeutet, dass das Problem dem Problem der minimalen gewichteten Abschlusszeit bei der Einzelmaschinenplanung mit Prioritätsbeschränkungen entspricht. In diesem Problem eine Reihe von Jobs mit Gewichten gegeben, und Zeiten t j , und eine partielle Ordnung auf dem Arbeits P , wollen wir eine Ordnung der Arbeit finden, der die gewichteten Gesamtausführungszeit minimiert, dhwjtjP
∑ni = 1wjich( ∑ichk = 1tjk)
vorbehaltlich der Präzedenzbedingungen . Das minimale kumulative Mengenproblem bei geschlossenen Mengen mit Überschneidungen kann dadurch behoben werden, dass für jede Menge ein Auftrag erstellt wird, bei dem jeder Auftrag das Gewicht 1 hat, die Zeit den oben definierten inkrementellen Kosten entspricht und P die Reihenfolge ist, die durch die Einbeziehung von Teilmengen angegeben wird.PP
Wie sich herausstellt, ist dieses Problem auch für allgemeines NP-schwer . Bestimmte Sonderformen von P können jedoch in der Polynomzeit gelöst werden.PP
In dieser Arbeit wird ein -Algorithmus für den Fall serieller paralleler Ordnungen P angegeben (der auch den wichtigen Fall von Bäumen einschließt). Leider konnte ich nicht auf dieses Papier zugreifen, und ich beschloss, es selbstständig neu zu erfinden. Folgendes habe ich mir ausgedacht.O ( n l o gn )P
Um dieses Problem zu lösen, sind mehrere Beobachtungen erforderlich.
Erstens besteht die optimale Lösung in Abwesenheit von Prioritätsbeschränkungen darin, die Jobs einfach in der Reihenfolge zu sortieren, in der t j erhöht wird . Der Einfachheit halber beziehe ich mich hier auf den Wert des Jobs, abgekürzt mitv(j). Beachten Sie, dasses unmöglich ist, diese Komplexität zuübertreffen, da die SortierungO(nlogn)ist.tjwjv ( j )O ( n l o gn )
Regel 1 Sei und b Jobs, so dass a < b ∈ P und b a abdecken. Wenn v ( a ) < v ( b ) ist , können wir die Bedingung a < b fallen lassen, ohne die optimale Reihenfolge oder den objektiven Wert zu beeinflussen.einba < b ∈ Pv ( a ) < v ( b )a < b
bein
v ( a ) = v ( b )
v ( a ) ≤ v ( b )a < b
wc= wein+ wbtc= tein+ tbP
weintbca b
einbv ( a ) > v ( b )einb
a , x1, x2, … , BPxicheinbxix′v(x′)v(x′)≤v(a)x′av(x′)≥v(b)x′bv(a)<v(x′)<v(b)v(a)>v(b)
O(n2)PP
PP1P2C1C2PC2C1
PS1S2
O(n2)O(nlogn)
Insbesondere wenn ein Unterproblem nur Knoten enthält, bei denen die Prioritätsbeschränkungen der Reihenfolge der Werte entsprechen, können wir die Prioritätsbeschränkungen vollständig vergessen und nur die Werte betrachten. Dies wird durch dieselbe Invariante sichergestellt, die dafür gesorgt hat, dass die Lösungen im vorherigen Algorithmus nach Ketten sortiert sind.
Anstatt für jedes Teilproblem eine sortierte Kette zu berechnen, stellen wir die optimale Lösung für ein Teilproblem als ein Paar von Fibonacci-Heaps dar, einer ein Min-Heap und einer ein Max-Heap, die beide alle Jobs des Teilproblems enthalten. Dies bedeutet, dass wir das minimale oder maximale Element der Lösung in logarithmischer Zeit abrufen können.
PP
Für eine parallele Komposition führen wir einfach die Heap-Paare zusammen. Der neue Min-Heap ist die Zusammenführung des Min-Heaps aus jedem Unterproblem und ebenfalls mit dem Max-Heap. Beachten Sie, dass Fibonacci-Haufen in konstanter Zeit zusammengeführt werden können.
Sobald wir ein Heap-Paar haben, das die Lösung für das gesamte Problem darstellt, können wir die tatsächliche Lösungsreihenfolge finden, indem wir den Min-Heap herausnehmen, bis er leer ist. Danach machen wir alle Ersetzungen von Regel 2 rückgängig, um eine Lösung für das ursprüngliche Problem zu erhalten.
O(nlogn)