fbpx
Wikipedia

Answer set programming

Answer set programming (ASP) is a form of declarative programming oriented towards difficult (primarily NP-hard) search problems. It is based on the stable model (answer set) semantics of logic programming. In ASP, search problems are reduced to computing stable models, and answer set solvers—programs for generating stable models—are used to perform search. The computational process employed in the design of many answer set solvers is an enhancement of the DPLL algorithm and, in principle, it always terminates (unlike Prolog query evaluation, which may lead to an infinite loop).

In a more general sense, ASP includes all applications of answer sets to knowledge representation and reasoning[1][2] and the use of Prolog-style query evaluation for solving problems arising in these applications.

History Edit

An early example of answer set programming was the planning method proposed in 1997 by Dimopoulos, Nebel and Köhler.[3][4] Their approach is based on the relationship between plans and stable models.[5] In 1998 Soininen and Niemelä[6] applied what is now known as answer set programming to the problem of product configuration.[4] In 1999, the term "answer set programming" appeared for the first time in a book The Logic Programming Paradigm as the title of a collection of two papers.[4] The first of these papers identified the use of answer set solvers for search as a new programming paradigm.[7] That same year Niemelä also proposed "logic programs with stable model semantics" as a new paradigm.[8]

Answer set programming language AnsProlog Edit

Lparse is the name of the program that was originally created as a grounding tool (front-end) for the answer set solver smodels. The language that Lparse accepts is now commonly called AnsProlog,[9] short for Answer Set Programming in Logic.[10] It is now used in the same way in many other answer set solvers, including , clasp, cmodels, gNt, nomore++ and pbmodels. (dlv is an exception; the syntax of ASP programs written for dlv is somewhat different.)

An AnsProlog program consists of rules of the form

<head> :- <body> . 

The symbol :- ("if") is dropped if <body> is empty; such rules are called facts. The simplest kind of Lparse rules are rules with constraints.

One other useful construct included in this language is choice. For instance, the choice rule

{p,q,r}. 

says: choose arbitrarily which of the atoms   to include in the stable model. The Lparse program that contains this choice rule and no other rules has 8 stable models—arbitrary subsets of  . The definition of a stable model was generalized to programs with choice rules.[11] Choice rules can be treated also as abbreviations for propositional formulas under the stable model semantics.[12] For instance, the choice rule above can be viewed as shorthand for the conjunction of three "excluded middle" formulas:

 

The language of Lparse allows us also to write "constrained" choice rules, such as

1{p,q,r}2. 

This rule says: choose at least 1 of the atoms  , but not more than 2. The meaning of this rule under the stable model semantics is represented by the propositional formula

 
 

Cardinality bounds can be used in the body of a rule as well, for instance:

:- 2{p,q,r}. 

Adding this constraint to an Lparse program eliminates the stable models that contain at least 2 of the atoms  . The meaning of this rule can be represented by the propositional formula

 

Variables (capitalized, as in Prolog) are used in Lparse to abbreviate collections of rules that follow the same pattern, and also to abbreviate collections of atoms within the same rule. For instance, the Lparse program

p(a). p(b). p(c). q(X) :- p(X), X!=a. 

has the same meaning as

p(a). p(b). p(c). q(b). q(c). 

The program

p(a). p(b). p(c). {q(X):-p(X)}2. 

is shorthand for

p(a). p(b). p(c). {q(a), q(b), q(c)}2. 

A range is of the form:

(start..end) 

where start and end are constant-valued arithmetic expressions. A range is a notational shortcut that is mainly used to define numerical domains in a compatible way. For example, the fact

a(1..3). 

is a shortcut for

a(1). a(2). a(3). 

Ranges can also be used in rule bodies with the same semantics.

A conditional literal is of the form:

p(X):q(X) 

If the extension of q is {q(a1), q(a2), ..., q(aN)}, the above condition is semantically equivalent to writing {p(a1), p(a2), ..., p(aN)} in the place of the condition. For example,

q(1..2). a :- 1 {p(X):q(X)}. 

is a shorthand for

q(1). q(2). a :- 1 {p(1), p(2)}. 

Generating stable models Edit

To find a stable model of the Lparse program stored in file ${filename} we use the command

% lparse ${filename} | smodels 

Option 0 instructs smodels to find all stable models of the program. For instance, if file test contains the rules

1{p,q,r}2. s :- not p. 

then the command produces the output

