Abductive logic programming

Abductive logic programming

Abductive Logic Programming is a high level knowledge-representation framework that can be used to solve problems declaratively based on abductive reasoning. It extends normal Logic Programming by allowing some predicates to be incompletely defined, declared as abducible predicates. Problem solving is effected by deriving hypotheses on these abducible predicates (abductive hypotheses) as solutions of problems to be solved. These problems can be either observations that need to be explained (as in classical abduction) or goals to be achieved (as in normal logic programming). It can be used to solve problems in Diagnosis, Planning, Natural Language and Machine Learning. It has also been used to interpret Negation as failure as a form of abductive reasoning.

yntax

Abductive Logic Programs have three components, , where:

* P is a logic program of exactly the same form as in Logic Programming
* A is a set of predicate names, called the abducible predicates
* IC is a set of first order classical formulae.

Normally, the logic program P does not contain any clauses whose head (or conclusion) refers to an abducible predicate. (This restriction can be made without loss of generality.) Also in practice, many times the integrity constraints in IC are often restricted to the form of denials, i.e. clauses of the form:

false:- A1,...,An, not B1, ..., not Bm.

Such a constraint means that it is not possible for all A1,...,An to be true and at the same time all of B1,...,Bm to be false.

Informal meaning and problem solving

The clauses in P define a set of non-abducible predicates and through this they provide a description (or model) of the problem domain. The integrity constraints in IC specify general properties of the problem domain that need to be respected in any solution of our problem.

A problem, G, which expresses either an observation that needs to be explained or a goal that is desired, is representedby a conjunction of positive and negative (NAF) literals. Such problems are solved by computing "abductive explanations" of G.

An abductive explanation of a problem G is a set of positive (and sometimes also negative) ground instances of the abducible predicates, such that, when these are added to the logic program P, the problem G and the integrity constraints I both hold. Thus abductive explanations extend the logic program P by the addition of full or partial definitions of the abducible predicates. In this way, abductive explanations form solutions of the problem according to the description of the problem domain in P and IC. The extension or completion of the problem description given by the abductive explanations provides new information, hitherto not contained in the solution to the problem. Quality criteria to prefer one solution over another, often expressed via integrity constraints, can be applied to select specific abductive explanations of the problem G.

Computation in ALP combines the backwards reasoning of normal logic programming (to reduce problems to sub-problems) with a kind of integrity checking to show that the abductive explanations satisfy the integrity constraints.

The following two examples, written in simple structured English rather than in the strict syntax of ALP, illustrate the notionof abductive explanation in ALP and its relation to problem solving.

Example 1

The abductive logic program, , has in P the following sentences:

Grass is wet if it rained.
Grass is wet if the sprinkler was on.
The sun was shining.

The abducible predicates in A are "it rained" and "the sprinkler was on" and the only integrity constraintin in ICis:

false if it rained and the sun was shining.

The observation that the grass is wet has two potential explanations, "it rained" and "the sprinkler was on", which entail the observation. However, only the second potential explanation, "the sprinkler was on", satisfies the integrity constraint.

Example 2

Consider the abductive logic program consisting of the following (simplified) clauses:

X is citizen if X is born in USA.
X is citizen if X is born outside USA and X is resident of USA and X is naturalised.
X is citizen if X is born outside USA and Y is mother of X is Y is citizen and X is registered.
Mary is mother of John.
Mary is citizen.

together with the four abducible predicates, "is born in USA", "is born outside USA, "is resident of USA" and "is naturalised" and the integrity constraint:

false if John is resident of USA.

The goal "John is citizen" has two abductive solutions, one of which is "John is born in USA", the other of which is "John is born outside USA" and "John become registered". The potential solution of becoming a citizen by residence and naturalisation fails because it violates the integrity constraint.

A more complex example that is also written in the more formal syntax of ALP is the following.

Example 3

