Subset jumlah masalah dengan banyak kondisi keterbagian

28

Biarkan S menjadi satu set bilangan alami. Kami menganggap S dalam urutan parsial yang dapat dibagi, yaitu s1s2s1s2 . Membiarkan

α(S)=max{|V|VS,V barangantik}.

Jika kita mempertimbangkan masalah jumlah bagian di mana multiset angka berada di S , apa yang bisa kita katakan tentang kompleksitas masalah yang terkait dengan α(S) ? Sangat mudah untuk melihat apakah α(S)=1 , maka masalahnya mudah. Perhatikan mudah bahkan untuk masalah ransel yang lebih sulit ketika α(S)=1 .


Memecahkan masalah ransel berurutan oleh M. Hartmann dan T. Olmstead (1993)

Chao Xu
sumber
1
Alih-alih "hubungan", saya sarankan menggunakan istilah "perintah parsial". Juga, dengan pemikiran minimal, masalah koin Frobenius mungkin relevan (tentu saja, tidak yakin, meskipun)
Aryabhata

Jawaban:

2

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 2S , s 1s 2f ( s 1 ) | f ( s 2 )(S,)(S,)SNf:SSs1,s2S,s1s2f(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 vCSCv,vCvvvv

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 v1 , C CxvvSyCC(P)

MaxvSxvsubject tovCxv1,CCxv{0,1},vS

dan dual :(D)

MinCCyCsubject toC:vCyC1,vSyC{0,1},CC

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]

Opt(P)Opt(P) and Opt(D)Opt(D)
Opt(P)Opt(D)maka dengan menyatukan semuanya kita memiliki:
Opt(P)=Opt(P)=Opt(D)=Opt(D)

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 2X s 1s 2 s 2s 1 X { v 1 , v 2 }Opt(P)=Opt(P)Xs1,s2Xs1s2s2s1X{v1,v2}

Mathieu Mari
sumber
Metode Ellispoid bekerja berapa pun jumlah kendala, jika kita memiliki (1) jumlah variabel variabel dan (2) oracle pemisahan yang diberikan solusi memutuskan dalam waktu polinom apakah layak atau menemukan kendala dilanggar oleh . Saya sarankan membaca [ www-math.mit.edu/ ~ goemans / 18433S09 / ellipsoid.pdf] , wikipedia tidak begitu jelas mengenai hal inix xxxx
Mathieu Mari
Terima kasih telah menjelaskan mengapa jumlah kendala eksponensial bukanlah masalah, dan relevansi dualitas. Sangat bagus!
DW