Проблема суми підмножини з багатьма умовами поділу


28

Нехай - множина натуральних чисел. Ми розглядаємо за частковим порядком подільності, тобто . ДозволяєSSs1s2s1s2

α(S)=max{|V|VS,V антіцепь } .

Якщо ми розглянемо проблему підмножини підсумків, де є множина чисел у S , що можна сказати про складність задачі, пов'язаної з α(S) ? Неважко зрозуміти, якщо α(S)=1 , то проблема проста. Зверніть увагу, що це навіть легше для проблеми з рюкзаком, коли α(S)=1 .


Розв’язування послідовних задач з рюкзаком М. Хартмана та Т. Олмстеда (1993)


1
Замість "відношення" пропоную використовувати терміни "часткове замовлення". Також, при мінімальних роздумах, проблема монети Frobenius може бути актуальною (звичайно, не впевнений)
Aryabhata

Відповіді:


2

Цю задачу можна вирішити в поліноміальний час за допомогою лінійного програмування, і це фактично справедливо для будь-якого часткового порядку (S,) . До речі, ми можемо довести за допомогою індукції, що для будь-якого набору кінцевих часткових порядків (S,) існує кінцевий набір SN і біекція f:SS , така що для всіх s1,s2S,s1s2f(s1)|f(s2) .

Нехай C безліч , утворене ланцюгами в S . Нагадаємо, що C - це ланцюг iff для всіх v,v в C , vv або vv

Тепер створіть логічний змінну для кожного , і булевої змінної для кожної ланцюга . Ми можемо написати наступну лінійну програму для нашої проблеми: xvvSyCC(P)

MaxvSxvsubject tovCxv1,CCxv{0,1},vS

і його подвійний :(D)

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

Тоді проблема пошуку мінімальної кришки упорядкованого набору ланцюгами є подвійною нашою проблемою. Теорема Ділворта стверджує, що

Існує античін А та розподіл порядку в сімействі P ланцюгів, таким чином, що кількість ланцюгів у перегородці дорівнює кардинальності A

що означає, що оптимальне рішення цих двох завдань відповідає:Opt(P)=Opt(D)

Нехай ( респ. ) - це релаксація ( відповідно. ), тобто тієї ж лінійної програми, де всі обмеження ( респ. ) замінюються на ( відповідно ). Нехай і є їх оптимальними рішеннями. Оскільки маємо: та слабку подвійність теорема встановлює, що(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)то, склавши все, ми маємо:
Opt(P)=Opt(P)=Opt(D)=Opt(D)

Тоді, використовуючи метод Еліпсоїда , ми можемо обчислити ( ) за багаточлен. Існує експоненціальна кількість обмежень, але існує оракул поділу багаточленного часу. Дійсно, давши рішення , ми можемо перерахувати всі пари і перевірити, чи або , а тому вирішимо в поліноміальний час, чи є можливим чи інакше обмеженням, пов'язаним з ланцюгом порушено.Opt(P)=Opt(P)Xs1,s2Xs1s2s2s1X{v1,v2}


Еліспоїдний метод працює незалежно від кількості обмежень, якщо у нас є (1) поліноміальне число змінних і (2) оракул розділення, який дав будь-яке рішення за поліноміальний час вирішує, чи є можливим, або знайти обмеження, порушені . Я рекомендую прочитати [ www-math.mit.edu/~goemans/18433S09/ellipsoid.pdf] , у цьому питанні не дуже зрозуміла вікіпедіяxxx
Матьє Марі

Дякую за пояснення, чому експоненціальна кількість обмежень не є проблемою, а актуальністю подвійності. Дуже хороша!
DW
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.