The abductive logic program below describes a simple model of the lactose metabolism of the bacterium E. Coli. The program P describes the fact that E. coli can feed on the sugar lactose if it makes two enzymes permease and galactosidase. Like all enzymes (E), these are made if they are coded by a gene (G) that is expressed. These enzymes are coded by two genes (lac(y) and lac(z)) in cluster of genes (lac(X)) – called an operon – that is expressed when the amounts (amt) of glucose are lowand lactose are high or when they are both at medium level. The abducibles, A, declare all ground instances of the predicates "amount" as assumable. This reflects the fact that in the model the amounts at any time of the various substances are unknown. This is incomplete information that is to be determined in each problem case. The integrity constraints state that the amount of a substance (S) can only take one value.

Domain Knowledge (P)

feed(lactose):-make(permease),make(galactosidase).
make(Enzyme):-code(Gene,Enzyme),express(Gene).
express(lac(X)):-amount(glucose,low),amount(lactose,hi).
express(lac(X)):-amount(glucose,medium),amount(lactose,medium).
code(lac(y),permease).
code(lac(z),galactosidase).

temperature(low):-amount(glucose,low).

Integrity Constraints (IC)

false :- amount(S,V1), amount(S,V2), V1 eq V2.

Abducibles (A)

abducible_predicate(amount).

The problem goal is G=feed(lactose). This can arise either as an observation to be explained or as a state of affairs to be achieved by finding a plan. This goal has two abductive explanations:

Delta_1={amount(lactose,hi), amount(glucose,low)}

Delta_2={amount(lactose,medium), amount(glucose,medium)}

The decision which of the two to adopt could depend on addition information that is available, e.g. it may be known that when the level of glucose is low then the organism exhibits a certain behaviour - in the model such additional information is that the temperature of the organism is low - and by observing the truth or falsity of this it is possible to choose the first or second explanation respectively.

Once an explanation has been chosen, then this becomes part of the theory, which can be used to draw new conclusions. The explanation and more generally these new conclusions form the solution of the problem.

Formal semantics

The formal semantics of the central notion of an abductive explanation in ALP, can be defined in the following way:

Given an abductive logic program, , an abductive explanation for a problem G is a set Delta of ground atoms on abducible predicates such that:

- P cup Delta models G
- P cup Delta models IC
- P cup Delta is consistent.

This definition is generic in the underlying semantics of Logic Programming. Each particular choice of semantics defines its own entailment relation models, its own notion of consistent logic programs and hence its own notion of what an abductive solution is. In practice, the three main semantics of logic programming --- completion, stable and well-founded semantics --- have been used to define different ALP frameworks.

The integrity constraints IC define "how" they constrain the abductive solutions. There are different views on this. Early work on abduction in Theorist in the context of classical logic was based on the "consistency view" on constraints. In this view, any extension of the given theory with an abductive solution Delta is required to be consistent with the integrity constraints IC: P cup IC cup Delta is consistent. The above definition formalizes the "entailment view": the abductive solution Delta together with P should entail the constraints. This view is the one taken in most versions of ALP and is stronger than the consistency view in the sense that a solution according to the entailment view is a solution according to the consistency view but not vice versa.

The difference between the two views can be subtle but in practice the different views usually coincide. E.g. it frequently happens that Pcup Delta has a unique model, in which case the two views are equivalent. In practice, many ALP systems use the entailment view as this can be easily implemented without the need for any extra specialized procedures for the satisfaction of the integrity constraints since this semantics treats the constraints in the same way as the goal.

Comparison with other frameworks

ALP can be viewed as a refinement of Theorist, which explored the use of abduction in first-order logic for both explanation and default reasoning. Poole later developed a logic programming variant of Theorist, in which abducible predicates have associated probabilities. He showed that probabilistic Horn abduction incorporates both pure Prolog and Bayesian networks as special cases.

There exist strong links between some ALP frameworks and other extensions of Logic Programming. In particular, ALP has close connections with Answer Set Programming. An abductive logic program can be translated into an equivalent answer set program under the stable model semantics. Consequently, systems for computing stable models such as SMODELS can be used to compute abduction in ALPFact|date=February 2008.

