Sei eine Menge natürlicher Zahlen. Wir betrachten unter der Teilbarkeits-Teilordnung, dh . Lassen
an antichain .
Was können wir über die Komplexität des Problems in Bezug auf \ alpha (S) sagen, wenn wir das Teilmengen-Summenproblem betrachten, bei dem sich die Mehrfachmenge von Zahlen in befindet ? Es ist einfach zu sehen, ob \ alpha (S) = 1 ist , dann ist das Problem einfach. Beachten Sie, dass es auch für das schwierigere Rucksackproblem einfach ist, wenn \ alpha (S) = 1 \ Dolch ist .
Sequentielle Rucksackprobleme lösen von M. Hartmann und T. Olmstead (1993)
Antworten:
Dieses Problem kann in Polynomialzeit durch lineare Programmierung gelöst werden, und dies gilt tatsächlich für jede Teilordnung(S,≤) . Übrigens können wir durch Induktion beweisen, dass es für jede endliche Teilordnungsmenge (S,≤) eine endliche Menge S′⊆N und eine Bijektion f:S→S′ , so dass für alle s1,s2∈S,s1≤s2⇔f(s1)|f(s2) .
SeiC die Menge, die durch die Ketten in S . Denken Sie daran, dass C eine Kette iff für alle v,v′ in C , v≤v′ oder v′≤v
Erstellen für jedes eine boolesche Variable für jede Kette eine boolesche Variable . Wir können das folgende lineare Programm für unser Problem schreiben :xv v∈S yC C (P)
und sein Dual :(D)
Dann ist das Problem, die minimale Deckung eines bestellten Satzes durch Ketten zu finden, das Doppelte unseres Problems. Der Satz von Dilworth besagt das
Es gibt eine Antikette A und eine Aufteilung der Ordnung in eine Familie P von Ketten, so dass die Anzahl der Ketten in der Aufteilung der Kardinalität von A entspricht
was bedeutet, dass die optimale Lösung dieser beiden Probleme übereinstimmt:Opt(P)=Opt(D)
Sei ( bzw. ) die Relaxation von ( bzw. ), dh dasselbe lineare Programm, in dem alle Bedingungen ( bzw. ) werden durch ( bzw. ) ersetzt. Sei und ihre optimale Lösung. Seit wir: und schwache Dualität Theorem legt fest, dass(P∗) (D∗) (P) (D) xv∈{0,1} yC∈{0,1} xv∈[0,1] yC∈[0,1] Opt(P∗) Opt(D∗) {0,1}⊆[0,1]
Dann können wir mit der Ellipsoidmethode ( ) in Polynomzeit berechnen. Es gibt eine exponentielle Anzahl von Einschränkungen, aber es gibt ein Polynom-Zeittrennungs-Orakel. In der Tat können wir bei gegebener Lösung alle Paare aufzählen und prüfen, ob oder , und daher in polynomieller Zeit entscheiden, ob durchführbar ist oder auf andere Weise die mit der Kette verbundene Beschränkung ist verletzt.Opt(P∗) =Opt(P) X s1,s2∈X s1≤s2 s2≤s1 X {v1,v2}
quelle