बाधा संतुष्टि की समस्या (CSP) बनाम संतोषजनकता modulo सिद्धांत (SMT); बाधा प्रोग्रामिंग पर एक कोडा के साथ


30

क्या कोई यह स्पष्ट करने का प्रयास करने की हिम्मत करता है कि अध्ययन के इन क्षेत्रों का क्या संबंध है या शायद समस्याओं के स्तर पर और अधिक ठोस जवाब दे सकते हैं? जिसमें कुछ व्यापक रूप से स्वीकृत योगों को शामिल करना शामिल है। अगर मुझे यह सही ढंग से मिला, जब आप एसएटी से एसएमटी में जाते हैं तो आप मूल रूप से सीएसपी के क्षेत्र में प्रवेश कर रहे हैं; इसके विपरीत, यदि आप CSP को उन बूलियनों तक सीमित करते हैं, जो आप मूल रूप से SAT की बात कर रहे हैं और शायद कुछ संबंधित समस्याएं जैसे #SAT। मुझे लगता है कि यह बहुत स्पष्ट है (जैसे cf कोलाइटिस और वर्डी का अध्याय "अ लॉजिकल अप्रोच टू कांस्टीट्यूशन सैटिस्फैक्शन" फ़िनिट मॉडल थ्योरी और इसके अनुप्रयोगों मेंGrädel et al। द्वारा), लेकिन मेरे लिए कम स्पष्ट क्या है जब बाधाएं "modulo a सिद्धांत" हैं और जब वे नहीं हैं? क्या एसएमटी हमेशा सिद्धांत का उपयोग करता है केवल समानता और असमानता बाधाओं का उपयोग हमेशा सीएसपी के व्यापक क्षेत्र में होता है? जहां तक ​​मैं बता सकता हूं, आप अक्सर सुस्त चर पेश कर सकते हैं , इसलिए भेद [यदि यह मौजूद है] स्पष्ट से कम है।

अपेक्षाकृत हाल ही में "सैटिस्फिबिलिटी हैंडबुक" (IOP प्रेस 2009) एसएमटी और सीएसपी दोनों समस्याओं को अपनी व्यापक "संतुष्टि" छतरी के नीचे इकट्ठा करता है, लेकिन इसे जिस तरह से संरचित किया गया है (विभिन्न लेखकों द्वारा लिखे गए अध्याय) वास्तव में मुझे इसका पता लगाने में मदद नहीं करते हैं। ।

मुझे उम्मीद है कि जब आप बाधा प्रोग्रामिंग की बात करते हैं, तो शब्दावली कम भ्रमित होती है , जो ('गणितीय प्रोग्रामिंग' शब्द के साथ समानता से) मुझे उम्मीद है कि इसमें कुछ उद्देश्य फ़ंक्शन को कम करना / अधिकतम करना शामिल है। बाधा प्रोग्रामिंग पर विकिपीडिया लेख इतना अस्पष्ट है कि मैं वास्तव में यह नहीं कह सकता कि यदि यह निर्धारण होता है। फ्रुहविर्थ और अब्देनादेर (पृ। 56) द्वारा कांस्ट्रेन्ड प्रोग्रामिंग की अनिवार्यता से मैं जो इकट्ठा कर सकता हूं, वह यह है कि एक "कांस्टेंट सॉल्वर" आम तौर पर सिर्फ एक संतुष्टिदायक चेकर से अधिक प्रदान करता है, जिसमें सरलीकरण आदि अभ्यास में महत्वपूर्ण है।

यद्यपि यह शायद ही सीएस-सिद्धांत का एक वास्तविक शोध प्रश्न है, लेकिन मैं इस पर अच्छे उत्तर की उम्मीद नहीं करता, जो कि अंडरग्रेजुएट CS.SE साइट पर दिया गया है, जिसे मैंने https://cs.stackexchange.com/questions/14946/distinguish- पर देखा था। निर्णय-प्रक्रिया-बनाम-smt-solver-vs-theorem-prover-vs-constraint-sol (जिसमें बहुत सारे शब्द होते हैं लेकिन ऐसा नहीं है जो मैं एक वास्तविक उत्तर पर विचार करूंगा, अफसोस)।


