Tại sao CNF được sử dụng cho SAT mà không phải là DNF?


22

Tôi hoàn toàn không hiểu tại sao hầu hết tất cả những người giải SAT đều sử dụng CNF thay vì DNF. Dường như với tôi, việc giải SAT dễ dàng hơn khi sử dụng DNF. Rốt cuộc, bạn chỉ cần quét qua bộ cấy ghép và kiểm tra xem một trong số chúng có chứa cả biến và phủ định của nó không. Đối với CNF, không có thủ tục đơn giản như thế này.


5
Không phải tất cả các bộ giải ràng buộc sử dụng CNF làm đầu vào. Một số không thích, bởi vì cấu trúc của tập ràng buộc ban đầu được giữ nguyên.
Dave Clarke

1
câu hỏi này có một tiền đề sai lầm & không nghĩ rằng nó xứng đáng được đánh giá cao như hiện tại. SAT được định nghĩa là giải pháp của các công thức CNF. có một vấn đề trong việc giải quyết các DNF (thậm chí bạn có thể gọi nó là tìm các bài tập thỏa mãn ) nhưng nó không được gọi là / có biệt danh SAT trong CS. & imho điều này nên được di chuyển sang cs.se ... một lưu ý khác-- chuyển đổi CNF sang DNF và ngược lại thực sự rất giống với, hoặc có thể được xem là một thuật toán nén không thành công trong các trường hợp cụ thể (dẫn đến hiện tượng nổ theo cấp số nhân trong kích thước)
vzn

10
@vzn: thực ra, "SAT" đôi khi được sử dụng để chỉ vấn đề tìm một bài tập thỏa mãn cho bất kỳ công thức boolean nào . CNF-SAT chỉ là trường hợp đặc biệt thú vị nhất, do đó chúng tôi có xu hướng sử dụng "SAT" để nói đến CNF-SAT nói riêng như một loại synechdoche. Tất nhiên, DNF-SAT có thể giải quyết một cách hiệu quả, giống như cách mà CNF-TAUTologyY có thể giải quyết một cách hiệu quả. Câu hỏi dường như được đặt ra khi không nhận ra điều đó.
Niel de Beaudrap

Câu trả lời:


56

Việc giảm sách giáo khoa từ SAT xuống 3SAT, do Karp, biến đổi một công thức boolean tùy ý thành một công thức boolean tương đương với CNF có kích thước đa thức , sao cho là thỏa đáng nếu và chỉ khi là thỏa đáng. (Nói đúng ra, hai công thức này không tương đương nhau, vì có các biến bổ sung, nhưng giá trị của không thực sự phụ thuộc vào các biến mới đó.)Φ ' Φ Φ ' Φ ' Φ 'ΦΦ ΦΦΦΦ

Không có sự giảm tương tự từ các công thức boolean tùy ý thành các công thức DNF được biết đến; tất cả các phép biến đổi đã biết làm tăng kích thước của công thức theo cấp số nhân. Hơn nữa, trừ khi P = NP, không thể giảm như vậy!


Sau khi chuyển đổi DNF sang CNF và ngược lại không hoàn toàn giống với P vs NP mặc dù nó có thể liên quan đến một số phân tách lớp phức tạp quan trọng (rõ ràng đối với các lớp "lớn hơn NP"), vấn đề là nó có thể dẫn đến một vụ nổ theo cấp số nhân ... và trong mọi trường hợp chuyển đổi giữa CNF và DNF không phải là vấn đề quyết định ... có nhiều cách để biến nó thành vấn đề quyết định ...
vzn

10
Tôi nghĩ rằng quan điểm của JeffE là DNF-SAT nằm trong P, vì vậy nó không thể hoàn thành NP trừ khi P = NP.
Luke Mathieson

2
"tất cả các biến đổi đã biết" không đúng với kiến ​​thức hiện tại, vì có các công thức / chuyển đổi CNF có thể chứng minh được yêu cầu thổi không gian theo cấp số nhân bất kể thuật toán ... đoán có vẻ như thảo luận về chuyển đổi CNF <=> Chuyển đổi DNF có liên quan cao cho câu hỏi này và câu trả lời này gợi ý về nó ... là chữ viết tắt "DNF-SAT" được sử dụng ở bất cứ đâu trong tài liệu? đừng nhớ lại việc tự mình nhìn thấy nó ... có vẻ như vốn đã khó hiểu với tôi ... việc thỏa mãn DNF là một vấn đề quyết định, chuyển đổi DNF <-> CNF là một vấn đề chức năng & câu trả lời không làm cho sự khác biệt đó quá rõ ràng; một câu trả lời tuyệt vời sẽ ...
vzn

@ Jɛ ff E: bạn có phiền khi làm rõ ý của bạn bằng "công thức boolean tùy ý" ở đây không? Nhìn vào bài báo của Karp , trang 92, SATISFIABILITY được định nghĩa trên các công thức CNF. Điều này không ảnh hưởng đến câu trả lời của bạn cho câu hỏi của OP, nhưng tôi đang cố gắng đảm bảo không có kết quả chung nào hơn cho các công thức boolean tùy ý (tức là các công thức không nhất thiết phải có trong CNF). Cảm ơn
lyes