% lparse test | smodels 0 Answer: 1 Stable Model: q p  Answer: 2 Stable Model: p  Answer: 3 Stable Model: r p  Answer: 4 Stable Model: q s  Answer: 5 Stable Model: r s  Answer: 6 Stable Model: r q s 

Examples of ASP programs Edit

Graph coloring Edit

An  -coloring of a graph   is a function   such that   for every pair of adjacent vertices  . We would like to use ASP to find an  -coloring of a given graph (or determine that it does not exist).

This can be accomplished using the following Lparse program:

c(1..n). 1 {color(X,I) : c(I)} 1 :- v(X). :- color(X,I), color(Y,I), e(X,Y), c(I). 

Line 1 defines the numbers   to be colors. According to the choice rule in Line 2, a unique color   should be assigned to each vertex  . The constraint in Line 3 prohibits assigning the same color to vertices   and   if there is an edge connecting them.

If we combine this file with a definition of  , such as

v(1..100). % 1,...,100 are vertices e(1,55). % there is an edge from 1 to 55 . . . 

and run smodels on it, with the numeric value of   specified on the command line, then the atoms of the form   in the output of smodels will represent an  -coloring of  .

The program in this example illustrates the "generate-and-test" organization that is often found in simple ASP programs. The choice rule describes a set of "potential solutions"—a simple superset of the set of solutions to the given search problem. It is followed by a constraint, which eliminates all potential solutions that are not acceptable. However, the search process employed by smodels and other answer set solvers is not based on trial and error.

Large clique Edit

A clique in a graph is a set of pairwise adjacent vertices. The following Lparse program finds a clique of size   in a given directed graph, or determines that it does not exist:

n {in(X) : v(X)}. :- in(X), in(Y), X!=Y, not e(X,Y). 

This is another example of the generate-and-test organization. The choice rule in Line 1 "generates" all sets consisting of   vertices. The constraint in Line 2 "weeds out" the sets that are not cliques.

Hamiltonian cycle Edit

A Hamiltonian cycle in a directed graph is a cycle that passes through each vertex of the graph exactly once. The following Lparse program can be used to find a Hamiltonian cycle in a given directed graph if it exists; we assume that 0 is one of the vertices.

{in(X,Y)} :- e(X,Y).  :- 2 {in(X,Y) : e(X,Y)}, v(X). :- 2 {in(X,Y) : e(X,Y)}, v(Y).  r(X) :- in(0,X), v(X). r(Y) :- r(X), in(X,Y), e(X,Y).  :- not r(X), v(X). 

The choice rule in Line 1 "generates" all subsets of the set of edges. The three constraints "weed out" the subsets that are not Hamiltonian cycles. The last of them uses the auxiliary predicate   ("  is reachable from 0") to prohibit the vertices that do not satisfy this condition. This predicate is defined recursively in Lines 6 and 7.

This program is an example of the more general "generate, define and test" organization: it includes the definition of an auxiliary predicate that helps us eliminate all "bad" potential solutions.

Dependency parsing Edit

In natural language processing, dependency-based parsing can be formulated as an ASP problem.[13] The following code parses the Latin sentence "Puella pulchra in villa linguam latinam discit", "the pretty girl is learning Latin in the villa". The syntax tree is expressed by the arc predicates which represent the dependencies between the words of the sentence. The computed structure is a linearly ordered rooted tree.

