SAT, CP, SMT, (phần lớn) ASP đều xử lý cùng một tập hợp các vấn đề tối ưu hóa tổ hợp. Tuy nhiên, họ gặp phải những vấn đề này từ các góc độ khác nhau và với các hộp công cụ khác nhau. Những khác biệt này phần lớn nằm ở cách mỗi cách tiếp cận cấu trúc thông tin về việc khám phá không gian tìm kiếm. Tương tự làm việc của tôi là SAT là mã máy, trong khi các ngôn ngữ khác là ngôn ngữ cấp cao hơn.
x1∨x2¯¯¯¯¯∨x3{(x1,0),(x2,1),(x3,0)}x1x3x2x1∨x2¯¯¯¯¯∨x3∨x4x1∨x2¯¯¯¯¯∨x3∨x4¯¯¯¯¯∨x5
Một xấp xỉ của cấu trúc mệnh đề được giữ để thu hẹp tập hợp các giải pháp và để giúp xác định xem tập hợp này có trống không. Trong quá trình tìm kiếm, một số bài tập một phần có thể không được chứa trong bất kỳ giải pháp nào (ngay cả khi chúng thỏa mãn riêng từng ràng buộc trong ví dụ). Chúng được gọi là nogoods , một thuật ngữ được giới thiệu bởi ("Mr GNU") Stallman và Sussmanx≤5x=5. Do đó, không có một cấu trúc mệnh đề chung duy nhất mà là một cấu trúc liên kết với mỗi lựa chọn đại diện, tùy thuộc vào những gì các singletons (nghĩa đen) của cấu trúc mệnh đề đại diện.
Theo truyền thống, lập trình ràng buộc (CP) là một môn học AI, tập trung vào các vấn đề về lập lịch, thời gian biểu và tổ hợp, và do đó có vai trò trung tâm đối với các biến có thể mất nhiều hơn hai giá trị (nhưng thường chỉ có nhiều giá trị). CP đã nhấn mạnh tìm kiếm hiệu quả và, được thúc đẩy bởi các ứng dụng truyền thống, đã đóng một vai trò trung tâm cho các all-different
ràng buộc (tính tiêm truyền), nhưng cũng đã phát triển các công cụ truyền bá hiệu quả cho nhiều loại ràng buộc khác. Các định nghĩa chính thức về CP đã xuất hiện từ ít nhất là các hạn chế về giấy tờ năm 1974 của Montanari, với tiền chất trở lại thậm chí sớm hơn. Trọng lượng của lịch sử này có thể đã góp phần khiến CP tụt hậu so với các cách tiếp cận khác trong hoạt động thô trong thập kỷ qua. CP duy trì một cách gần đúng phần bù của cấu trúc mệnh đề, thông qua một tập hợp các miền hoạt động cho các biến. Mục đích là để loại bỏ các giá trị khỏi các miền hoạt động, khám phá cấu trúc mệnh đề bằng cách cố gắng gán các giá trị ứng cử viên cho các biến và quay lui khi cần thiết.
Các lý thuyết modulo thỏa mãn (SMT) ra đời từ cộng đồng xác minh. Mỗi lý thuyết trong một bộ giải SMT tạo thành một đại diện ngầm cho vô số các mệnh đề SAT. Các lý thuyết được sử dụng với SMT và các ràng buộc được sử dụng trong CP phản ánh các ứng dụng lịch sử khác nhau của chúng. Hầu hết các lý thuyết mà SMT xem xét phải thực hiện với các mảng được lập chỉ mục số nguyên, các trường đóng thực, các lệnh tuyến tính và tương tự; những điều này phát sinh từ phân tích tĩnh các chương trình (trong xác minh hỗ trợ máy tính) hoặc khi chính thức hóa bằng chứng toán học (trong lý luận tự động). Ngược lại, trong thời gian biểu và lập lịch trình, ràng buộc tiêm nhiễm là trung tâm, và mặc dù ngôn ngữ SMTLIB tiêu chuẩn đã có một ràng buộc tiêm nhiễm kể từ khi thành lập năm 2003 (thông quadistinct
biểu tượng), cho đến năm 2010, bộ giải SMT chỉ được thực hiện distinct
thông qua thuật toán ngây thơ. Ở giai đoạn đó, kỹ thuật đối sánh từ bộ truyền CP tiêu chuẩn all-different
đã được chuyển qua, mang lại hiệu quả lớn khi áp dụng cho các danh sách lớn các biến; xem Một người giải quyết ràng buộc khác nhau trong SMT của Banković và Marić, SMT 2010. Hơn nữa, hầu hết các nhà tuyên truyền CP được thiết kế cho các vấn đề với các miền hữu hạn, trong khi các lý thuyết tiêu chuẩn của SMT xử lý các miền vô hạn (số nguyên và gần đây là thực tế). SMT sử dụng một ví dụ SAT làm gần đúng cấu trúc mệnh đề, trích ra các mệnh đề không chính xác từ các lý thuyết khi thích hợp. Một tổng quan đẹp là Lý thuyết Modulo thỏa mãn: Giới thiệu và ứng dụng
của De Moura và Bjørner, doi: 10.1145 / 1995376.1995394.
Lập trình câu trả lời (ASP) ra khỏi lập trình logic. Do tập trung vào giải quyết vấn đề chung hơn là tìm kiếm một mô hình ổn định, và cũng vì nó cho phép định lượng phổ quát cũng như hiện sinh, nên trong nhiều năm, ASP không cạnh tranh được với CP hay SMT.
Về mặt hình thức, SAT là CSP trên các lĩnh vực Boolean, nhưng trọng tâm của SAT về học tập mệnh đề, phương pháp phỏng đoán tốt để phát hiện xung đột và cách nhanh chóng để quay lại khá khác biệt so với CSP truyền thống tập trung vào người tuyên truyền, thiết lập tính nhất quán và phương pháp phỏng đoán để đặt hàng thay đổi. SAT thường cực kỳ hiệu quả, nhưng đối với nhiều vấn đề, cần có nỗ lực rất lớn để thể hiện vấn đề trước tiên như một ví dụ SAT. Sử dụng mô hình cấp độ cao hơn như CP có thể cho phép diễn đạt vấn đề một cách tự nhiên hơn, và sau đó, ví dụ CP có thể được dịch sang SAT bằng tay hoặc một công cụ có thể đảm nhiệm việc dịch thuật. Một tổng quan đẹp về các loại hạt và bu lông của SAT là về các bộ giải thỏa mãn học tập theo mệnh đề hiện đại của Pipatsrisawat và Darwiche, doi: 10.1007 / s10817-009-9156-3 .
Bây giờ chúng ta hãy chuyển từ tổng quát để cụ thể ngày nay.
Trong thập kỷ qua, một số người trong CP đã bắt đầu tập trung vào thế hệ mệnh đề lười biếng (LCG). Đây thực chất là một cách để kết hợp các bộ truyền CP với nhau bằng cách sử dụng các kỹ thuật giống như linh hoạt hơn của SMT thay vì trừu tượng hóa các miền hoạt động khá cứng nhắc. Điều này rất hữu ích vì có một lịch sử lâu dài của các nhà tuyên truyền CP được công bố để đại diện và giải quyết hiệu quả nhiều loại vấn đề. (Tất nhiên, một hiệu ứng tương tự sẽ đạt được bằng nỗ lực phối hợp để thực hiện các lý thuyết mới cho người giải quyết SMT.) LCG có hiệu suất thường cạnh tranh với SMT, và đối với một số vấn đề có thể vượt trội. Một cái nhìn tổng quan nhanh là bài viết Tạo điều khoản lười biếng CPAIOR 2010 của Stuckey : Kết hợp sức mạnh của SAT và CP (và MIP?) , Doi: 10.1007 / 978-3-642-13520-0_3. Cũng đáng đọc tài liệu về vị trí của Garcia de la Banda, Stuckey, Van Hentenryck và Wallace, trong đó vẽ ra một tầm nhìn trung tâm CP về Tương lai của Công nghệ Tối ưu hóa , doi: 10.1007 / s10601-013-9149-z .
Theo như tôi có thể nói, phần lớn trọng tâm của nghiên cứu gần đây của SMT dường như đã chuyển sang các ứng dụng trong các phương pháp chính thức và toán học chính thức. Một ví dụ là xây dựng lại các bằng chứng được tìm thấy bởi những người giải quyết SMT bên trong các hệ thống bằng chứng như Isabelle / HOL, bằng cách xây dựng các chiến thuật của Isabelle / HOL để phản ánh các quy tắc suy luận trong dấu vết bằng chứng của SMT; xem Tái tạo bằng chứng kiểu LCF nhanh cho Z3 của Böhmer và Weber tại ITP 2010.
Các bộ giải ASP hàng đầu trong vài năm qua đã được phát triển để cạnh tranh với các bộ giải chỉ có CP, SMT và SAT. Tôi chỉ quen thuộc một cách mơ hồ với các chi tiết triển khai đã cho phép những người giải quyết như clasp
có khả năng cạnh tranh nên không thể thực sự so sánh những điều này với SMT và CP, nhưng clasp quảng cáo rõ ràng sự tập trung của nó vào việc học các nogoods.
Vượt qua ranh giới truyền thống giữa các chủ nghĩa hình thức này là dịch từ các biểu diễn vấn đề trừu tượng hơn sang các hình thức chính thức có thể thực hiện ở mức độ thấp hơn. Một số bộ giải ASP và CP hàng đầu hiện nay đã dịch rõ ràng đầu vào của chúng thành một thể hiện SAT, sau đó được giải quyết bằng cách sử dụng bộ giải SAT ngoài luồng. Trong CP, trợ lý mô hình ràng buộc Savile Row sử dụng các kỹ thuật thiết kế trình biên dịch để dịch các vấn đề được thể hiện bằng bản chất ngôn ngữ trung bình 'sang dạng hình thức cấp thấp hơn, phù hợp để nhập vào các bộ giải CP như Minion hoặc MiniZinc . Savile Row ban đầu làm việc với đại diện CP là chủ nghĩa hình thức cấp thấp nhưng đã giới thiệu SAT như một mục tiêu trong phiên bản 1.6.2. Hơn nữa, Tinh hoa ngôn ngữ cấp cao hơnbây giờ có thể được tự động dịch sang Tinh hoa 'bằng công cụ Conjure . Đồng thời, những người giải quyết SAT chỉ ở mức độ thấp như Lingeling tiếp tục được cải tiến mỗi năm, gần đây nhất là bằng cách xen kẽ các giai đoạn học tập và xử lý; xem tổng quan ngắn gọn Những gì hấp dẫn trong các cuộc thi SAT và ASP của Heule và Schaub trong AAAI 2015.
Sự tương đồng với lịch sử của các ngôn ngữ lập trình do đó có vẻ phù hợp. SAT đang trở thành một loại "mã máy", nhắm đến một mô hình khám phá các mệnh đề cấp thấp trong cấu trúc mệnh đề. Các mô hình trừu tượng đang trở nên giống như các ngôn ngữ máy tính cấp cao hơn, với các phương pháp và ứng dụng riêng biệt của chúng, chúng rất giỏi trong việc giải quyết. Cuối cùng, bộ sưu tập liên kết ngày càng dày đặc giữa các lớp khác nhau này đang bắt đầu giống với hệ sinh thái tối ưu hóa trình biên dịch.