Tôi đang cố gắng giải quyết một công thức CN CNF sử dụng số SAT solver
. Công thức (ở định dạng DIMACS) có 4,697,898,048 = 2^32 + 402,930,752
khoản, và tất cả những người giải quyết SAT tôi có thể tìm được gặp rắc rối với nó:Giải quyết SAT với hơn 2^32 điều khoản
- (P)lingeling báo cáo rằng có "quá nhiều điều khoản" (tức là nhiều mệnh đề so với dòng tiêu đề quy định cụ thể, nhưng đây không phải là trường hợp)
- CryptoMiniSat4 & picosat tuyên bố để đọc dòng tiêu đề như nói 402.930.752 khoản mà là 2^32 quá ít
- Glucose dường như để phân tích 98.916.961 khoản và sau đó reports to have solved the formula as UNSAT sử dụng đơn giản, nhưng t của anh ta là không đúng (một phân đoạn ban đầu của công thức này ngắn rất có thể là SAT).
Có ai biết về một người giải quyết SAT có thể xử lý các file này lớn? Hoặc là có một cái gì đó giống như một công cụ chuyển đổi trình biên dịch có thể bỏ qua loại hành vi này? Tôi tin rằng tất cả các giải pháp được biên soạn cho 64bit linux. (Tôi hơi noob khi nói đến việc xử lý những con số lớn này, xin lỗi.)
Có thể bạn có thể thử một trình phân giải SAT phân tán. –
Những OSS này? Bạn có thể sửa đổi chúng để sử dụng số nguyên 64b. – Jeff
@ Jeff: vâng, tất cả chúng đều là mã nguồn mở C hoặc có thể là C++, không biết cách nói sự khác biệt. –