Niech będzie zbiorem liczb naturalnych. Rozważamy w częściowej kolejności podzielności, tj. . Pozwolić
an antichain .
Jeśli weźmiemy pod uwagę problem sumy podzbioru, w którym wieloseksem liczb jest , to co możemy powiedzieć o złożoności problemu związanego z ? Łatwo jest sprawdzić, czy , wtedy problem jest łatwy. Zauważ, że jest to łatwe nawet dla trudniejszego problemu plecakowego, gdy .
Rozwiązywanie kolejnych problemów plecakowych M. Hartmanna i T. Olmsteada (1993)
Odpowiedzi:
Problem ten można rozwiązać w czasie wielomianowym za pomocą programowania liniowego, i jest to prawdą w przypadku dowolnego rzędu częściowego . Nawiasem mówiąc, możemy udowodnić przez indukcję, że dla dowolnego skończonego zbioru częściowego rzędu ( S , ≤ ) istnieje zbiór skończony S ′ ⊆ N i bijectcja f : S → S ′ , taka, że dla wszystkich s 1 , s 2 ∈ S , s 1 ≤ s 2 ⇔ f ((S,≤) (S,≤) S′⊆N f:S→S′ .s1,s2∈S,s1≤s2⇔f(s1)|f(s2)
Niech się zestaw utworzony przez łańcuchy w S . Przypomnij, że C jest łańcuchem iff dla wszystkich v , v ′ w C , v ≤ v ′ lub v ′ ≤ vC S C v,v′ C v≤v′ v′≤v
Teraz utworzyć zmiennej logicznej każdego v ∈ S oraz zmiennej logicznej a C każdego łańcucha C . Możemy napisać następujący program liniowy ( P ) dla naszego problemu: Max ∑ v ∈ S x v z zastrzeżeniem ∑ v ∈ C x v ≤ 1 , ∀ C ∈ Cxv v∈S ydo do ( P)
i jego dual :( D )
Zatem problem znalezienia minimalnego pokrycia zamówionego zestawu przez łańcuchy jest podwójny naszego problemu. Twierdzenie Dilwortha stwierdza, że
Istnieje antychaina A i podział rzędu na rodzinę P łańcuchów, tak że liczba łańcuchów w podziale jest równa liczności A
co oznacza, że optymalne rozwiązanie tych dwóch problemów jest zgodne:O p t ( P) = O p t ( D )
Niech ( odpowiednio. ( D ∗ ) ) będzie relaksacją ( P ) ( odpowiednio. ( D ) ), tj . Tego samego programu liniowego, w którym wszystkie ograniczenia x v ∈ { 0 , 1 } ( odpowiednio. Y C ∈ { 0 , 1 } ) zastępuje się x v ∈ [ 0 , 1 ] ( odpowiednio y( P∗) ( D∗) ( P) ( D ) xv∈ { 0 , 1 } ydo∈ { 0 , 1 } xv∈ [ 0 , 1 ] ). Niech O p t ( P ∗ ) i O p t ( D ∗ ) będą ich optymalnymi rozwiązaniami. Od { 0 , 1 } ⊆ [ 0 , 1 ] mamy:
O p t ( P ) ≤ O p t ( P ∗ ) i O p t ( D ∗ydo∈ [ 0 , 1 ] O p t ( P∗) O p t ( D∗) { 0 , 1 } ⊆ [ 0 , 1 ]
i twierdzenie o słabej dualności ustala, że O p t ( P ∗ ) ≤ O p t ( D ∗ ), a następnie łącząc wszystko, mamy:
O p t ( P ) = O p t ( P ∗ ) = O p t ( D ∗ ) = O p t ( D )
źródło