Biarkan menjadi satu set bilangan alami. Kami menganggap dalam urutan parsial yang dapat dibagi, yaitu . Membiarkan
barangantik.
Jika kita mempertimbangkan masalah jumlah bagian di mana multiset angka berada di , apa yang bisa kita katakan tentang kompleksitas masalah yang terkait dengan ? Sangat mudah untuk melihat apakah , maka masalahnya mudah. Perhatikan mudah bahkan untuk masalah ransel yang lebih sulit ketika † .
Memecahkan masalah ransel berurutan oleh M. Hartmann dan T. Olmstead (1993)
Jawaban:
Masalah ini dapat diselesaikan dalam waktu polinomial menggunakan pemrograman linier, dan ini sebenarnya berlaku untuk urutan parsial apa pun . Ngomong-ngomong, kita dapat membuktikan dengan induksi bahwa untuk setiap set urutan parsial terbatas (S, \ le) , terdapat himpunan terhingga S '\ subseteq \ mathbb {N} dan sebuah bijection f: S \ rightarrow S' , sehingga untuk semua s_1, s_2 \ dalam S, s_1 \ le s_2 \ Leftrightarrow f (s_1) | f (s_2) .( S , ≤ ) S ′ ⊆ N f : S → S ′ s 1 , s 2 ∈ S , s 1 ≤ s 2 ⇔ f ( s 1 ) | f ( s 2 )(S,≤) (S,≤) S′⊆N f:S→S′ s1,s2∈S,s1≤s2⇔f(s1)|f(s2)
Mari adalah himpunan yang dibentuk oleh rantai di . Ingatkan bahwa adalah sebuah rantai iff untuk semua dalam , atau S C v , v ′ C v ≤ v ′ v ′ ≤ vC S C v,v′ C v≤v′ v′≤v
Sekarang membuat variabel boolean untuk setiap , dan variabel boolean untuk setiap rantai . Kita dapat menulis program linear berikut untuk masalah kita: v ∈ S y C C ( P ) Max Σ v ∈ S x v tunduk Σ v ∈ C x v ≤ 1 , ∀ C ∈ Cxv v∈S yC C (P)
dan dual :(D)
Maka masalah menemukan penutup minimum dari rangkaian yang diatur oleh rantai adalah dua dari masalah kita. Teorema Dilworth menyatakan itu
Ada antichain A, dan partisi ordo menjadi keluarga P rantai, sehingga jumlah rantai dalam partisi sama dengan kardinalitas A
yang berarti bahwa solusi optimal dari kedua masalah ini cocok:Opt(P)=Opt(D)
Misalkan ( resp. ) menjadi pelonggaran ( resp. ) yaitu program linier yang sama di mana semua kendala ( resp. ) diganti oleh ( resp. ). Biarkan dan menjadi solusi optimal mereka. Karena kita memiliki: dan lemahnya kualitas teorema menetapkan bahwa(P∗) (D∗) (P) (D) xv∈{0,1} yC∈{0,1} xv∈[0,1] yC∈[0,1] Opt(P∗) Opt(D∗) {0,1}⊆[0,1]
Kemudian, menggunakan metode Ellipsoid , kita dapat menghitung ( ) dalam waktu polinomial. Ada sejumlah kendala eksponensial tetapi ada oracle pemisahan waktu polinomial. Memang diberi solusi , kami dapat menghitung semua pasangan dan memeriksa apakah atau , dan karenanya memutuskan dalam waktu polinomial apakah layak atau kendala yang terkait dengan rantai dilanggar.= O p t ( P ) X s 1 , s 2 ∈ X s 1 ≤ s 2 s 2 ≤ s 1 X { v 1 , v 2 }Opt(P∗) =Opt(P) X s1,s2∈X s1≤s2 s2≤s1 X {v1,v2}
sumber