Sự phức tạp của việc kiểm tra xem hai CNF có cùng số lượng giải pháp không


14

Đưa ra hai CNF, nếu chúng có cùng số lượng bài tập để biến chúng thành đúng, hãy trả lời "Có", nếu không thì trả lời "Không".

Thật dễ dàng để thấy nó có trong , vì nếu chúng ta biết chính xác số lượng giải pháp cho hai CNF này, chúng ta chỉ cần cắm trại chúng và trả lời "Có" hoặc "Không".P#P

Sự phức tạp của vấn đề này là gì?

Câu trả lời:


14

Vấn đề là coNP -hard; bạn có thể dễ dàng giảm vấn đề UNSAT cho vấn đề này.

Một đặc điểm chính xác hơn là vấn đề là C = P -complete. Trong thực tế, một định nghĩa của lớp C = P là nó là loại vấn đề thuộc nhiều thời gian đa thức có thể giảm được cho chính vấn đề này (thông thường định nghĩa này được nêu trong các hàm của GapP ). Nhưng vì điều này không nói lên nhiều, hãy để tôi định nghĩa lớp này theo một cách khác.

Cho C = P là lớp của các vấn đề đó là thời gian đa thức nhiều mốt rút gọn về các vấn đề sau đây: cho một mạch boolean φ và một số nguyên K (ở dạng nhị phân), quyết định số lượng đáp ứng nhiệm vụ của φ bằng K . Bằng cách giảm tiêu chuẩn cho thấy mức độ hoàn thành # P của # 3SAT, chúng tôi có thể hạn chế φ thành công thức 3CNF mà không ảnh hưởng đến lớp. Lớp C = P chứa một lớp được gọi là US , chứa cả UP và coNP.

Với định nghĩa này, vấn đề của bạn là C = P-Complete. Trên thực tế, độ cứng C = P dễ dàng nhận thấy từ định nghĩa của lớp C = P (sử dụng các công thức 3CNF).

Để chứng minh tư cách thành viên trong C = P, giả sử rằng chúng ta phải quyết định xem hai công thức CNF đã cho φ 1φ 2 có cùng số lượng bài tập thỏa mãn hay không. Không mất tính tổng quát, chúng ta có thể giả sử rằng hai công thức có cùng số biến, giả sử n . Xây dựng một mạch boolean φ mà mất n 1 bit như là đầu vào do đó số lượng đáp ứng nhiệm vụ của φ là tương đương với c 1 + (2 n - c 2 ), nơi c 1c 2là số lượng các bài tập thỏa mãn lần lượt là φ 1φ 2 . Khi đó số lượng bài tập thỏa mãn của φ bằng 2 n khi và chỉ khi c 1 = c 2 .


@Kaveh: Bạn có thể giải thích?
Tsuyoshi Ito

1
@Kaveh: Không, đó không phải là điều chúng tôi muốn. Chúng tôi muốn quyết định xem φ_1 và φ_2 có cùng số lượng bài tập thỏa mãn hay không, không nhất thiết phải có cùng một tập bài tập thỏa mãn.
Tsuyoshi Ito

1
@Tsuyoshi: Dựa trên định nghĩa của bạn về , GI có phải là C = P không? Tôi nghĩ ít nhất GI F P C = P . C=PC=PFPC= =P
Mike Chen

1
@Mike: Cảm ơn bạn đã nhận xét thú vị. Bạn đang nói về kết quả mà đồ thị đẳng cấu ∈ SPP (Arvind và Kurur 2006 dx.doi.org/10.1016/j.ic.2006.02.002 )? Nếu vậy, bạn đã đúng; SPP được chứa trong , vì vậy phép đẳng cấu đồ thị ∈ C = P . C= =PC= =P
Tsuyoshi Ito

1
@Mike: Tôi đã học được rằng trước kết quả GraphIso∈SPP, người ta đã biết rằng GraphIso ∈ LWPP : Köbler, Schöning và Torán 1992 . Kể từ LWPP ⊆ WPP , chúng tôi không cần kết quả mạnh mẽ hơn bởi Arvind và Kurur để nói rằng GraphIso∈ C = P . C= =PC= =P
Tsuyoshi Ito

6

Đây là một biến thể nhỏ cho câu hỏi ban đầu. Đặt là một lời tiên tri, trên đầu vào ( f 1 , f 2 ) đầu ra 1 nếu CNF f 1nhiều giải pháp hơn CNF f 2 .Ôi(f1,f2)f1f2

Với oracle này, chúng ta xây dựng một cỗ máy thời gian poly- mà có thể giải quyết các vấn đề # P-hoàn chỉnh các tính toán số lượng giải pháp cho một CNF cho φ . Lưu ý rằng φ có thể có một số mũ của các giải pháp.Mφφ

hoạt động như sau: Nó tạo ra công thức với số được biết đến các giải pháp, và sử dụng tìm kiếm nhị phân và bằng cách hỏi tại hầu hết các truy vấn đa thức để O , nó tìm thấy một công thức φ icùng mộtsố giải pháp như φ . Cuối cùng nó cũng đưa ra số lượng giải pháp vừa tìm được.MÔiφTôiφ

Điều này cho thấy có độ phức tạp #P.MÔi


Tha thứ cho sự thiếu hiểu biết của tôi, nhưng làm thế nào để bạn tạo ra một công thức với số lượng giải pháp được chỉ định trước?
Giorgio Camerani

3
Hãy M là một (k + 1) số bit , và để cho S là chỉ số im i = 1 . Thực hiện một công thức với các biến x 0 , ... , x ky 0 , ... , y k . Đối với mỗi i S , chúng ta hãy F i là subformula sau: "Tất cả { x 0 , ... ,M= =ΣTôi= =0kmTôi2TôiSTôimTôi= =1x0,Giáo dục,xky0,Giáo dục,ykTôiSFTôi{x0,Giáo dục,xk-Tôi}{y0,Giáo dục,yk}yTôiFTôi2Tôi{xk-Tôi+1,Giáo dục,xk}TôijFTôiFjybiến. Công thức M thỏa mãn bài tập. TôiSFTôiM
mikero

Lưu ý rằng nó hoàn thành PP để quyết định xem, đưa ra hai công thức CNF f_1 và f_2, f_1 có nhiều bài tập thỏa mãn hơn f_2 hay không.
Tsuyoshi Ito

@mikero: À, ngu quá! Tôi nên tưởng tượng rằng. Cảm ơn lời giải thích của bạn.
Giorgio Camerani

5

Có vẻ như đó là NP-hard ít nhất vì người ta có thể dễ dàng xây dựng một công thức SAT chỉ bằng một giải pháp. Sau đó, theo định lý Valiant-Vazirani, có một sự giảm xác suất từ ​​mọi công thức SAT thành một tập hợp các vấn đề SAT-SAT duy nhất (xác định xem một công thức có một giải pháp duy nhất hay không) và so sánh các vấn đề SAT-SAT đó với công thức SAT được xây dựng chỉ với một giải pháp cho phép bạn xác định mức độ thỏa đáng của công thức SAT đang được xem xét.


Nói một cách chính xác, câu đầu tiên nên đề cập đến những người theo khả năng giảm ngẫu nhiên (mặc dù bạn đề cập đến nó trong câu thứ hai).
Tsuyoshi Ito
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.