ALP is also closely related to Constraint Logic Programming. On the one hand, the integration of constraint solving and abductive logic programming enhances the practical utility of ALP through a more efficient computation of abduction. On the other hand, the integration of ALP and CLP can be seen as a high-level constraint programming environment that allows more modular and flexible representations of the problem domain.

There is also a strong link between ALP and Argumentation in Logic Programming. This relates both to the interpretation of Negation as Failure and Integrity Constraints.

Implementation and systems

Most of the implementations of ALP extend the SLD resolution based computational model of Logic Programming. ALP can also be implemented by means on its link with Answer Set Programming (ASP), where the ASP systems can be employed. Examples of systems of the former approach are ACLP, A-system, CIFF, SCIFF, ABDUAL and ProLogICA.

See also

* Abductive Reasoning
* Answer set programming
* Inductive logic programming
* Negation as failure
* Argumentation

References

* D. Poole, R. Goebel and R. Aleliunas, "Theorist: a logical reasoning system for defaults and diagnosis", in N. Cercone and G. McCalla (Eds.) The Knowledge Frontier: Essays in the Representation of Knowledge, Springer Varlag, New York, 1987, pp. 331-352.
* A.C. Kakas and P. Mancarella, "Generalised Stable Models: A Semantics for Abduction" in "Proceedings of the ninth European Conference on Artificial Intelligence, ECAI-90", Stockholm, Sweden, (ed. L.C. Aiello) Pitman Publishing, pp. 385-391, (1990).
* L.Console, D.T. Dupre and P. Torasso", "On the Relationship between Abduction and Deduction", "Journal of Logic and Computation", Vol 1, no 5, pp. 661-690, 1991.
* A.C. Kakas, R.A. Kowalski and F. Toni, "Abductive Logic Programming", "Journal of Logic and Computation", Vol. 2 no 6, pp. 719-770, (1993).
* Marc Denecker and Danny De Schreye, "SLDNFA: An Abductive Procedure for Abductive Logic Programs", "Journal of Logic Programming", Vol 34, no 2, pp. 111-167, 1998.
* M. Denecker and A.C. Kakas, Abductive Logic Programming, Special issue of "Journal of Logic Programming", JLP, Vol. 44(1-3), Elsevier Science, 2000.
* M. Denecker and A.C. Kakas, Abduction in Logic Programming, in "Computational Logic: Logic Programming and Beyond, LNAI" Vol, 2407, pp. 402-437, Springer Verlag, 2002.
* D. Poole, "Probabilistic Horn abduction and Bayesian networks", Artificial Intelligence, 64(1), 81-129, 1993.

External links

* ACLP: [http://www.cs.ucy.ac.cy/aclp/]
* A-system: [http://www.cs.kuleuven.be/~dtai/krr/Asystem/Asystem/asystem.html]
* ProLogICA: [http://www.doc.ic.ac.uk/~or/proLogICA/]
* CIFF: [http://www.doc.ic.ac.uk/~ue/ciff/]
* ACL: [http://www-lia.deis.unibo.it/Software/ACL/]
* SCIFF: [http://lia.deis.unibo.it/sciff/]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Logic programming — is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy s [1958] advice taker proposal, logic is used as a purely declarative… …   Wikipedia

  • Constraint logic programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

  • Abductive reasoning — Abduction, or inference to the best explanation, is a method of reasoning in which one chooses the hypothesis that would, if true, best explain the relevant evidence. Abductive reasoning starts from a set of accepted facts and infers their most… …   Wikipedia

  • Programming paradigm — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concu …   Wikipedia

  • Programming in the large and programming in the small — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computin …   Wikipedia

  • Constraint programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computin …   Wikipedia

  • Declarative programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

  • Object-oriented programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

  • Comparison of programming paradigms — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computin …   Wikipedia

  • Event-driven programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computin …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”