Chciałbym udokumentować pewne częściowe postępy - na pozór obiecujące - w kierunku algorytmu wielomianowego czasu. AKTUALIZACJA : Dodano pewne szczegóły dotyczące usterki wskazanej przez @David (dzięki!).
Podejście polega na zredukowaniu tego do wystąpienia CSP MIN-ONES EVEN-3 (MOEC), który okazuje się być rozwiązaniem problemu wielomianowego. Dowód redukcji jest trochę niewyraźny, ale mam nadzieję, że istnieje!
Instancja MOEC to rodzina -sized podzbiorów wszechświecie zmiennych i liczb całkowitych k . Pytanie brzmi, czy istnieje zadowalające przypisanie wagi co najwyżej k , gdzie przypisanie jest funkcją wszechświata do { 0 , 1 } , waga przypisania jest liczbą zmiennych, które przypisuje jednej, a przypisanie jest spełniające, jeśli dla każdego podzbioru zmiennych { x , y , z } przypisanie (powiedzmy f ) ma właściwość, która:3kk{0,1}{x,y,z}f
.f(x)+f(y)+f(z)=0(mod 2)
Możesz to sobie wyobrazić jako 3-SAT z innym pojęciem satysfakcji - wybierz brak lub wybierz dwa. Będę trochę rozluźniony w związku z wystąpieniem MOEC, ponieważ pozwolę, oprócz zwykłych podzbiorów, implikacji, rozbieżności długości drugiej i ograniczenia ( x = 1 ) . Wierzę, że te proste dodatki utrzymają problem wielomianowy czas.3(x=1)
Powiedzmy, że zmniejszamy problem łańcucha dodatków dla liczby . Zmienna ustawiona dla tej redukcji jest następująca:n
Dla każdego zmienna N i . I ponownie zapisu zmiennej N n a N . Dla każdej pary i , j takiej, że 1 ≤ i , j ≤ k , wprowadź zmienne P i j i Q i j . 1≤i≤nNiNnNi,j1≤i,j≤kPijQij
Wprowadź następujące podzbiory dla każdego tak aby k = i + j :i,j,kk=i+j
{Pij,Qij,Nk}
i następujące implikacje:
i
P i j ⇒ N jPij⇒NiPij⇒Nj
oraz następujące ograniczenia:
.(N1=1),(N=1)
Wreszcie, musimy dodać ograniczenia, które zapewnią, że przynajmniej jedna z zmiennych zostanie wybrana, gdy przypisana zostanie „odpowiadająca” zmienna N (wybacz nadużycie notacji). Można tego dokonać dodając zwykłe ograniczenie OR do wszystkich P i j, tak że i + j sumuje się do danej zmiennej N. Musimy jednak znaleźć sposób na ponowne zakodowanie tego w ramach MOEC.PNPiji+jN
Pozwólcie, że nakreślę ogólny sposób powiedzenia, biorąc pod uwagę zestaw zmiennych:
,(X,l1,l2,…,lt)
jak ograniczenie „jeśli przypisanie jest satysfakcjonujące i zestawy do jednego, a następnie dokładnie z L I „s musi być ustawiony na jeden przez przypisanie”mogą być kodowane ze składnią MOEC. Pamiętaj, że wystarczy to dla naszych wymagań, po prostu wprowadzamy ograniczenia:Xli
.(Nk,{Pij | i+j=k})
Kodowanie odbywa się w następujący sposób. Niech będzie ukorzenionym kompletnym drzewem binarnym na t liściach. Wprowadzenie nowej zmiennej T d ı dla wszystkich 1 ≤ d ≤ log t i 1 ≤ i ≤ l ( d ) , w których L ( d ) oznacza liczbę węzłów T X na głębokości d .TXtTdi1≤d≤logt1≤i≤L(d)L(d)TXd
Dla każdego węzła , jeżeli p i q będą jego potomkami w drzewie, wprowadź ograniczenie EVEN-3:Tdipq
{Tdi,p,q}
Oznacza to, że jeśli zmienna odpowiadająca węzłowi jest ustawiona na true, wówczas dokładnie jedno z jej potomków również musi być ustawione na true. Teraz dodaj implikacje:
i
( d log t , j ) ⇒ l j (przecinek dla przejrzystości).(X⇒T11)(dlogt,j)⇒lj
Ta kombinacja ograniczeń EVEN-3 i implikacji jest równoważna ograniczeniom, które chcieliśmy zakodować.
NiNNPijNiNjPij(r,s)(r′,s′)PQNiPij
ffNiNikNkik,jkik+jk=jfPikjkQikjk(i,j)i≠ikj≠jki+j=kfQijPijki,ji+j=kQijPijNi(i,j)
ttQxxi tak powstaje w dłuższym łańcuchu, a pozostałe wypadają korzystnie. Muszę to jednak dokładnie zanotować i być może widzę rzeczy z syndromu po północy!