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ó
- tìm kiếm cho tất cả các chữ đơn cực (hoặc thuần)
- gán một giá trị boolean cho chúng sao cho mỗi sản lượng
True
- 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)?