Interesują nas przybliżone dodatki do # 3SAT. tzn. biorąc pod uwagę 3CNFϕ na n zmienne liczą liczbę spełniających przypisań (nazwij to za) aż do błędu addytywnego k.
Oto kilka podstawowych wyników:
Przypadek 1: k =2)n - 1- p o l y ( n )
Oto deterministyczny algorytm wieloczasowy: Let m =2)n- 2 k = p o l y ( n ). Teraz oceńϕ na m dowolne dane wejściowe (np. najpierw leksykograficznie mwejścia). Przypuszczaćℓ z tych danych wejściowych spełniają ϕ. Więc wiemya ≥ ℓ jak są przynajmniej ℓ spełnianie zadań i a ≤2)n- ( m - ℓ ) jak są przynajmniej m - ℓniezadowalające zadania. Długość tego przedziału wynosi2)n- ( m - ℓ ) - ℓ = 2 k. Więc jeśli wyprowadzimy punkt środkowy2)n - 1- m / 2 + ℓ to jest w środku k poprawnej odpowiedzi, zgodnie z wymaganiami.
Przypadek 2: k =2)n/ p o l y (n)
Tutaj mamy losowy algorytm wieloczasowy: Oceń ϕ w m losowe punkty X1, ⋯ ,Xm∈ { 0 , 1}n. Pozwolićα =1m∑mi = 1ϕ (Xja) i ε = k /2)n. Produkujemy2)n⋅ α. Aby miał to co najwyżej błądk potrzebujemy
k≥|2nα−a|=2n|α−a/2n|,
co jest równoważne z
|α−a/2n|≤ε.Przez
nierówność chernoffa ,
P[|α−a/2n|>ε]≤2−Ω(mε2),
tak jak
E[ϕ(Xi)]=E[α]=a/2n. Oznacza to, że jeśli zdecydujemy
m=O(1/ε2)=poly(n) (i zapewnić
m jest mocą
2), przynajmniej z prawdopodobieństwem
0.99błąd jest co najwyżej
k.
Przypadek 3: k=2cn+o(n) dla c<1
W tym przypadku problemem jest # P-trudny: Zrobimy redukcję z # 3SAT. Weź 3CNFψ na mzmienne. Wybieraćn≥m takie, że k<2n−m−1 -- to wymaga n=O(m/(1−c)). Pozwolićϕ=ψ z wyjątkiem ϕ jest teraz włączony n zmienne zamiast m. Gdybyψ ma b spełnianie zadań ϕ ma b⋅2n−m spełniające zadania, jak n−m„wolne” zmienne mogą przyjmować dowolne wartości w zadowalającym przypisaniu. Załóżmy teraz, że mamya^ takie, że |a^−a|≤k -- to jest a^ jest przybliżeniem liczby spełniających zadania zadań ϕ z błędem addytywnym k. Następnie
|b−a^/2n−m|=∣∣∣a−a^2n−m∣∣∣≤k2n−m<1/2.
Od
b jest liczbą całkowitą, co oznacza, że możemy określić dokładną wartość
b od
a^. Algorytmiczne określenie dokładnej wartości
bwymaga rozwiązania problemu # P-zupełnego # 3SAT. Oznacza to, że trudno jest obliczyć #P
a^.