Problem sumy podzbiorów z wieloma warunkami podzielności


28

Niech S. będzie zbiorem liczb naturalnych. Rozważamy S. w częściowej kolejności podzielności, tj. . Pozwolićs1≤s2)⟺s1∣s2)

α(S.)=max{|V.|∣V.⊆S.,V. 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 .S.α(S.)α(S.)=1α(S.)=1†


† Rozwiązywanie kolejnych problemów plecakowych M. Hartmanna i T. Olmsteada (1993)


1
Zamiast „relacji” sugeruję użycie terminów „częściowa kolejność”. Również na minimalnym myśli, problem moneta Frobenius może być istotne (oczywiście, nie wiem, choć)
— Aryabhata

Odpowiedzi:


2

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′⊆Nf: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 ′ ≤ vCSCv,v′Cv≤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 ∈ Cxvv∈Sydodo(P.)

Max∑v∈S.xvz zastrzeżeniem∑v∈doxv≤1,∀do∈doxv∈{0,1},v∈S.

i jego dual :(re)

Min∑do∈doydoz zastrzeżeniem∑do:v∈doydo≥1,∀v∈S.ydo∈{0,1},do∈do

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: Opt(P.)=Opt(re)

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.∗) (re∗)(P.) (re)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]Opt(P.∗)Opt(re∗){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 )

Opt(P.)≤Opt(P.∗) i Opt(re∗)≤Opt(re)
Opt(P.∗)≤Opt(re∗)
Opt(P.)=Opt(P.∗)=Opt(re∗)=Opt(re)

Opt(P.∗)=Opt(P.)Xs1,s2)∈Xs1≤s2)s2)≤s1X{v1,v2)}


xxx

Dziękujemy za wyjaśnienie, dlaczego wykładnicza liczba ograniczeń nie stanowi problemu, oraz znaczenie dwoistości. Bardzo dobrze!
— DW
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.