Я использую эквивалентную формулировку user17410:
Вход: векторов X = { x 1 , … , x m } над { 0 , 1 } n , n является частью входного
вопроса. Вопрос: Существуют ли два разных подмножества A , B ⊆ X, таких что
∑ x ∈ A x = ∑ x ∈ B xnX={x1,…,xm}{0,1}nn
A,B⊆X
∑x∈Ax=∑x∈Bx
Доказательство твердости включает в себя множество промежуточных сокращений, которые следуют той же «цепочке», используемой для доказательства твердости стандартной задачи EQUAL SUBSET SUM:
X3C подмножество SUM ≤ РАЗДЕЛА ≤ четный-нечетный РАЗДЕЛА ≤ РАВНО SUBSET СУММА≤≤≤≤
(Я все еще проверяю это, так что это может быть неправильно :)
ШАГ 1
X={x1,…,xm}xi{0,1}ntA⊆X
∑x∈Ax=t
nY={y1,...,yn}CmC={C1,...,Cm}xi[j]=1jCit=[1,1,...1]
A,Bm{0,1}nA,Bx1...xmmax{xi}=O((mn)k)k
Например, набор векторов:
x1 2 1 0 1
x2 1 2 3 1
Эквивалентно 0-1 векторам:
x1 1 1 0 1 1 0 0 0 0
1 0 0 0 0 1 0 0 0
0 0 0 0 1 1 0 0 0
^ ^
+-- 0 elsewhere
x2 1 1 1 1 0 0 1 0 0
0 1 1 0 0 0 0 1 0
0 0 1 0 0 0 0 0 1
0 0 0 0 0 0 1 1 1
^ ^ ^
+-- 0 elsewhere
AABmn
Таким образом, следующая проблема является NP-полной.
ШАГ 3
B={x1,…,xm}xi{0,1}nXB1,B2
∑x∈B1x=∑x∈B2x
X={x1,…,xm}tS=∑xiXb′=−t+2Sb′′=t+SB=X∪{b′,b′′}
( ) Предположим, что существует такой, что ; мы устанавливаем и ; мы имеем
⇒A⊆X∑x∈Ax=tB1=A∪{b′}B2=B∖B1=X∖{A}∪{b′′}
∑x∈B1=b′+∑x∈Ax=t−t+S=2S
∑x∈B2=b′′+∑x∈X∖Ax=b′′+S−∑x∈Ax=2S
( ) Предположим, что и имеют равную сумму. не могут оба принадлежать одному и тому же набору (в противном случае их сумма равна и не может быть "сбалансирована" элементами в другом наборе). Предположим, что ; у нас есть:⇐B1B2b′,b′′≥3Sb′=−t+2S∈B1
−t+2S+∑x∈B1∖{b′}x=t+S+∑x∈B2∖{b′′}x
Следовательно, мы должны иметь а является правильным решением для 0-1 VECTOR SUM.∑x∈B1∖{b′}x=tB1∖{b′}
Мы допускаем только 0-1 векторов в множестве , поэтому векторы должны быть «представлены в унарном виде», как показано в ШАГЕ 2.Bb′,b′′
ШАГ 3
Проблема по-прежнему NP-полная, если векторы нумеруются из и два подмножества должны иметь одинаковый размер, и мы требуем, чтобы содержал ровно один из для (таким образом, из-за ограничения равного размера, другой элемент пары должен быть включен в ) ( 0-1 ВЕКТОР-ДАЖЕ-РАЗДЕЛЕНИЕ РАЗДЕЛА ).x1,...,x2nX1,X2X1x2i−1,x2i1≤i≤nX2
Доказательство:: Сокращение от 0-1 VECTOR PARTITION и аналогично уменьшению от PARTITION к EVEN-ODD PARTITION. Если - это векторов более замените каждый вектор двумя векторами более :X={x1,...,xm}m{0,1}n{0,1}2n+2m
1 2 n
--------------------
x_i b_1 b_2 ... b_n
becomes:
1 2 ... 2i ... 2m
--------------------------
x'_2i-1 0 0 ... 1 ... 0 b_1 b_2 ... b_n 0 0 ... 0
x'_2i 0 0 ... 1 ... 0 0 0 ... 0 b_1 b_2 ... b_n
Из-за элемента векторы и не могут содержаться в одном и том же подмножестве; и правильное решение 0-1 ВЕКТОРНОГО РАЗДЕЛА ВЕКТОРА соответствует действительному решению исходного 0-1 ВЕКТОРНОГО РАЗДЕЛА (просто выберите элементы 2m + 1..2m + n каждого вектора решения, отбрасывая векторы, которые содержат все нули в этих позициях).2ix′2i−1x′2i
ШАГ 4
0-1 ВЕКТОРНАЯ РАВНОВЕСНАЯ СУБСЕТНАЯ СУММА (проблема в вопросе) является NP-полной: сокращение от 0-1 ВЕКТОРНОГО РАЗДЕЛЕНИЯ ДАЖЕ-СТОЛБОВ аналогично сокращению от СОБСТВЕННОГО РАЗДЕЛЕНИЯ ДАЖЕ К ОБРАЗНОЙ СУБСЕТЕ, что доказано Герхардом Дж. Вёгингером , Zhongliang Ю., о проблеме равного подмножества суммы : дан упорядоченное множество из векторов над , мы строим множество из векторов над .A={x1,...,x2m}2m{0,1}nY3m{0,1}2m+n
Для каждого вектора мы строим вектор над следующим образом:x2i−1,1≤i≤my2i−1{0,1}2m+n
1 2 ... i i+1 ... m m+1 m+2 ... m+i ... 2m 2m+1 ... 2m+n
------------------------------------------------------
0 0 ... 2 0 ... 0 0 0 1 0 x_{2i-1}
Для каждого вектора мы строим вектор над следующим образом:x2i,1≤i≤m−1y2i{0,1}2m+n
1 2 ... i i+1 ... m m+1 m+2 ... m+i ... 2m 2m+1 ... 2m+n
------------------------------------------------------
0 0 ... 0 2 ... 0 0 0 1 0 x_{2i}
Мы отображаем элемент вx2m
1 2 ... ... m m+1 m+2 ... . 2m 2m+1 ... 2m+n
------------------------------------------------------
2 0 ... ... 0 0 0 1 x_{2m}
Наконец, мы добавляем фиктивных элементов:m
1 2 ... ... m m+1 m+2 ... ... 2m 2m+1 ... 2m+n
------------------------------------------------------
4 0 ... ... 0 0 0 0 0 ... 0
0 4 ... ... 0 0 0 0 0 ... 0
...
0 0 ... ... 4 0 0 0 0 ... 0
Еще раз отметим, что векторы, содержащие значения могут быть представлены «унарно» с использованием группы из 0-1 векторов, как показано в ШАГЕ 2.>1
Y имеет два непересекающихся подмножества имеющих равную сумму тогда и только тогда, когда имеет четно-нечетное разбиение. Y1,Y2X