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ỉ.
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ỉ.
Câu trả lời:
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.
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ớ.
Chủ đề liên quan: Người giải SAT tốt nhất .
Đ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 .
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.
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.
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ình và tổ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 .
Đây là một cái gọi là tenorCSP và dựa trên một công cụ gọi là mạng tenxơ. Nó được giải thích trong bài báo này .
Glucose là một công cụ giải SAT rất hiệu quả được phát triển tại trường đại học của Bordeaux.