Download presentation

Presentation is loading. Please wait.

Published byJarod Leuty Modified over 2 years ago

1
1 Pierangelo Dell’Acqua Dept. of Science and Technology Linköping University pier@itn.liu.se Constraint programming 2001 November 13th 2001 http://www.ida.liu.se/labs/logpro/ulfni/cp2001/

2
2 Overview 1 Motivation 2 Language CHR 3 Declarative and operational semantics 4 Properties 5 Examples of CHR constraint solvers

3
3 Based on FTheory and Practice of Constraint Handling Rules Thom Frühwirth, J. Logic Programming 1994:19, 20:1-679 FExamples CHR constraint solvers available at: www.informatik.uni-muenchen.de/~fruehwir/chr/

4
4 Black-box vs Glass-box solvers FIn most systems constraint solving is hard-wired in a built-in constraint solver in a low-level language: black-box approach 3efficiency 3non-extensible, unpredictable, hard to debug FSome systems facilitate defining new constraints and solvers: glass-box approach 3improved control of propagation and search 3examples CHR, HAL,...

5
5 Constraint Handling Rules (CHR) FDeclarative programming language for the specification and implementation of constraint solvers and programs Black-box Host language (Prolog, Lisp, … ) CHR-solver Application CHR-constraints built-in constraints FCHR-constraint solvers are open and flexible, can be maintained, debugged and analysed