% ********** input sentence ********** word(1, puella). word(2, pulchra). word(3, in). word(4, villa). word(5, linguam). word(6, latinam). word(7, discit). % ********** lexicon ********** 1{ node(X, attr(pulcher, a, fem, nom, sg)); node(X, attr(pulcher, a, fem, abl, sg)) }1 :- word(X, pulchra). node(X, attr(latinus, a, fem, acc, sg)) :- word(X, latinam). 1{ node(X, attr(puella, n, fem, nom, sg)); node(X, attr(puella, n, fem, abl, sg)) }1 :- word(X, puella). 1{ node(X, attr(villa, n, fem, nom, sg)); node(X, attr(villa, n, fem, abl, sg)) }1 :- word(X, villa). node(X, attr(linguam, n, fem, acc, sg)) :- word(X, linguam). node(X, attr(discere, v, pres, 3, sg)) :- word(X, discit). node(X, attr(in, p)) :- word(X, in). % ********** syntactic rules ********** 0{ arc(X, Y, subj) }1 :- node(X, attr(_, v, _, 3, sg)), node(Y, attr(_, n, _, nom, sg)). 0{ arc(X, Y, dobj) }1 :- node(X, attr(_, v, _, 3, sg)), node(Y, attr(_, n, _, acc, sg)). 0{ arc(X, Y, attr) }1 :- node(X, attr(_, n, Gender, Case, Number)), node(Y, attr(_, a, Gender, Case, Number)). 0{ arc(X, Y, prep) }1 :- node(X, attr(_, p)), node(Y, attr(_, n, _, abl, _)), X < Y. 0{ arc(X, Y, adv) }1 :- node(X, attr(_, v, _, _, _)), node(Y, attr(_, p)), not leaf(Y). % ********** guaranteeing the treeness of the graph ********** 1{ root(X):node(X, _) }1. :- arc(X, Z, _), arc(Y, Z, _), X != Y. :- arc(X, Y, L1), arc(X, Y, L2), L1 != L2. path(X, Y) :- arc(X, Y, _). path(X, Z) :- arc(X, Y, _), path(Y, Z). :- path(X, X). :- root(X), node(Y, _), X != Y, not path(X, Y). leaf(X) :- node(X, _), not arc(X, _, _). 

Language standardization and ASP Competition Edit

The ASP standardization working group produced a standard language specification, called ASP-Core-2,[14] towards which recent ASP systems are converging. ASP-Core-2 is the reference language for the Answer Set Programming Competition, in which ASP solvers are periodically benchmarked over a number of reference problems.

Comparison of implementations Edit

Early systems, such as smodels, used backtracking to find solutions. As the theory and practice of Boolean SAT solvers evolved, a number of ASP solvers were built on top of SAT solvers, including ASSAT and Cmodels. These converted ASP formula into SAT propositions, applied the SAT solver, and then converted the solutions back to ASP form. More recent systems, such as Clasp, use a hybrid approach, using conflict-driven algorithms inspired by SAT, without fully converting into a Boolean-logic form. These approaches allow for significant improvements of performance, often by an order of magnitude, over earlier backtracking algorithms.

The Potassco project acts as an umbrella for many of the systems below, including clasp, grounding systems (gringo), incremental systems (iclingo), constraint solvers (clingcon), action language to ASP compilers (coala), distributed Message Passing Interface implementations (claspar), and many others.

Most systems support variables, but only indirectly, by forcing grounding, by using a grounding system such as Lparse or gringo as a front end. The need for grounding can cause a combinatorial explosion of clauses; thus, systems that perform on-the-fly grounding might have an advantage.[15]

Query-driven implementations of answer set programming, such as the Galliwasp system[16] and s(CASP)[17] avoid grounding altogether by using a combination of resolution and coinduction.

Platform Features Mechanics
Name OS Licence Variables Function symbols Explicit sets Explicit lists Disjunctive (choice rules) support
ASPeRiX 2016-11-08 at the Wayback Machine Linux GPL Yes No on-the-fly grounding
Solaris Freeware SAT-solver based
Clasp Answer Set Solver Linux, macOS, Windows MIT License Yes, in Clingo Yes No No Yes incremental, SAT-solver inspired (nogood, conflict-driven)
Cmodels Linux, Solaris GPL Requires grounding Yes incremental, SAT-solver inspired (nogood, conflict-driven)
diff-SAT Linux, macOS, Windows (Java virtual machine) MIT License Requires grounding Yes SAT-solver inspired (nogood, conflict-driven). Supports solving probabilistic problems and answer set sampling
DLV Linux, macOS, Windows[18] free for academic and non-commercial educational use, and for non-profit organizations[18] Yes Yes No No Yes not Lparse compatible
DLV-Complex Linux, macOS, Windows GPL Yes Yes Yes Yes built on top of DLV — not Lparse compatible
GnT Linux GPL Requires grounding Yes built on top of smodels
nomore++ Linux GPL combined literal+rule-based
Platypus Linux, Solaris, Windows GPL distributed, multi-threaded nomore++, smodels
Pbmodels Linux ? pseudo-boolean solver based
Smodels Linux, macOS, Windows GPL Requires grounding No No No No
Smodels-cc 2015-11-15 at the Wayback Machine Linux ? Requires grounding SAT-solver based; smodels w/conflict clauses
Sup Linux ? SAT-solver based

See also Edit

