Я хотел бы задокументировать некоторый частичный прогресс - казалось бы, многообещающий - к алгоритму полиномиального времени. ОБНОВЛЕНИЕ : добавлены некоторые детали, чтобы учесть глюк, отмеченный @David (спасибо!).
Подход заключается в том, чтобы свести это к экземпляру CSP-серверов MIN-ONES EVEN-3 (MOEC), что является проблемой, решаемой за полиномиальное время. Доказательство сокращения немного нечетко, но я надеюсь, что оно существует!
Экземпляр MOEC - это семейство мерных подмножеств множества переменных и целое число k . Вопрос в том, существует ли удовлетворительное назначение веса не более k , где назначение - это функция от юниверса до { 0 , 1 } , вес назначения - это число переменных, которым оно присваивает одну, и назначение удовлетворяющий, если для каждого подмножества переменных { x , y , z } присваивание (скажем, f ) имеет свойство, которое:3КК{ 0 , 1 }{ х , у, z}е
.е( х ) + ф( у) + f( з) = 0 ( т о д 2 )
Вы можете представить это как 3-SAT с другим понятием удовлетворенности - выберите ни одного или два. Я буду немного небрежен в отношении примера MOEC в том смысле, что я учту, кроме обычных подмножеств, последствия, дизъюнкции длины два и ограничение ( x = 1 ) . Я считаю, что эти простые дополнения сохранят проблему за полиномиальное время.3( х = 1 )
Допустим, мы уменьшаем проблему цепочки сложений для числа . Переменная, установленная для этого сокращения, следующая:N
Для каждого переменная N i . Я переписать переменную N п , как N . Для каждой пары i , j такой, что 1 ≤ i , j ≤ k , введите переменные P i j и Q i j . 1 ≤ i ≤ nNiNnNi,j1≤i,j≤kPijQij
Введем следующие подмножества для каждого такого что k = i + j :i,j,kk=i+j
{Pij,Qij,Nk}
и следующие последствия:
и
P i j ⇒ N jPij⇒NiPij⇒Nj
и следующие ограничения:
.(N1=1),(N=1)
PNPiji+jN
Итак, позвольте мне изложить общий способ сказать, учитывая набор переменных:
(X,l1,l2,…,lt)
Xli
(Nk,{Pij | i+j=k})
TXtTdi1≤d≤logt1≤i≤L(d)L(d)TXd
Tdipq
{Tdi,p,q}
Это означает, что если переменная, соответствующая узлу, установлена в значение true, то точно один из его дочерних элементов также должен быть установлен в значение true. Теперь добавьте значения:
(X⇒T11)(dlogt,j)⇒lj
Эта комбинация ограничений и последствий EVEN-3 эквивалентна ограничению, которое мы хотели закодировать.
NiNNPijNiNjPij(r,s)(r′,s′)PQNiPij
ffNiNikNkik,jkik+jk=jfPikjkQikjk(i,j)i≠ikj≠jki+j=kfQijPijki,ji+j=kQijPijNi(i,j)
ttQxxв любом случае происходит в более длинной цепочке, а остальные сравниваются благоприятно. Тем не менее, я должен тщательно это записать, и, возможно, я просто вижу вещи с синдромом после полуночи!