Tại sao loại bỏ hoàn toàn nghĩa đen không có trong các thuật toán dựa trên DPLL như Chaff?


7

Tôi đang xem xét nhiều người giải SAT khác nhau và cố gắng hiểu cách họ làm việc và tại sao họ được thiết kế theo những cách nhất định. (Nhưng hiện tại tôi không ở trong một trường đại học và tôi không biết ai là giáo sư. Vì vậy, tôi đang đăng bài ở đây với hy vọng ai đó có thể giúp tôi. Tôi thực sự đánh giá cao.)

Trong Chaff , BCP (Tuyên truyền ràng buộc Boolean) được triển khai khác với DPLL ban đầu : nó thực hiện bằng cách xem hai chữ một lần (một kỹ thuật hơi khác so với đề xuất ban đầu trong SATO: Một đề xuất hiệu quả đề xuất ) theo bài báo năm 2001, Chaff: Kỹ thuật một bộ giải SAT hiệu quả . Tuy nhiên, không có đề cập đến việc loại bỏ hoàn toàn nghĩa đen trong bài viết này.

Trong Sự phức tạp của việc loại bỏ văn chương thuần túy , Jan Johannsen đã viết

Các triển khai tốt nhất hiện nay của các bộ giải SAT loại DLL, như Chaff hoặc BerkMin đã hy sinh phương pháp phỏng đoán này để đạt được hiệu quả trong việc truyền bá đơn vị.

trong đó "heuristic" này đề cập đến việc loại bỏ nghĩa đen thuần túy. Sự hiểu biết của tôi về những gì loại bỏ nghĩa đen thuần túy là nó

  1. tìm kiếm cho tất cả các chữ đơn cực (hoặc thuần)
  2. gán một giá trị boolean cho chúng sao cho mỗi sản lượng True
  3. trong trường hợp này bây giờ chúng ta có thể xóa tất cả các mệnh đề chứa chúng

Đây là câu hỏi của tôi:

Làm thế nào là sự hy sinh cần thiết? Có một lý do chính đáng tại sao việc loại bỏ hoàn toàn nghĩa đen không có trong các thuật toán dựa trên DPLL như Chaff? Chúng ta không thể loại bỏ hoàn toàn nghĩa đen theo từng cấp độ quyết định (hoặc ít nhất là thực hiện nó khi bắt đầu trước khi phân nhánh)?


"một cực" = các trường hợp chỉ bằng chữ thẳng hoặc phủ định? nó cũng có thể giúp (ví dụ để tự kiềm chế câu hỏi, rõ ràng, v.v.) để xác định một số thuật ngữ khác, mặc dù hiểu chúng là std trong lĩnh vực này
vzn

@vzn chắc chắn. Tôi đã thêm nhiều liên kết & phụ đề
吖 奇 ArchVlog -

Câu trả lời:


7

Các bộ giải sử dụng thuật toán hai chữ theo dõi để thực hiện lan truyền đơn vị không theo dõi các mệnh đề nào đã bị xóa (bằng hàm ý) để tạo ra biểu mẫu con được gán bởi phép gán một phần hiện tại. Bằng cách không theo dõi thông tin này, người giải quyết có thể tránh chạm vào hầu hết các mệnh đề trong các bài tập và tránh chạm vào bất kỳ mệnh đề nào trong quá trình quay lại. Chỉ ra các biến nào hiện đang thuần túy trong công thức có nghĩa là mất các mức tăng hiệu quả đáng kể này. Trong khi đó, không có gì cho thấy việc loại bỏ nghĩa đen thuần túy sẽ tạo ra xung đột hoặc đáp ứng các bài tập đủ sớm để bù đắp chi phí theo dõi nặng nề.

Các bộ giải thực hiện đơn giản hóa công thức trước khi bắt đầu quy trình tìm kiếm thường sẽ bao gồm loại bỏ hoàn toàn nghĩa đen vì nó khá rẻ để thực hiện như một bước tiền xử lý và có khả năng có thể loại bỏ nhiều mệnh đề.

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.