22

Hầu hết những điều quan trọng đã được nói nhưng tôi muốn nhấn mạnh một vài điểm.

  1. sự thỏa mãn của công thức DNF là P
  2. sự thỏa mãn của công thức CNF là NP
  3. kiểm tra nếu một công thức CNF là một tautology là P
  4. kiểm tra nếu một công thức DNF là một tautology là coNP
  5. phủ nhận DNF mang lại CNF và ngược lại

Vì vậy, người giải SAT sử dụng CNF vì họ nhắm mục tiêu thỏa đáng và bất kỳ công thức nào cũng có thể được dịch sang CNF trong khi vẫn giữ được sự thỏa mãn trong thời gian tuyến tính.



1
@TayfunPay họ làm. Ví dụ, . Nếu bạn không cho phép các mệnh đề chứa cùng một biến hai lần, thì có một đại diện duy nhất của một tautology, đó là các mệnh đề trống. {{¬xx}}
Mikolas

3
@Tayfun trong khi tôi đồng ý rằng các định nghĩa thường không cho phép lặp lại các biến trong mệnh đề, tôi không nghĩ rằng tôi đã từng thấy một định nghĩa sẽ không cho phép các mệnh đề trống. (Và tôi không rõ lý do tại sao bạn muốn làm điều đó)
Mikolas

2
@Tayfun 1) bạn có thể chỉ cho tôi một ấn phẩm nói rằng không có tautology trong CNF hay bộ mệnh đề trống không phải là CNF? 2) nếu bạn không cho phép các mệnh đề trống, thì bạn cũng không nên cho phép mệnh đề trống và bạn không thể biểu thị sai 3) nếu bạn không cho phép đúng và / hoặc sai trong CNF, bạn đang mất tài sản có thể đại diện tất cả các hàm Boolean, tại sao bạn muốn làm điều đó?
Mikolas

1
"không nên lặp lại các biến cũng như nghĩa đen trong bất kỳ mệnh đề đã cho nào." --- không cho phép các công thức hoặc mệnh đề trống. BTW Nếu bạn không cho phép mệnh đề trống, bạn không còn có thể thực hiện bằng chứng từ chối giải quyết, điều này tạo thành một phần khá quan trọng của lý luận tự động.
Mikolas

18

Những người giải SAT không "sử dụng" CNF - họ (thường) được CNF làm đầu vào và cố gắng hết sức để giải quyết CNF mà họ được đưa ra. Như câu hỏi của bạn chỉ ra, đại diện là tất cả mọi thứ - sẽ dễ dàng hơn nhiều để biết liệu một DNF có thỏa đáng hơn một CNF có cùng kích thước hay không.

Điều này dẫn đến câu hỏi tại sao người giải SAT không thể biến CNF đã cho của họ thành DNF và giải quyết DNF, và cố gắng đây là một bài tập tốt để tìm hiểu các vấn đề về đại diện.


11

7 ngày tháng 9 năm 2013: Câu trả lời Hơn nữa gia tăng, kiểm tra dưới cùng của trang


c1...cmci=li,1...li,kcil¬l2nkcác giải pháp của công thức. Vì vậy, toàn bộ DNF chỉ là một bảng liệt kê các giải pháp. Một công thức có thể có nhiều giải pháp theo cấp số nhân, vì vậy công thức DNF tương ứng có thể có nhiều mệnh đề theo cấp số nhân. Hãy thử chuyển đổi công thức CNF này:

l1l2l3l4

l5l6l7l8

l9l10l11l12

l13l14l15l16

l17l18l19l20

theo công thức DNF tương ứng của nó: bạn sẽ nhận được quá nhiều mệnh đề. Trong một từ: CNF là nhỏ gọn, trong khi DNF thì không; CNF là ẩn, trong khi DNF là rõ ràng.

Vấn đề sau đây là NP-đầy đủ: được cung cấp một thể hiện DNF, có sự phân công các biến làm sai lệch tất cả các mệnh đề không?


4
Để có được định dạng LaTeX chính xác, hãy thay thế \ và và \ hoặc bằng \ Land và \ lor (hoặc \ wedge và \ vee).
Jeffε

2
Không có gì nhỏ gọn hơn về việc chuyển đổi sang CNF thông thường, chìa khóa thực sự cho câu hỏi OP là thực tế là bạn có thể tạo các hàm CNF "tương đương" đó với các biến phụ trợ. Có lẽ có một xấp xỉ tương tự bạn có thể làm với DNF để giải quyết một vấn đề khác thay vì kiểm tra sự thỏa đáng. (các chức năng không thỏa mãn? ...)
splititherzero

