Tải xuống #SAT Bộ giải


21

Bất cứ ai cũng có thể vui lòng trỏ đến một hoặc nhiều trang web nơi có thể tải xuống bản triển khai hoạt động của bộ giải #SAT? Tôi quan tâm đến những người trả về số lượng giải pháp chính xác, không phải là một xấp xỉ.


2
Xin chào Walter, câu hỏi của bạn gần với biên giới của những gì sẽ chính thức "về chủ đề" cho trang web này. Tuy nhiên, nếu bạn không có nơi nào khác để hỏi câu hỏi này và chúng tôi có thể trả lời nó, có lẽ điều đó không tệ ... (Vì trang web vẫn đang được phát triển, tôi nghĩ rằng chúng tôi đang cởi mở hơn các trang web khác.) Hãy yên tâm. rằng quan điểm của bình luận này không phải là "mắng" hay "cảnh báo", đó chỉ là một thông báo thân thiện.
Ryan Williams

Xin chào Ryan, cảm ơn bạn đã thông báo. Tôi xin lỗi nếu câu hỏi này gần biên giới. Tôi đã tìm kiếm trên web và tôi không tìm thấy gì: chỉ có một số người giải SAT, nhưng không có người giải #SAT. Đó là lý do tại sao tôi hỏi ở đây. Tất nhiên tôi biết rằng tôi có thể viết mã của riêng mình, sử dụng bộ giải SAT làm công cụ để đếm các giải pháp, nhưng tôi đang tìm kiếm thứ gì đó đã được tạo ra và sẵn sàng để sử dụng.
Giorgio Camerani

12
Tôi muốn không đồng ý. Tôi nghĩ những câu hỏi như vậy là trong phạm vi, và nên được!
Suresh Venkat

đồng ý trong phạm vi của nó. fyi / imho không quá thực tế để xây dựng bộ giải #SAT từ bộ giải SAT trừ khi người ta có mã nguồn và ngay cả trong trường hợp đó, không thực tế lắm, ngoại trừ các công thức rất nhỏ, vì một cú đánh theo cấp số nhân rất tệ. thường là các kỹ thuật đặc biệt duy nhất cho #SAT chứ không phải SAT sẽ được yêu cầu ...
vzn

Câu trả lời:


16

Bạn có thể làm điều này với SAT4J , chỉ đơn giản bằng cách lặp qua tất cả các mô hình: http://www.sat4j.org/howto.php#models . Tôi tưởng tượng rằng hầu hết những người giải SAT đều có khả năng này.


Xin chào siêu xe, cảm ơn con trỏ của bạn. Tôi không biết rằng SAT4J có khả năng này.
Giorgio Camerani

16

Bạn cũng có thể thử bộ giải #SAT "sharpSAT" ( trang web , github ) để đếm số lượng bài tập thỏa mãn của các công thức CNF.


11

Một tùy chọn là sử dụng thư viện BDD, chẳng hạn như JavaBDD . Tất cả các thư viện như vậy đều có chức năng đếm các giải pháp nhanh hoặc ít nhất, chúng giúp bạn dễ dàng viết một hàm như vậy. Tuy nhiên, nhược điểm là việc xây dựng BDD sẽ chậm trong nhiều trường hợp và có thể cần nhiều bộ nhớ.

mnO(mn)m+n


7

Chủ đề liên quan: Người giải SAT tốt nhất .


1
Cảm ơn Sadeq. Chủ đề bạn chỉ ra dường như là định hướng lý thuyết. Nó liệt kê một số giấy tờ về giảm giới hạn trên. Điều đó rất thú vị, nhưng tôi đang tìm kiếm một triển khai làm việc sẵn sàng để sử dụng.
Giorgio Camerani

2
Bạn được chào đón nhất. Trong số các liên kết được trích dẫn ở đó, có một liên kết hoàn toàn thực tế: satcompetition.org . Tôi nghĩ rằng bạn có thể tìm thấy triển khai rất tốt ở đó.
MS Dousti

7

Điều tốt nhất tôi tìm thấy là "trình biên dịch c2d". http://reasoning.cs.ucla.edu/c2d/

Nó sử dụng d-DNNF và bạn cần tùy chọn -count .


c2d giải quyết nhiều CNF hơn sharpsat. Đối với mục đích đồ chơi, bộ giải sat "relsat" cũng sẽ làm như vậy.
Leon Leon

7

Bộ giải MBound được cung cấp tại đây http://www.cs.cornell.edu/~sabhar/ có thể đưa ra số lượng mô hình với các đảm bảo xác suất. Nó nhanh hơn nhiều so với việc liệt kê tất cả các giải pháp.


5

Tôi đã viết một mô hình nhỏ / điều tra viên cấy ghép . Điều này đã có thể được sử dụng để đếm mô hình với bảng liệt kê mô hình nhưng điều đó không thực tế lắm. Nếu bất cứ ai quan tâm, tôi có thể mở rộng nó để nó đếm các mô hình từ cấy ghép chính.


2

Trang web BeyondNP chứa một kho lưu trữ tốt các công cụ hiện có để giải quyết #SAT (và các vấn đề khó khăn khác có liên quan trên các công thức CNF). Bạn cũng có thể tìm thấy một danh sách các công cụ để đếm mô hìnhtổng hợp kiến ​​thức gần đúng (nhiệm vụ biến đổi CNF thành cấu trúc dữ liệu cô đọng, hy vọng thường hỗ trợ đếm mô hình thời gian đa thức).

Bạn cũng có thể tìm thấy một danh sách các công cụ để xử lý trước các công thức CNF có thể hữu ích để cải thiện hiệu suất của các bộ đếm mô hình và các điểm chuẩn khác nhau .



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.