6
6 CHR by example The partial order relation X Y as a user-defined constraint: Computation: A=**
{
"@context": "http://schema.org",
"@type": "ImageObject",
"contentUrl": "http://images.slideplayer.com/13/4047029/slides/slide_6.jpg",
"name": "6 CHR by example The partial order relation X Y as a user-defined constraint: Computation: A=
**

7
7 CHR syntax A CHR-program is a finite set of CHR-rules. There are three kinds of CHR-rules: HeadHconjunction of CHR-constraints GuardGconjunction of built-in constraints BodyBconjunction of built-in and CHR-constraints SimplificationH G | B PropagationH = => G | B SimpagationH1 \ H2 G | B

8
8 Declarative semantics Simplification rule H G | B h ( g (G) ( H b ( B ) ) ) Propagation rule H = => G | B h ( g (G) ( H b ( B ) ) ) Simpagation rule H1 \ H2 G | B h 1 h 2 ( g (G) (H1 H2 b (H1 B)))

9
9 Declarative semantics (2) Declarative semantics of a CHR-program P: Sem(P) = L P, CT where L P is the logical reading of the CHR-rules in P and CT is a theory for built-in constraints

10
10 Operational semantics A state is a tuple F,E,D where: F is a conjunction of CHR- and built-in constraints (goal store) E is a conjunction of CHR-constraints (CHR-store) D is a conjunction of built-in constraints (built-in constraints store)

11
11 CHR transitions Solve C F, E, D F, E, D2 if C is a built-in constraint and CT |= (C D) D2 Introduce H F, E, D F, H E, D if H is a CHR-constraint Simplify F, H2 E, D B F, E, H=H2 D if (H G | B) in P and CT |= D h (H=H2 G)

12
12 CHR transitions (2) Propagate F, H2 E, D B F, H2 E, H=H2 D if (H = => G | B) in P and CT |= D h (H=H2 G)

13
13 Initial and final states An initial state consists of a goal G and empty constraint stores: G,true,true A final state is either of the form: (i) F,E,false failed final state or of the form: (ii) true,E,D successful final state where no transition is applicable and D false

14
14 CHR computations A computation of a goal G is a sequence S 0, S 1, … of states with S i S i+1 beginning with the initial state S 0 = G,true,true and ending with a final state or diverging The logical meaning of a state F,E,D , which occurs in a computation for G, is x (F E D), where x are the variables in F,E,D but not in G An answer of a goal G is the final state of a computation for G

15
15 Example CHR calculus X= X=Y | true.reflexivity X= X=Y.antisymmetry X= X=

16
16 Logical equivalence of states CHR transitions preserve the logical meaning of states: Lemma Let P be a CHR program and G a goal. If C is the logical meaning of a state in a computation of G, then L P, CT |= ( G C) There is no distinction between successful and failed computations

17
17 Correspondence between semantics Theorem (Soundness) Let P be a CHR program and G a goal. If G has a computation with answer C, then L P, CT |= ( C G) Theorem (Completeness) Let P be a CHR program and G a goal with at least one finite computation. Let C be a conjunction of constraints. If L P, CT |= (G C), then G has a computation with answer C2 such that L P, CT |= ( C C2)

18
18 Example: completeness The completeness theorem does not hold if G has no finite computations: Let P be { p p } and G the goal p. Since L P is {p p}, it holds that L P,CT |= p p, but G has only an infinite computation

19
19 Example: failed computations The completeness theorem is weak for failed computations: Let P be: We have that L P, CT |= q, but q has no failed computation. It has a successful derivation with answer q. { p q, p false }

20
20 Confluence Confluence: The answer of a goal G is always the same, no matter which of the applicable rules are applied { p q, p false } is not confluent { p q, p false, q false} is confluent

21
21 Soundness and Completeness revisited Theorem (Strong Soundness and Completeness) Let P be a terminating and confluent CHR program, G a goal and C a conjunction of constraints. Then the following are equivalent: L P, CT |= (C G) G has a computation with answer C2 such that: L P, CT |= (C C2) Every computation of G has an answer C2 such that: L P, CT |= (C C2)

22
22 CLP + CHR Any CLP language can be extended with CHR - Allow clauses for CHR constraints: introduce choices - Regard a predicate as a constraint and add CHR rules for it Idea: Don’t know and don’t care nondeterminism combined in a declarative way

23
23 CLP+CHR language A CLP+CHR program is a finite set of : (i)CLP clauses for predicates and CHR constraints, and (ii)CHR rules for CHR constraints. A CLP clause is of the form: H :- B 1,…,B k (k 0) an atom or a CHR constraint not a built-in constraint conjunction of atoms, CHR constraints and built-in constraints

24
24 CLP+CHR language (2) The logical meaning of a CLP clause is given by Clark’s completion Backward compatibility Labelling declarations (see def. 6.1 of JLP paper) are dropped, easily simulated H :- B label-with H if G lw, H G | H2, lw H2 :- B CHR constraint new predicate new CHR constraint

25
25 CLP+CHR transitions Unfold (revisited) H2 F, E, D B F, E, H=H2 D if (H:-B) in P, H2 is a predicate and CT |= D h (H=H2) Label (revisited) F, H2 E, D B F, E, H=H2 D if (H:-B) in P, H2 is a CHR constraint and CT |= D h (H=H2)

26
26 Examples of CHR solvers Several constraint solvers have been written in CHR, including new constraint domains such as terminological and temporal reasoning bool.plboolean constraints arc.plarc-consistency over finite domains interval.plinterval domains over integers and reals list.plequality constraints over concatenation of lists

27
27 Sicstus Prolog + CHR A CHR rule in SicstusProlog+CHR is of the form: H G | B H = => G | B H1 \ H2 G | B where: H is a conjunction of CHR-constraints G is a conjunction of atoms and built-in constraints B is a conjunction of atoms, built-in and CHR-constraints A CHR rule can be fired if its guard G is true Note that during the proof of the guard G no new binding can be generated for variables that occur also in H

Similar presentations

OK

CS5371 Theory of Computation Lecture 4: Automata Theory II (DFA = NFA, Regular Language)

CS5371 Theory of Computation Lecture 4: Automata Theory II (DFA = NFA, Regular Language)

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on phonetic transcription exercises Ppt on conservation of momentum calculator Ppt on polynomials for class 9 download Supply and demand elementary ppt on cells Free download ppt on resources and development Ppt on amplitude shift keying transmitter Ppt on dda line drawing algorithm Free ppt on business communication Flat panel display ppt on tv Ppt on unity in diversity religion