1
Cái nhìn sâu sắc này của Giorgio Camerani là không tốt. Sự gia tăng theo cấp số nhân của số mệnh đề có thể xảy ra nếu bạn chuyển đổi một cái gì đó sang CNF. Chọn ví dụ tương tự và thay thế "và" s bằng "hoặc" s. Việc chuyển đổi từ biểu thức DNF nhỏ này sang CNF sẽ rất lớn giống nhau. Họ có một chút mối quan hệ âm dương với họ.
splititherzero

@dividitherzero: Tôi đã dành một câu trả lời riêng để giải quyết ý kiến ​​của bạn.
Giorgio Camerani

6

Tôi chỉ nhận ra một điều nữa, hy vọng xứng đáng có một câu trả lời riêng. Giả định của câu hỏi không hoàn toàn đúng. Một sơ đồ quyết định nhị phân (BDD) có thể được coi là một đại diện nhỏ gọn / tinh chỉnh của DNF. Đã có một số người giải SAT sử dụng BDD nhưng tôi tin rằng họ không còn xuất hiện nữa.

Có một bài báo hay của Darwiche và Hầu tước nghiên cứu các tính chất khác nhau của các biểu diễn khác nhau của các hàm Boolean.


4

Câu trả lời thêm này có nghĩa là một phản hồi để bình luận chia cho câu trả lời trước của tôi.

Như splititherzero nói, chắc chắn đúng là CNF và DNF là hai mặt của cùng một đồng tiền.

PNPcomplete

PNPcomplete

Ở một thái cực, chúng ta có Mâu thuẫn, tức là các công thức không thỏa mãn. Ở thái cực đối lập, chúng ta có Tautology, tức là các công thức không thể xác định được. Ở giữa, chúng tôi có các công thức vừa thỏa đáng vừa giả mạo.

nk2nk

nk2nk

k=02nNPcomplete

k=02nNPcomplete

2n

2n

Dưới ánh sáng này, nó trở nên rõ ràng hơn tại sao Sự hài lòng của CNF và Độ sai lệch DNF là tương đương về độ cứng tính toán. Bởi vì chúng thực sự là cùng một vấn đề, vì nhiệm vụ cơ bản hoàn toàn giống nhau: để cho biết liệu sự kết hợp của một số bộ có bằng không gian của tất cả các khả năng hay không . Nhiệm vụ như vậy dẫn chúng ta đến một lĩnh vực đếm rộng hơn, theo ý kiến ​​khiêm tốn của tôi, một trong những con đường được khám phá một cách nhiệt thành để hy vọng đạt được một số tiến bộ không đáng kể về những vấn đề này (tôi nghi ngờ rằng nghiên cứu sâu hơn về người giải quyết dựa trên độ phân giải cuối cùng có thể mang lại những tiến bộ lý thuyết đột phá, trong khi nó chắc chắn tiếp tục mang lại những tiến bộ thực tế đáng ngạc nhiên).

Khó khăn của nhiệm vụ như vậy là các bộ đó chồng chéo lên nhau một cách điên cuồng, theo kiểu bao gồm - loại trừ.

Sự hiện diện của sự chồng chéo như vậy chính xác là nơi độ cứng của việc đếm cư trú. Hơn nữa, việc chúng ta để các tập hợp đó trùng nhau là lý do cho phép chúng ta có các công thức nhỏ gọn mà không gian giải pháp của nó vẫn lớn theo cấp số nhân.


4

Tôi đã quyết định biến tất cả các câu trả lời trong chuỗi này (đặc biệt là câu trả lời của Giorgio Camerani) thành một bảng đẹp để có thể nhìn thấy tính hai mặt trong nháy mắt:

DNFCNFtautology/unfalsifiabilitycoNP-completeP(each clause has a pair of P and ¬P)satisfiabilityP(sat. assignments are explicit)NP-completefalsifiabilityNP-completeP(fals. assignments are explicit)unsatisfiabilityP(each clause has a pair of P and ¬P)coNP-completeconversion to normal form, retaining equivalence()()conversion to normal form, retaining satisfiability()FPconversion to normal form, retaining falsiabilityFP()

()

()()FPNP[1]

Câu trả lời ngắn nhất cho câu hỏi: hiển thị mức độ thỏa đáng (giải SAT) thông qua DNF chỉ có thể được thực hiện trong thời gian theo cấp số nhân theo bảng trên.


1
"Công thức PL" là gì và "NF" nghĩa là gì?
Joshua Grochow

4
Có một vài vấn đề ở đây. (1) Tôi nghĩ bởi "không thể xác định" bạn có nghĩa là "tautology". (2) KNF phải là CNF.
Huck Bennett

2
A(φ)φφA(φ)φA(φ)

1
(1) "logic vị ngữ" phải là "logic mệnh đề". (2) Việc chuyển đổi sang các hình thức bình thường không phải là vấn đề quyết định, mà là vấn đề về chức năng (hay đúng hơn là các vấn đề tìm kiếm, vì "các hình thức bình thường" không phải là duy nhất). Vì vậy, các lớp quyết định được đưa ra trong bảng là không phù hợp.
Emil Jeřábek hỗ trợ Monica

1
Δ3P
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.