Phân biệt thủ tục quyết định so với người giải quyết SMT và người giải quyết định lý và người giải quyết ràng buộc


23

Những thuật ngữ đó làm tôi bối rối. Như tôi hiểu

  • Bộ giải SAT: quyết định sự thỏa mãn của logic mệnh đề (sử dụng DPLL hoặc Tìm kiếm cục bộ).
  • Thủ tục quyết định là một thủ tục để quyết định sự thỏa mãn của một lý thuyết bậc nhất có thể quyết định nhất định.
  • Người giải quyết SMT là một người giải quyết SAT + thủ tục quyết định.
  • Định lý định lý chỉ ra một cái gì đó như Dynamic Logic, ví dụ công cụ KeY
  • Người giải quyết hạn chế: Tôi không biết.

Nhưng tôi thấy mọi người gọi Z3 là một người hoạt động theo định lý. Vì vậy, tôi không biết làm thế nào để loại bỏ những điều khoản đó. Và thuật ngữ chung nhất cho tất cả chúng là gì? Cảm ơn bạn.

Câu trả lời:


18

Người giải quyết SMT là người giải quyết SAT + thủ tục quyết định

Người giải SAT là người giải quyết vấn đề quyết định: vấn đề SAT là vấn đề quyết định. Ngoài ra, vấn đề quyết định này là "tự giảm":

Vấn đề SAT có thể tự giảm, nghĩa là, mỗi thuật toán trả lời chính xác nếu một thể hiện của SAT có thể giải được có thể được sử dụng để tìm một bài tập thỏa mãn

- ( wikipedia )

Điều này có nghĩa là người giải SAT cũng có thể đưa ra bài tập thỏa mãn, ngoài việc quyết định vấn đề.

Người giải quyết TL; DR SMT giải quyết khái quát hóa vấn đề SAT, tùy thuộc vào loại / ràng buộc được cho phép trong lý thuyết. Hơn nữa, chúng cũng cho phép mã hóa các mối quan hệ loại mức cao hơn so với mã hóa SAT cho phép.

(Một= =B)(B= =C)(Một= =C)

  1. Xem bộ giải Beaver SMT thậm chí có thể đưa ra bài toán SAT tương đương cần giải quyết.

Mặc dù bộ giải QF_BV SMT có lợi thế này so với bộ giải SAT, tôi không nghĩ đây là một lợi thế phức tạp: cả hai về cơ bản đều tương đương và mất thời gian theo cấp số nhân để giải quyết các vấn đề xấu nhất của chúng. Nhưng thực tế, một bộ giải QF_BV SMT có thể nhanh hơn nhiều nhờ kiến ​​thức bổ sung này. Xem câu trả lời của tôi về Giới hạn của bộ giải SMT , ví dụ về một cái gì đó được coi là "cứng" mà bộ giải QF_BV SMT và bộ giải SAT sẽ bị nghẹt thở.

Ngoài ra còn có các bộ giải SMT cố gắng giải quyết các vấn đề thậm chí khó khăn hơn Boolean Hài lòng (ví dụ: cho phép các loại và các ràng buộc trên thực tế, hoặc cho phép định lượng); rõ ràng đây là những lý thuyết ít nhất là chậm như một người giải SAT. Những người giải quyết SMT này là một cách giải quyết khái quát hóa vấn đề SAT; thay vì sử dụng các biến nhị phân, mỗi "lý thuyết" cho phép các mối quan hệ / ràng buộc trên các miền khác nhau, chẳng hạn như thực tế hoặc các ràng buộc định lượng (cho tất cả).

Định lý tục ngữ

P= =NP

Nhưng những thay đổi như vậy có thể có ý nghĩa nhạt so với cuộc cách mạng, một phương pháp hiệu quả để giải quyết các vấn đề hoàn chỉnh NP sẽ gây ra trong chính toán học. Theo Stephen Cook, [19]

... Nó sẽ biến đổi toán học bằng cách cho phép một máy tính tìm ra một bằng chứng chính thức cho bất kỳ định lý nào có bằng chứng về độ dài hợp lý, vì các bằng chứng chính thức có thể dễ dàng được nhận ra trong thời gian đa thức. Các vấn đề mẫu có thể bao gồm tất cả các vấn đề giải thưởng CMI.

- ( wikipedia )

[19]: Cook, Stephen (tháng 4 năm 2000). Bài toán P so với NP. Viện toán học Clay (PDF) .

P= =NP

Nhưng hiện tại, định lý tự động chủ yếu là các provers sử dụng thuật toán heuristic hoặc thuật toán thời gian theo cấp số nhân (nhưng vẫn hữu ích).

Người giải quyết hạn chế

Đây thường là những cải cách của người giải SAT / SMT sang các ngôn ngữ khác. Nếu bạn đã từng sử dụng bất kỳ bộ giải SAT / SMT nào để giải quyết vấn đề, bạn thực sự có thể yêu thích khả năng không xác định của người giải quyết. Đó là, thay vì nói với máy tính cách làm một cái gì đó, bạn nói với nó những gì bạn muốn , tức là. những thuộc tính nào bạn muốn đầu ra phải có, và bộ giải SAT / SMT sẽ trong một "điền vào" không xác định, mà không làm phiền bạn với các chi tiết triển khai. Kiểu mô hình lập trình này rất hấp dẫn và được gọi là lập trình ràng buộc và để chạy, nó phải sử dụng một bộ giải ràng buộc (có thể sử dụng bộ giải SAT / SMT trong phần phụ trợ, tùy thuộc vào loại và các ràng buộc mà nó cho phép bạn sử dụng) .

Nhưng tôi thấy mọi người gọi Z3 là một người hoạt động theo định lý. Vì vậy, tôi không biết làm thế nào để loại bỏ những điều khoản đó.

AFAIK, Z3 là một bộ gồm nhiều công cụ, bao gồm một bộ giải SMT, một số ngôn ngữ kiểm tra định lý / mô hình định lý, v.v.

Và thuật ngữ chung nhất cho tất cả chúng là gì?

Tôi nghĩ rằng khái quát của vấn đề thỏa mãn là các lý thuyết Modulo thỏa mãn , và vì vậy "người giải quyết SMT" sẽ là khái quát nhất trong tất cả các vấn đề này. Tuy nhiên, không phải tất cả các triển khai bộ giải SMT thực tế đều giải quyết được tất cả các lý thuyết, vì vậy điều này không có nghĩa là tất cả các bộ giải của SMT đều chung chung.


1
Cảm ơn bạn vì câu trả lời. Nhưng tôi không nghĩ rằng người giải quyết SMT là thuật ngữ chung nhất. Vì mọi người thường so sánh người giải quyết SMT với người giải quyết ràng buộc, xem ví dụ stackoverflow.com/questions/10584990/ Lời
qsp

@qsp Tôi có thể sai, nhưng tôi không chắc sự so sánh đó hàm ý điều đó như thế nào. Dù sao, tôi chỉ đơn giản là không đủ kiến ​​thức để biết liệu CSP có mạnh mẽ / chung chung hơn tất cả các SMT hay không; nếu bạn tìm thấy một tài liệu tham khảo cho điều đó, hãy thoải mái chỉnh sửa câu trả lời.
Realz Slaw
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.