Gegeben ein 3CNF mit Klauseln für Variablen x 1 , … , x n . Angenommen , sowohl x i und ¯ x i in der Formel erscheinen für höchstens k i mal jeweils.ϕ1,…,ϕkx1,…,xnxichxi¯¯¯¯¯ki
Wir entwerfen einen farbigen DAG dessen Eckpunkte aus drei Teilen bestehen:G
- "Zuordnung" Eckpunkten und ˉ v i ( j ) , 1 ≤ i ≤ n , 1 ≤ j ≤ k i . Farbe v i ( j ) mit der "Farbe" x i ( j ) und ˉ v i ( j ) mit ¯ x i ( j ) .vi(j)v¯i(j)1≤i≤n1≤j≤kivi(j)xi(j)v¯i(j)xi¯¯¯¯¯(j)
- "Klausel" -Scheitelpunkte , 1 ≤ i ' ≤ k , j ' = 1 , 2 , 3 . Farb w i ' ( j ' ) mit der Farbe x i ( j ) (oder ¯ x i ( j ) ) , wenn ¯ x i (oder x i , resp.) Ist die j 'wi′(j′)1≤i′≤kj′=1,2,3wi′(j′)xi(j)xi¯¯¯¯¯(j)xi¯¯¯¯¯xij′-te Literal von Klausel , und es ist die j -te Klausel, die dieses Literal enthält.ϕi′j
- "Schneide" Eckpunkte . Färben Sie sie mit anderen Farben als oben.s=s0,s1,…,sn,sn+1,…sn+k=t
Die Kanten umfassen:
- , v i ( j ), v i ( j + 1 ) , v i ( k i ), s i ;si−1vi( 1 )vich( j ) vich( j + 1 )vich( kich) sich
- , ≤ v i ( j ) ≤ v i ( j + 1 ) , ≤ v i ( k i ) s i ;si - 1v¯ich( 1 )v¯ich( j ) v¯ich( j + 1 )v¯ich( kich) sich
- und , w i ' ( j ' ) s n + i ' .sn + i′- 1wich′( j′)wich′( j′) sn + i′
Zum Beispiel aus dem 3CNF
Das folgende Diagramm aufgebaut ist (die Kantenrichtung von links nach rechts) ist.
( x1∨ x2∨ x3¯¯¯¯¯) ∧ ( x1∨ x2¯¯¯¯¯∨ x3)
Nun ist es nicht schwer zu erkennen, dass der ursprüngliche 3CNF genau dann zufriedenstellend ist, wenn es in G einen - t - Pfad mit verschiedenen Scheitelfarben gibt .stG
(Übrigens ist es ein Nebenprodukt, dass das Vorhandensein von - t path mit verschiedenen Scheitelfarben in farbiger DAG NP-schwer ist . Ich habe in rechnerischer Hinsicht nicht viele Literatur zu diesem Problem gefunden. Wenn Sie wissen, bitte Kommentar!)stNP-schwer
Wie ist also die Beziehung zwischen dem Problem von und OP? Intuitiv werden wir eine Matrix h entwerfen , so dass jede Farbe einer Zeile (die eine Person ist) und die Kanten aufeinanderfolgenden Spalten (Zeitschlitzen) zugeordnet werden. Eine maximale Einteilung, die in der Matrix grundsätzlich von links nach rechts verläuft, entspricht daher einem s - t - Pfad.Ghst
Unsere Matrix hat 2 n + 1 + ∑ i 2 k i + k Spalten mit Indizes ab 0 . In der folgenden constrcution X ein Y sind zwei Werte erfüllen 1 « X « Y . Die Verhältnisse X / 1 , Y / X können große Potenzen von k und n sein . Sei K i = 2 i + 2 ∑ i jh2n+1+∑i2ki+k0XY1≪X≪YX/1,Y/ Xkn.Kich= 2 i + 2 ∑ichj = 1kich
- Für jeden , 0 ≤ i ≤ n , lassen h ( s i , K i ) = h ( s i , K i - k i - 1 ) = h ( s i , K i + k i + 1 + 1 ) = Y (falls die Koordinate existiert, siehe unten).sich0 ≤ i ≤ nh ( sich, Kich) = h ( sich, Kich- kich- 1 ) = h ( sich, Kich+ ki + 1+1)=Y
- Für jedes sei h ( x i ( j ) , K i - 1 + j ) = X ; Für jede ¯ x i ( j ) sei h ( ¯ x i ( j ) , K i - 1 + k i + 1 + j ) = X .xi(j)h(xi(j),Ki−1+j)=Xxi¯¯¯¯¯(j)h(xi¯¯¯¯¯(j),Ki−1+ki+1+j)=X
- Für jedes , 1 ≤ i ' ≤ k und ein Literal x in der Klausel ϕ i ' sei h ( x , K n + i ' ) = 1 .ϕi′1≤i′≤kxϕi′h(x,Kn+i′)=1
- Alle anderen Einträge sind 0.
Für das obige Beispieldiagramm lautet die entsprechende Matrix beispielsweise
Nun behaupten wir: Der ursprüngliche 3CNF ist genau dann erfüllbar, wenn der Maximalwert .(2n+1)Y+∑ikiX+k
Berücksichtigen Sie die Planung, die den Maximalwert erreicht. Da es in h genau Spalten gibt, die Y enthalten , sollten alle abgedeckt werden. Nehmen wir für die Spalte K i + k i + 1, die zwei Möglichkeiten von Y hat , an, dass die Planung sie s i zuweist . Da Spalte K i zu s i zugeordnet werden muss, müssen wir durch die Aufeinanderfolge die Spalten K i + 1 zu K i + k verlieren(2n+1)hYKi+ki+1YsichKichsichKich+ 1 . Die gleichen Dinge passieren, wenn die Planung die Spalte K i + k i + 1 zu s i + 1 zuweist .Kich+ kichKich+ kich+ 1si + 1
Um den Wert , müssen wir daher alle übrigen verfügbaren X in der Matrix auswählen , was einer Zuweisung für Variablen entspricht. Der Restwert von k ist also nur dann erreichbar, wenn die Zuweisung alle Klauseln erfüllt.∑ichkichXXk
Zusammenfassend lässt sich sagen, dass die Entscheidung über den Maximalwert einer gesetzlichen Terminplanung in fällt . Vielleicht ist dies der Grund, warum alle unsere vorherigen Versuche, einen Algorithmus zu finden, fehlgeschlagen sind.NP-schwer