इस एएसपी में जोड़ें। श्रीमती / एएसपी अपेक्षाकृत हाल के घटनाक्रम। पहले के अलग-अलग क्षेत्र सम्मिश्रण कर रहे हैं। उदाहरण के लिए हाइब्रिड स्वचालित रीज़निंग टूल देखें: ब्लैक-बॉक्स से क्लीयर-बॉक्स इंटीग्रेशन / बलडूसीनी, लियरलर को किसी भी अन्य सर्वेक्षण के रूप में।
vzn

जवाबों:


47

सैट, सीपी, एसएमटी, (बहुत) एएसपी सभी एक ही प्रकार के दहनशील अनुकूलन समस्याओं के सेट से निपटते हैं। हालांकि, वे विभिन्न कोणों से और विभिन्न टूलबॉक्स के साथ इन समस्याओं पर आते हैं। ये अंतर बड़े पैमाने पर हैं कि कैसे प्रत्येक दृष्टिकोण खोज स्थान के अन्वेषण के बारे में जानकारी देता है। मेरी कामकाजी सादृश्यता है कि सैट मशीन कोड है, जबकि अन्य उच्च स्तरीय भाषाएं हैं।

सीएसपी के संरचनात्मक सिद्धांत पर मेरी थीसिस के काम के आधार पर , मुझे विश्वास है कि इन सभी प्रतिमानों को एकजुट करने और यह समझने में कि वे कैसे भिन्न हैं, "खंड संरचना" की धारणा आवश्यक है। SAT उदाहरण का प्रत्येक खंड एक निषिद्ध आंशिक असाइनमेंट का प्रतिनिधित्व करता है; की तरह एक खंड मना करता है आंशिक असाइनमेंट { ( एक्स 1 , 0 ) , ( एक्स 2 , 1 ) , ( एक्स 3 , 0 ) } कि एक साथ सेट एक्सx1x2¯x3{(x1,0),(x2,1),(x3,0)}x1x3x2x1x2¯x3x4x1x2¯x3x4¯x5 are all in the clause structure of that instance.

An approximation of the clause structure is kept to narrow down the set of solutions, and to help determine whether this set is empty. During search some partial assignments may turn out not to be contained in any solution (even if they individually satisfy each of the constraints in the instance). These are known as nogoods, a term introduced by ("Mr GNU") Stallman and Sussman. A nogood clause is therefore in the clause structure and can be included in an approximation of the clause structure, as a compact representation of many clauses that can be pruned from the search for solutions. Adding nogoods to the approximate clause structure retains all the solutions, but better approximates those solutions. So the approximate clause structure usually changes as search progresses. Further, the way the problem is modelled in one of the combinatorial optimisation approaches affects the clause structure, often quite significantly. For instance, propositional variables can represent intervals such as x5 or points such as x=5. Hence there isn't a single general clause structure but one associated with each choice of representation, depending on what the singletons (literals) of the clause structure represent.

Constraint programming (CP) was traditionally an AI discipline, with a focus on scheduling, timetabling, and combinatorial problems, and therefore has a central role for variables that can take more than just two values (but usually only finitely many). CP has emphasised efficient search and, motivated by the traditional applications, has given a central role to the all-different (injectivity) constraint, but has also developed efficient propagators for many other kinds of constraints. The formal definitions of CP have been around since at least Montanari's 1974 paper Networks of constraints, with precursors going back even earlier. This weight of history may have contributed to CP lagging behind other approaches in raw performance over the last decade. CP classically maintains an approximation of the complement of the clause structure, via a set of active domains for the variables. The aim is to eliminate values from the active domains, exploring the clause structure by trying to assign candidate values to variables and backtracking when necessary.

Satisfiability modulo theories (SMT) came out of the verification community. Each theory in an SMT solver forms an implicit representation of potentially infinitely many SAT clauses. The theories used with SMT and the constraints used in CP reflect their different historical applications. Most of the theories SMT considers have to do with integer-indexed arrays, real closed fields, linear orders, and suchlike; these arise from static analysis of programs (in computer aided verification) or when formalising mathematical proofs (in automated reasoning). In contrast, in timetabling and scheduling the injectivity constraint is central, and although the standard SMTLIB language has had an injectivity constraint since its inception in 2003 (via the distinct symbol), until 2010 SMT solvers only implemented distinct via a naive algorithm. At that stage the matching technique from the standard CP propagator for all-different was ported across, to great effect when applied to large lists of variables; see An Alldifferent constraint solver in SMT by Banković and Marić, SMT 2010. Moreover, most CP propagators are designed for problems with finite domains, whereas standard SMT theories deal with infinite domains (integers, and more recently reals) out of the box. SMT uses a SAT instance as the approximation of the clause structure, extracting nogood clauses from the theories as appropriate. A nice overview is Satisfiability Modulo Theories: Introduction and Applications by De Moura and Bjørner, doi:10.1145/1995376.1995394.

