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


28

Пусть S множество натуральных чисел. Мы рассматриваем в частичном порядке делимости, т.е. . ПозволятьSs1≤s2⟺s1∣s2

α(S)=max{|V|∣V⊆S,V антицепь } .

Если мы рассмотрим задачу о сумме подмножеств, где мультимножество чисел находится в S , что мы можем сказать о сложности проблемы, связанной с α(S) ? Легко видеть, если α(S)=1 , тогда проблема проста. Обратите внимание, что это легко даже для более сложной задачи по ранцу, когда α(S)=1† .


† Решение последовательных задач о ранцах М. Хартманном и Т. Олмстедом (1993)


1
Вместо «отношения» я предлагаю использовать термины «частичный порядок». Кроме того, если подумать немного, проблема монет Фробениуса может быть актуальной (конечно, не уверен, хотя)
— Aryabhata

Ответы:


2

Эта проблема может быть решена за полиномиальное время с помощью линейного программирования, и это действительно верно для любого частичного порядка . Кстати, по индукции можно доказать, что для любого конечного множества частичного порядка существует конечное множество и биекция , такая что для всех .(S,≤)(S,≤)S′⊆Nf:S→S′s1,s2∈S,s1≤s2⇔f(s1)|f(s2)

Пусть множество , образованное цепями в . Напомним, что является цепью тогда и только тогда, когда все в ,CSCv,v′Cv≤v′ или v′≤v

Теперь создайте логическую переменную для каждого V ∈ S и булевой переменной у C для каждой цепи С . Мы можем написать следующую линейную программу ( P ) для нашей задачи: Max ∑ v ∈ S x v с учетом ∑ v ∈ C x v ≤ 1 , ∀ C ∈ Cxvv∈SyCC(P)

Max∑v∈Sxvsubject to∑v∈Cxv≤1,∀C∈Cxv∈{0,1},v∈S

и его двойной :(D)

Min∑C∈CyCsubject to∑C:v∈CyC≥1,∀v∈SyC∈{0,1},C∈C

Тогда задача нахождения минимального покрытия упорядоченного множества цепями является двойственной нашей задачей. Теорема Дилворта утверждает, что

Существует антицепь A и разбиение порядка на семейство P цепочек, так что число цепей в разбиении равно количеству A

что означает, что оптимальное решение этих двух задач совпадает: Opt(P)=Opt(D)

Пусть ( соответственно ( D ∗ ) ) будет релаксацией ( P ) ( соответственно ( D ) ), т.е. той же линейной программы, где все ограничения x v ∈ { 0 , 1 } ( соответственно y C ∈ { 0 , 1 } ) заменяются на x v ∈ [ 0 , 1 ] ( соответственно y(P∗) (D∗)(P) (D)xv∈{0,1} yC∈{0,1}xv∈[0,1] ). Пусть O p t ( P ∗ ) и O p t ( D ∗ ) - их оптимальные решения. Так как { 0 , 1 } ⊆ [ 0 , 1 ] имеем: O p t ( P ) ≤ O p t ( P ∗ )  и  O p t ( D ∗yC∈[0,1]Opt(P∗)Opt(D∗){0,1}⊆[0,1] и теорема о слабой двойственности устанавливает, что O p t ( P ∗ ) ≤ O p t ( D ∗ ), то, собрав все вместе, имеем: O p t ( P ) = O p t ( P ∗ ) = O p t ( D ∗ ) = O p t ( D )

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,s2∈Xs1≤s2s2≤s1X{v1,v2}


xxx

Спасибо за объяснение, почему экспоненциальное количество ограничений не является проблемой, а актуальность двойственности. Очень хорошо!
— DW
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.