References Edit

  1. ^ Baral, Chitta (2003). Knowledge Representation, Reasoning and Declarative Problem Solving. Cambridge University Press. ISBN 978-0-521-81802-5.
  2. ^ Gelfond, Michael (2008). "Answer sets". In van Harmelen, Frank; Lifschitz, Vladimir; Porter, Bruce (eds.). Handbook of Knowledge Representation. Elsevier. pp. 285–316. ISBN 978-0-08-055702-1. as PDF 2016-03-03 at the Wayback Machine
  3. ^ Dimopoulos, Y.; Nebel, B.; Köhler, J. (1997). "Encoding planning problems in non-monotonic logic programs". In Steel, Sam; Alami, Rachid (eds.). Recent Advances in AI Planning: 4th European Conference on Planning, ECP'97, Toulouse, France, September 24–26, 1997, Proceedings. Lecture Notes in Computer Science: Lecture Notes in Artificial Intelligence. Vol. 1348. Springer. pp. 273–285. ISBN 978-3-540-63912-1.
  4. ^ a b c Lifschitz, Vladimir (13 July 2008). "What is answer set programming?" (PDF). Proceedings of the 23rd National Conference on Artificial Intelligence. AAAI Press. 3: 1594–1597.
  5. ^ Subrahmanian, V.S.; Zaniolo, C. (1995). "Relating stable models and AI planning domains". In Sterling, Leon (ed.). Logic Programming: Proceedings of the Twelfth International Conference on Logic Programming. MIT Press. pp. 233–247. ISBN 978-0-262-69177-2. as Postscript
  6. ^ Soininen, T.; Niemelä, I. (1998), Formalizing configuration knowledge using rules with choices (Postscript), Laboratory of Information Processing Science, Helsinki University of Technology
  7. ^ Marek, V.; Truszczyński, M. (20 May 1999). "Stable models and an alternative logic programming paradigm". In Apt, Krzysztof R. (ed.). The Logic programming paradigm: a 25-year perspective (PDF). Springer. pp. 169–181. arXiv:cs/9809032. ISBN 978-3-540-65463-6.
  8. ^ Niemelä, I. (November 1999). "Logic programs with stable model semantics as a constraint programming paradigm" (Postscript,gzipped). Annals of Mathematics and Artificial Intelligence. 25 (3/4): 241–273. doi:10.1023/A:1018930122475. S2CID 14465318.
  9. ^ Crick, Tom (2009). (PDF) (Ph.D.). University of Bath. Docket 20352. Archived from the original (PDF) on 2016-03-04. Retrieved 2011-05-27.
  10. ^ Rogelio Davila. "AnsProlog, an overview" (PowerPoint).
  11. ^ Niemelä, I.; Simons, P.; Soinenen, T. (2000). "Stable model semantics of weight constraint rules". In Gelfond, Michael; Leone, Nicole; Pfeifer, Gerald (eds.). Logic Programming and Nonmonotonic Reasoning: 5th International Conference, LPNMR '99, El Paso, Texas, USA, December 2–4, 1999 Proceedings. Lecture Notes in Computer Science: Lecture Notes in Artificial Intelligence. Vol. 1730. Springer. pp. 317–331. ISBN 978-3-540-66749-0. as Postscript
  12. ^ Ferraris, P.; Lifschitz, V. (January 2005). "Weight constraints as nested expressions". Theory and Practice of Logic Programming. 5 (1–2): 45–74. arXiv:cs/0312045. doi:10.1017/S1471068403001923. S2CID 5051610. as Postscript
  13. ^ "Dependency parsing". Archived from the original on 2015-04-15. Retrieved 2015-04-15.
  14. ^ "ASP-Core-2 Input Language Specification" (PDF). Retrieved 14 May 2018.
  15. ^ Lefèvre, Claire; Béatrix, Christopher; Stéphan, Igor; Garcia, Laurent (May 2017). "ASPeRiX, a first-order forward chaining approach for answer set computing*". Theory and Practice of Logic Programming. 17 (3): 266–310. arXiv:1503.07717. doi:10.1017/S1471068416000569. ISSN 1471-0684. S2CID 2371655.
  16. ^ Marple, Kyle.; Gupta, Gopal. (2012). "Galliwasp: A Goal-Directed Answer Set Solver". In Albert, Elvira (ed.). Logic-Based Program Synthesis and Transformation, 22nd International Symposium, LOPSTR 2012, Leuven, Belgium, September 18-20, 2012, Revised Selected Papers. Springer. pp. 122–136.
  17. ^ Arias, J.; Carro, M.; Salazar, E.; Marple, K.; Gupta, G. (2018). "Constraint Answer Set Programming without Grounding". Theory and Practice of Logic Programming. 18 (3–4): 337–354. arXiv:1804.11162. doi:10.1017/S1471068418000285. S2CID 13754645.
  18. ^ a b "DLV System company page". DLVSYSTEM s.r.l. Retrieved 16 November 2011.