Answer set programming (ASP) came out of logic programming. Due to its focus on solving the more general problem of finding a stable model, and also because it allows universal as well as existential quantification, ASP was for many years not competitive with CP or SMT.

Formally, SAT is CSP on Boolean domains, but the focus in SAT on clause learning, good heuristics for conflict detection, and fast ways to backtrack are quite different to the traditional CSP focus on propagators, establishing consistency, and heuristics for variable ordering. SAT is usually extremely efficient, but for many problems huge effort is required to first express the problem as a SAT instance. Using a higher level paradigm like CP can allow a more natural expression of the problem, and then either the CP instance can be translated into SAT by hand, or a tool can take care of the translation. A nice overview of the nuts and bolts of SAT is On Modern Clause-Learning Satisfiability Solvers by Pipatsrisawat and Darwiche, doi:10.1007/s10817-009-9156-3.

Now let's move on from generalities to present day specifics.

Over the last decade some people in CP have started to focus on lazy clause generation (LCG). This is essentially a way to bolt CP propagators together using more flexible SMT-like techniques rather than the rather rigid active domains abstraction. This is useful because there is a long history of published CP propagators to efficiently represent and solve many kinds of problems. (Of course, a similar effect would be achieved by concerted effort to implement new theories for SMT solvers.) LCG has performance that is often competitive with SMT, and for some problems it may be superior. A quick overview is Stuckey's CPAIOR 2010 paper Lazy Clause Generation: Combining the power of SAT and CP (and MIP?) solving, doi:10.1007/978-3-642-13520-0_3. It is also worth reading the position paper of Garcia de la Banda, Stuckey, Van Hentenryck and Wallace, which paints a CP-centric vision of The Future of Optimization Technology, doi:10.1007/s10601-013-9149-z.

As far as I can tell, much of the focus of recent SMT research seems to have shifted to applications in formal methods and formalised mathematics. An example is reconstructing proofs found by SMT solvers inside proof systems such as Isabelle/HOL, by building Isabelle/HOL tactics to reflect inference rules in SMT proof traces; see Fast LCF-Style Proof Reconstruction for Z3 by Böhmer and Weber at ITP 2010.

The top ASP solvers have over the last few years been developed to become competitive with CP, SMT and SAT-only solvers. I'm only vaguely familiar with the implementation details that have allowed solvers such as clasp to be competitive so cannot really compare these with SMT and CP, but clasp explicitly advertises its focus on learning nogoods.

Cutting across the traditional boundaries between these formalisms is translation from more abstract problem representations into lower level efficiently implementable formalisms. Several of the top ASP and CP solvers now explicitly translate their input into a SAT instance, which is then solved using an off-the-shelf SAT solver. In CP, the Savile Row constraint modelling assistant uses compiler design techniques to translate problems expressed in the medium level language Essence' into a lower level formalism, suitable for input to CP solvers such as Minion or MiniZinc. Savile Row originally worked with a CP representation as the low-level formalism but introduced SAT as a target in version 1.6.2. Moreover, the even higher-level language Essence can now be automatically translated into Essence' by the Conjure tool. At the same time, low level SAT-only solvers like Lingeling continue to be refined each year, most recently by alternating clause learning and in-processing phases; see the brief overview What's Hot in the SAT and ASP Competitions by Heule and Schaub in AAAI 2015.

The analogy with the history of programming languages therefore seems appropriate. SAT is becoming a kind of "machine code", targeting a low-level model of exploration of the clauses in the clause structure. The abstract paradigms are becoming more like higher level computer languages, with their own distinct methodologies and applications they are good at addressing. Finally, the increasingly dense collection of links between these different layers is starting to resemble the compiler optimisation ecosystem.


Tks for this very useful answer.
Xavier Labouze

2
Note: in the FOCS/STOC community a narrower definition of CSP is used. These CSPs are of the form CSP(L), "all CSP instances that can be expressed using a fixed set L of constraint relations". The all-different constraint doesn't fit into this framework, nor do problems that have tree-like structure.
András Salamon
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.