Xấp xỉ các vấn đề # P-hard


9

Hãy xem xét vấn đề # P-đầy đủ cổ điển # 3SAT, nghĩa là, để đếm số lượng định giá để tạo ra 3CNF với biến thỏa đáng. Tôi quan tâm đến tính gần đúng phụ gia . Rõ ràng, có một thuật toán tầm thường để đạt được 2 n - 1 -error, nhưng nếu k < 2 n - 1 , thì có thể có một thuật toán xấp xỉ hiệu quả hay không, hay vấn đề này cũng là # P-hard?n2n1k<2n1


Nếu , thì có một thuật toán đa thời gian với lỗi cộng gộp k . Nếu k = 2 n / p o l y ( n ) , thì sẽ có một thuật toán đa thời gian ngẫu nhiên với lỗi cộng gộp k . Khi k nhỏ hơn đáng kể (nhưng không phải là đa thức nhỏ), tôi sẽ mong đợi nó là NP-hard, nhưng không phải # P-hard, vì độ cứng #P thường phụ thuộc vào nó là một tính toán chính xác. k=2n1poly(n)kk=2n/poly(n)kk
Thomas

Bạn có thể cung cấp tài liệu tham khảo cho hai yêu cầu đầu tiên? Xin lỗi tôi là người mới bắt đầu ...
user0928

Câu trả lời:


10

Chúng tôi quan tâm đến các xấp xỉ phụ gia cho # 3SAT. tức là đã đưa ra 3CNF trên n biến đếm số lượng bài tập thỏa mãn (gọi đây là a ) cho đến lỗi cộng gộp k .ϕnak

Dưới đây là một số kết quả cơ bản cho việc này:

Trường hợp 1: k=2n1poly(n)

Ở đây có một thuật toán đa thời gian xác định: Đặt . Bây giờ hãy đánh giá ϕ trên m đầu vào tùy ý (ví dụ: đầu vào m đầu tiên theo từ vựng ). Giả sử của các đầu vào đáp ứng φ . Sau đó, chúng ta biết một như có ít nhất đáp ứng nhiệm vụ và một 2 n - ( m - )m=2n2k=poly(n)ϕmmϕaa2n(m)như có ít nhất bài tập không hài lòng. Chiều dài của khoảng thời gian này là 2 n - ( m - ) - = 2 k . Vì vậy, nếu chúng ta xuất ra trung điểm 2 n - 1 - m / 2 + thì đây là trong k câu trả lời đúng, theo yêu cầu.m2n(m)=2k2n1m/2+k

Trường hợp 2: k=2n/poly(n)

Ở đây chúng ta có một thuật toán poly-thời gian ngẫu nhiên: Đánh giá tại m điểm ngẫu nhiên X 1 , , X m{ 0 , 1 } n . Đặt α = 1ϕmX1,,Xm{0,1}nε=k/2n. Chúng tôi xuất2nα. Để điều này có lỗi nhiều nhấtkchúng ta cầnk| 2nα-a| =2n| α-một/2n| ,tương đương với| α-một/2nα=1mi=1mϕ(Xi)ε=k/2n2nαk

k|2nαa|=2n|αa/2n|,
Bởi mộtràng buộc của Chernoff, P [ | α - một / 2 n | > Ε ] 2 - Ω ( m ε 2 ) , như E [ φ ( X i ) ] = E [ α ] = một / 2 n . Điều này có nghĩa rằng, nếu chúng ta chọn m = O ( 1 / ε|αa/2n|ε.
P[|αa/2n|>ε]2Ω(mε2),
E[ϕ(Xi)]=E[α]=a/2n (và đảm bảo m là lũy thừa bằng 2 ), sau đó với xác suất ít nhất là 0,99 , sai số nhiều nhất là k .m=O(1/ε2)=poly(n)m20.99k

Trường hợp 3: cho c < 1k=2cn+o(n)c<1

ψmnmk<2nm1n=O(m/(1c))ϕ=ψϕnmψbϕb2nmnma^|a^a|ka^ϕk

|ba^/2nm|=|aa^2nm|k2nm<1/2.
bba^ba^

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.