External links Edit

  • ASP-Core-2 2.03c Input Language Specification
  • Second ASP Competition
  • Third ASP Competition
  • Fourth ASP Competition
  • Platypus
  • A variety of answer set solvers packaged for Debian / Ubuntu
  • Clasp Answer Set Solver

answer, programming, confused, with, active, server, pages, form, declarative, programming, oriented, towards, difficult, primarily, hard, search, problems, based, stable, model, answer, semantics, logic, programming, search, problems, reduced, computing, stab. Not to be confused with Active Server Pages Answer set programming ASP is a form of declarative programming oriented towards difficult primarily NP hard search problems It is based on the stable model answer set semantics of logic programming In ASP search problems are reduced to computing stable models and answer set solvers programs for generating stable models are used to perform search The computational process employed in the design of many answer set solvers is an enhancement of the DPLL algorithm and in principle it always terminates unlike Prolog query evaluation which may lead to an infinite loop In a more general sense ASP includes all applications of answer sets to knowledge representation and reasoning 1 2 and the use of Prolog style query evaluation for solving problems arising in these applications Contents 1 History 2 Answer set programming language AnsProlog 3 Generating stable models 4 Examples of ASP programs 4 1 Graph coloring 4 2 Large clique 4 3 Hamiltonian cycle 4 4 Dependency parsing 5 Language standardization and ASP Competition 6 Comparison of implementations 7 See also 8 References 9 External linksHistory EditAn early example of answer set programming was the planning method proposed in 1997 by Dimopoulos Nebel and Kohler 3 4 Their approach is based on the relationship between plans and stable models 5 In 1998 Soininen and Niemela 6 applied what is now known as answer set programming to the problem of product configuration 4 In 1999 the term answer set programming appeared for the first time in a book The Logic Programming Paradigm as the title of a collection of two papers 4 The first of these papers identified the use of answer set solvers for search as a new programming paradigm 7 That same year Niemela also proposed logic programs with stable model semantics as a new paradigm 8 Answer set programming language AnsProlog EditLparse is the name of the program that was originally created as a grounding tool front end for the answer set solver smodels The language that Lparse accepts is now commonly called AnsProlog 9 short for Answer Set Programming in Logic 10 It is now used in the same way in many other answer set solvers including assat clasp cmodels gNt nomore and pbmodels dlv is an exception the syntax of ASP programs written for dlv is somewhat different An AnsProlog program consists of rules of the form lt head gt lt body gt The symbol if is dropped if lt body gt is empty such rules are called facts The simplest kind of Lparse rules are rules with constraints One other useful construct included in this language is choice For instance the choice rule p q r says choose arbitrarily which of the atoms p q r displaystyle p q r nbsp to include in the stable model The Lparse program that contains this choice rule and no other rules has 8 stable models arbitrary subsets of p q r displaystyle p q r nbsp The definition of a stable model was generalized to programs with choice rules 11 Choice rules can be treated also as abbreviations for propositional formulas under the stable model semantics 12 For instance the choice rule above can be viewed as shorthand for the conjunction of three excluded middle formulas p p q q r r displaystyle p lor neg p land q lor neg q land r lor neg r nbsp The language of Lparse allows us also to write constrained choice rules such as 1 p q r 2 This rule says choose at least 1 of the atoms p q r displaystyle p q r nbsp but not more than 2 The meaning of this rule under the stable model semantics is represented by the propositional formula p p q q r r displaystyle p lor neg p land q lor neg q land r lor neg r nbsp p q r p q r displaystyle land p lor q lor r land neg p land q land r nbsp dd Cardinality bounds can be used in the body of a rule as well for instance 2 p q r Adding this constraint to an Lparse program eliminates the stable models that contain at least 2 of the atoms p q r displaystyle p q r nbsp The meaning of this rule can be represented by the propositional formula p q p r q r displaystyle neg p land q lor p land r lor q land r nbsp dd Variables capitalized as in Prolog are used in Lparse to abbreviate collections of rules that follow the same pattern and also to abbreviate collections of atoms within the same rule For instance the Lparse program p a p b p c q X p X X a has the same meaning as p a p b p c q b q c The program p a p b p c q X p X 2 is shorthand for p a p b p c q a q b q c 2 A range is of the form start end where start and end are constant valued arithmetic expressions A range is a notational shortcut that is mainly used to define numerical domains in a compatible way For example the fact a 1 3 is a shortcut for a 1 a 2 a 3 Ranges can also be used in rule bodies with the same semantics A conditional literal is of the form p X q X If the extension of q is q a1 q a2 q aN the above condition is semantically equivalent to writing p a1 p a2 p aN in the place of the condition For example q 1 2 a 1 p X q X is a shorthand for q 1 q 2 a 1 p 1 p 2 Generating stable models EditTo find a stable model of the Lparse program stored in file filename we use the command lparse filename smodels Option 0 instructs smodels to find all stable models of the program For instance if file test contains the rules 1 p q r 2 s not p then the command produces the output lparse test smodels 0 Answer 1 Stable Model q p Answer 2 Stable Model p Answer 3 Stable Model r p Answer 4 Stable Model q s Answer 5 Stable Model r s Answer 6 Stable Model r q sExamples of ASP programs EditGraph coloring Edit An n displaystyle n nbsp coloring of a graph G V E displaystyle G left langle V E right rangle nbsp is a function c o l o r V 1 n displaystyle mathrm color V to 1 dots n nbsp such that c o l o r x c o l o r y displaystyle mathrm color x neq mathrm color y nbsp for every pair of adjacent vertices x y E displaystyle x y in E nbsp We would like to use ASP to find an n displaystyle n nbsp coloring of a given graph or determine that it does not exist This can be accomplished using the following Lparse program c 1 n 1 color X I c I 1 v X color X I color Y I e X Y c I Line 1 defines the numbers 1 n displaystyle 1 dots n nbsp to be colors According to the choice rule in Line 2 a unique color i displaystyle i nbsp should be assigned to each vertex x displaystyle x nbsp The constraint in Line 3 prohibits assigning the same color to vertices x displaystyle x nbsp and y displaystyle y nbsp if there is an edge connecting them If we combine this file with a definition of G displaystyle G nbsp such as v 1 100 1 100 are vertices e 1 55 there is an edge from 1 to 55 and run smodels on it with the numeric value of n displaystyle n nbsp specified on the command line then the atoms of the form c o l o r displaystyle mathrm color dots dots nbsp in the output of smodels will represent an n displaystyle n nbsp coloring of G displaystyle G nbsp The program in this example illustrates the generate and test organization that is often found in simple ASP programs The choice rule describes a set of potential solutions a simple superset of the set of solutions to the given search problem It is followed by a constraint which eliminates all potential solutions that are not acceptable However the search process employed by smodels and other answer set solvers is not based on trial and error Large clique Edit A clique in a graph is a set of pairwise adjacent vertices The following Lparse program finds a clique of size n displaystyle geq n nbsp in a given directed graph or determines that it does not exist n in X v X in X in Y X Y not e X Y This is another example of the generate and test organization The choice rule in Line 1 generates all sets consisting of n displaystyle geq n nbsp vertices The constraint in Line 2 weeds out the sets that are not cliques Hamiltonian cycle Edit A Hamiltonian cycle in a directed graph is a cycle that passes through each vertex of the graph exactly once The following Lparse program can be used to find a Hamiltonian cycle in a given directed graph if it exists we assume that 0 is one of the vertices in X Y e X Y 2 in X Y e X Y v X 2 in X Y e X Y v Y r X in 0 X v X r Y r X in X Y e X Y not r X v X The choice rule in Line 1 generates all subsets of the set of edges The three constraints weed out the subsets that are not Hamiltonian cycles The last of them uses the auxiliary predicate r x displaystyle r x nbsp x displaystyle x nbsp is reachable from 0 to prohibit the vertices that do not satisfy this condition This predicate is defined recursively in Lines 6 and 7 This program is an example of the more general generate define and test organization it includes the definition of an auxiliary predicate that helps us eliminate all bad potential solutions Dependency parsing Edit In natural language processing dependency based parsing can be formulated as an ASP problem 13 The following code parses the Latin sentence Puella pulchra in villa linguam latinam discit the pretty girl is learning Latin in the villa The syntax tree is expressed by the arc predicates which represent the dependencies between the words of the sentence The computed structure is a linearly ordered rooted tree input sentence word 1 puella word 2 pulchra word 3 in word 4 villa word 5 linguam word 6 latinam word 7 discit lexicon 1 node X attr pulcher a fem nom sg node X attr pulcher a fem abl sg 1 word X pulchra node X attr latinus a fem acc sg word X latinam 1 node X attr puella n fem nom sg node X attr puella n fem abl sg 1 word X puella 1 node X attr villa n fem nom sg node X attr villa n fem abl sg 1 word X villa node X attr linguam n fem acc sg word X linguam node X attr discere v pres 3 sg word X discit node X attr in p word X in syntactic rules 0 arc X Y subj 1 node X attr v 3 sg node Y attr n nom sg 0 arc X Y dobj 1 node X attr v 3 sg node Y attr n acc sg 0 arc X Y attr 1 node X attr n Gender Case Number node Y attr a Gender Case Number 0 arc X Y prep 1 node X attr p node Y attr n abl X lt Y 0 arc X Y adv 1 node X attr v node Y attr p not leaf Y guaranteeing the treeness of the graph 1 root X node X 1 arc X Z arc Y Z X Y arc X Y L1 arc X Y L2 L1 L2 path X Y arc X Y path X Z arc X Y path Y Z path X X root X node Y X Y not path X Y leaf X node X not arc X Language standardization and ASP Competition EditThe ASP standardization working group produced a standard language specification called ASP Core 2 14 towards which recent ASP systems are converging ASP Core 2 is the reference language for the Answer Set Programming Competition in which ASP solvers are periodically benchmarked over a number of reference problems Comparison of implementations EditEarly systems such as smodels used backtracking to find solutions As the theory and practice of Boolean SAT solvers evolved a number of ASP solvers were built on top of SAT solvers including ASSAT and Cmodels These converted ASP formula into SAT propositions applied the SAT solver and then converted the solutions back to ASP form More recent systems such as Clasp use a hybrid approach using conflict driven algorithms inspired by SAT without fully converting into a Boolean logic form These approaches allow for significant improvements of performance often by an order of magnitude over earlier backtracking algorithms The Potassco project acts as an umbrella for many of the systems below including clasp grounding systems gringo incremental systems iclingo constraint solvers clingcon action language to ASP compilers coala distributed Message Passing Interface implementations claspar and many others Most systems support variables but only indirectly by forcing grounding by using a grounding system such as Lparse or gringo as a front end The need for grounding can cause a combinatorial explosion of clauses thus systems that perform on the fly grounding might have an advantage 15 Query driven implementations of answer set programming such as the Galliwasp system 16 and s CASP 17 avoid grounding altogether by using a combination of resolution and coinduction Platform Features MechanicsName OS Licence Variables Function symbols Explicit sets Explicit lists Disjunctive choice rules supportASPeRiX Archived 2016 11 08 at the Wayback Machine Linux GPL Yes No on the fly groundingASSAT Solaris Freeware SAT solver basedClasp Answer Set Solver Linux macOS Windows MIT License Yes in Clingo Yes No No Yes incremental SAT solver inspired nogood conflict driven Cmodels Linux Solaris GPL Requires grounding Yes incremental SAT solver inspired nogood conflict driven diff SAT Linux macOS Windows Java virtual machine MIT License Requires grounding Yes SAT solver inspired nogood conflict driven Supports solving probabilistic problems and answer set samplingDLV Linux macOS Windows 18 free for academic and non commercial educational use and for non profit organizations 18 Yes Yes No No Yes not Lparse compatibleDLV Complex Linux macOS Windows GPL Yes Yes Yes Yes built on top of DLV not Lparse compatibleGnT Linux GPL Requires grounding Yes built on top of smodelsnomore Linux GPL combined literal rule basedPlatypus Linux Solaris Windows GPL distributed multi threaded nomore smodelsPbmodels Linux pseudo boolean solver basedSmodels Linux macOS Windows GPL Requires grounding No No No NoSmodels cc Archived 2015 11 15 at the Wayback Machine Linux Requires grounding SAT solver based smodels w conflict clausesSup Linux SAT solver basedSee also EditDefault logic Logic programming Non monotonic logic Prolog Stable model semanticsReferences Edit Baral Chitta 2003 Knowledge Representation Reasoning and Declarative Problem Solving Cambridge University Press ISBN 978 0 521 81802 5 Gelfond Michael 2008 Answer sets In van Harmelen Frank Lifschitz Vladimir Porter Bruce eds Handbook of Knowledge Representation Elsevier pp 285 316 ISBN 978 0 08 055702 1 as PDF Archived 2016 03 03 at the Wayback Machine Dimopoulos Y Nebel B Kohler J 1997 Encoding planning problems in non monotonic logic programs In Steel Sam Alami Rachid eds Recent Advances in AI Planning 4th European Conference on Planning ECP 97 Toulouse France September 24 26 1997 Proceedings Lecture Notes in Computer Science Lecture Notes in Artificial Intelligence Vol 1348 Springer pp 273 285 ISBN 978 3 540 63912 1 as Postscript a b c Lifschitz Vladimir 13 July 2008 What is answer set programming PDF Proceedings of the 23rd National Conference on Artificial Intelligence AAAI Press 3 1594 1597 Subrahmanian V S Zaniolo C 1995 Relating stable models and AI planning domains In Sterling Leon ed Logic Programming Proceedings of the Twelfth International Conference on Logic Programming MIT Press pp 233 247 ISBN 978 0 262 69177 2 as Postscript Soininen T Niemela I 1998 Formalizing configuration knowledge using rules with choices Postscript Laboratory of Information Processing Science Helsinki University of Technology Marek V Truszczynski M 20 May 1999 Stable models and an alternative logic programming paradigm In Apt Krzysztof R ed The Logic programming paradigm a 25 year perspective PDF Springer pp 169 181 arXiv cs 9809032 ISBN 978 3 540 65463 6 Niemela I November 1999 Logic programs with stable model semantics as a constraint programming paradigm Postscript gzipped Annals of Mathematics and Artificial Intelligence 25 3 4 241 273 doi 10 1023 A 1018930122475 S2CID 14465318 Crick Tom 2009 Superoptimisation Provably Optimal Code Generation using Answer Set Programming PDF Ph D University of Bath Docket 20352 Archived from the original PDF on 2016 03 04 Retrieved 2011 05 27 Rogelio Davila AnsProlog an overview PowerPoint Niemela I Simons P Soinenen T 2000 Stable model semantics of weight constraint rules In Gelfond Michael Leone Nicole Pfeifer Gerald eds Logic Programming and Nonmonotonic Reasoning 5th International Conference LPNMR 99 El Paso Texas USA December 2 4 1999 Proceedings Lecture Notes in Computer Science Lecture Notes in Artificial Intelligence Vol 1730 Springer pp 317 331 ISBN 978 3 540 66749 0 as Postscript Ferraris P Lifschitz V January 2005 Weight constraints as nested expressions Theory and Practice of Logic Programming 5 1 2 45 74 arXiv cs 0312045 doi 10 1017 S1471068403001923 S2CID 5051610 as Postscript Dependency parsing Archived from the original on 2015 04 15 Retrieved 2015 04 15 ASP Core 2 Input Language Specification PDF Retrieved 14 May 2018 Lefevre Claire Beatrix Christopher Stephan Igor Garcia Laurent May 2017 ASPeRiX a first order forward chaining approach for answer set computing Theory and Practice of Logic Programming 17 3 266 310 arXiv 1503 07717 doi 10 1017 S1471068416000569 ISSN 1471 0684 S2CID 2371655 Marple Kyle Gupta Gopal 2012 Galliwasp A Goal Directed Answer Set Solver In Albert Elvira ed Logic Based Program Synthesis and Transformation 22nd International Symposium LOPSTR 2012 Leuven Belgium September 18 20 2012 Revised Selected Papers Springer pp 122 136 Arias J Carro M Salazar E Marple K Gupta G 2018 Constraint Answer Set Programming without Grounding Theory and Practice of Logic Programming 18 3 4 337 354 arXiv 1804 11162 doi 10 1017 S1471068418000285 S2CID 13754645 a b DLV System company page DLVSYSTEM s r l Retrieved 16 November 2011 External links EditASP Core 2 2 03c Input Language Specification First ASP System Competition Second ASP Competition Third ASP Competition Fourth ASP Competition Platypus A variety of answer set solvers packaged for Debian Ubuntu Clasp Answer Set Solver Retrieved from https en wikipedia org w index php title Answer set programming amp oldid 1179496031, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.