Chứng minh rằng việc chuyển đổi từ CNF sang DNF là NP-Hard


20

Làm cách nào để chứng minh rằng việc chuyển đổi từ CNF sang DNF là NP-Hard?

Tôi không yêu cầu một câu trả lời, chỉ là một số gợi ý về cách chứng minh nó.


5
Để có phân tích chuyên sâu, hãy xem bài viết này "Về việc chuyển đổi CNF sang DNF"
Vor

@ A.Schulz: định nghĩa ban đầu trong bài viết của Steve Cook định nghĩa nó bằng cách sử dụng các mức giảm Cook. Dường như đó là mức giảm được sử dụng khi thảo luận về độ cứng NP chung en.wikipedia.org/wiki/NP-hard
Kaveh

Chuyển đổi CNF <-> DNF không phải là một quyết định, reqd cho nó là một ngôn ngữ. thêm chức năng của nó với đầu vào và đầu ra & nó phải được chuyển đổi thành vấn đề quyết định để hỏi xem nó có trong NP không, v.v ... nghĩ rằng vấn đề không quyết định đã được chứng minh dẫn đến kích thước theo cấp số nhân NP phiên bản hoàn chỉnh của vấn đề quyết định [nếu có ở ngoài đó] có lẽ là một sự đơn giản hóa đáng kể. cũng như tham chiếu Vors cho thấy sự phức tạp thực tế của CNF <-> Chuyển đổi DNF là một vấn đề nghiên cứu tích cực ... lưu ý rằng có một số điểm tương đồng với hiệu quả thuật toán nén ...
vzn

2
@vzn Câu hỏi hỏi nếu đó là NP -hard, không phải NP -complete. Điều này có nghĩa là không cần phải là thành viên của NP nên không phải là vấn đề quyết định.
David Richerby

Câu trả lời:


18

Không chính thức

Trong DNF, bạn có thể chọn bất kỳ mệnh đề nào là đúng, để biến công thức thành đúng. Điều này có nghĩa là một DNF tương đương với một CNF nhất định, về cơ bản là một bảng liệt kê của tất cả các giải pháp cho boolean ngồi trên CNF. Lưu ý, có thể có một số lượng các giải pháp. Vì việc giải boolean sat cho CNF cho một giải pháp duy nhất là NP-Complete, chuyển đổi sang DNF về cơ bản có nghĩa là giải quyết cho mọi giải pháp. Vì vậy, nó ít nhất cũng khó như Boolean SAT, và do đó là NP-hard.

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.