Constraint Handling Rules - PowerPoint PPT Presentation

About This Presentation
Title:

Constraint Handling Rules

Description:

Logic Programming Constraint Solving. CHR: Language for writing ... Commited choice: When the engine picks a rule ... Commited-choice and Confluence ' ... – PowerPoint PPT presentation

Number of Views:90
Avg rating:3.0/5.0
Slides: 36
Provided by: Mar803
Category:

less

Transcript and Presenter's Notes

Title: Constraint Handling Rules


1
Constraint Handling Rules
  • May, 2005
  • Jairson Vitorino and Marcos Aurélio
  • ORCAS

Orcas
2
Contents
  • CHR
  • Introduction
  • Syntax
  • Operational Semantics
  • Example
  • CHR-?
  • Introduction
  • Operational Semantics
  • Example
  • References

3
CHR
  • Constraint Handling Rules

4
Introduction
  • Constraint Logic Programming
  • Logic Programming Constraint Solving
  • CHR Language for writing Constraint Solvers
  • rule-based
  • Flexible to define new domains
  • Constraint resolution via rules (declarative)

5
Introduction
  • CHR
  • Rewrite rules (pattern matching simplify rules)
  • Plus propagation rules
  • Similiar to production rules (forward chaining),
    but with a well defined semantics
  • CHR disjunction is turing-complete, first-order
    knowledge language and monotonic

Current CSP software packages have fixed domains
and constraints, answer CHR
6
Syntax
  • Constraints
  • User-defined
  • Ex noattack(Q1,Q2), connected(X,Y,3)
  • Built-In
  • Ex AgtB, AB, ground(A)

7
Syntax typical rule
H1,...,Hn ltgtG1,...Gn B1,...,Bn
Multiple Heads
Guards
Body
Both constraint categories
(Only built-in)
(Only user-defined)
Commited choice When the engine picks a
rule there will not be any backtracking, so in
CHR order matters!
8
Syntax
  • Rules
  • Simplification
  • H1,...,Hn ltgt G1,...Gn B1,...,Bn
  • Propagation
  • H1,...,Hn gtG1,...Gn B1,...,Bn
  • Simpagation
  • H1,...,Hn / Hn1,...HnnltgtG1,...Gn B1,...,Bn

9
Operational Semantics
State
User defined Constraints Store (UDCS)
Logical meaning ?y Goal ? UDCS ? BICS
Goal or query
Built-in Constraint Store (BICS)
CHR Program Or Base Rule
CHR ENGINE
Final State true or false
10
Operational Semantics
  • Transitions
  • Solve and Introduce
  • Propagate
  • Simplify
  • Commited-choice and Confluence
  • The confluence property of a program guarantees
    that any computation starting from an arbitrary
    given initial state, i.e. any possible order of
    rule applications, results in the same final
    state.

11
Operational Semantics
  • Transitions (Solve)

Built-in
12
Operational Semantics
  • Transitions (Introduce)

User-defined
13
Operational Semantics
  • Transitions (Simplify)
  • U1,U2 ?B1 U3,U4

Rule in CHR program
14
Operational Semantics
  • Transitions (Propagate)
  • U1,U2 ?B1 U3,U4

Rule in CHR program
15
Operational Semantics
  • Transitions (Simpagate)
  • U1,U2 / U5?B1 U3,U4

Rule in CHR program
16
Example
  • CHR Program
  • XltY ltgt XY true.
  • XltY,YltX ltgt XY.
  • XltY,YltZ gt XltZ.

17
Example
18
Example
19
Example
20
Example
(Logo CltA equivale a BltA)
true
21
Example
Final State
22
CHR-?
  • Constraint Handling Rules with Disjunctions

23
Introduction
  • Allows disjunctions in the bodies of rules and in
    goals
  • It can be used as a general-purpose logic
    programming language

24
Operational Semantics
  • State
  • Minimal set of subgoals
  • Ex a ? (b ? (c ? d)) ? e
  • Logical meaning ?y A
  • Initial State
  • Final State
  • Successful
  • Failed

25
Operational Semantics
  • Transitions (Solve)

26
Operational Semantics
  • Solve
  • To normalize the predefined means to produce a
    new state G that is (according to the logical
    theory T0) logically equivalent to the state G

27
Operational Semantics
  • Transitions (Simplify)
  • b ? c ?f ? g

28
Operational Semantics
  • Transitions (Split)

29
Example
  • bird ? albatross ? penguin.
  • penguin ? flies ? false.

30
Example
31
Example
Final State (no derivation step can be applied)
32
Example K-coloring map
main() ltgt true color(X1),               
 color(X2),                 color(X3),         
       color(X4),               
 connected(X1,X2),               
 connected(X1,X3),               
 connected(X3,X4),               
 connected(X2,X4).connected(X1,X2) ltgt
ground(X1), ground(X2), X1X2 false.color(X)  
      gt true (X1 X2 X3).
33
Example 4-Queens
main() ltgt true c(X1), c(X2), c(X3), c(X4), //
rainhas                 na(X1,X2,1),
 na(X1,X3,2), na(X1,X4,3),               
 na(X2,X3,1),  na(X2,X4,2),               
 na(X3,X4,1), sol(X1,X2,X3,X4).na(X,Y,D) ltgt
ground(X), ground(Y) PYD, MYD, ne(X,Y),
ne(X,P),ne(X,M).c(X) ltgt true (X1 X2
X3 X4).sol(X1,X2,X3,X4) ltgt ground(X1),
ground(X2), ground(X3), ground(X4)            
           write(X1), write(X2), write(X3),
writeLn(X4).
34
Reference
  • Theory and practice of Constraint Handling Rules
    (http//www.pst.informatik.uni-muenchen.de/persone
    n/fruehwir/jlp-chr1/jlp-chr1.html)
  • A languagem for experimenting with Declarative
    Paradigms (http//citeseer.ist.psu.edu/611754.html
    )

35
Reference
  • XSB Prolog
  • http//xsb.sf.net
  • The ECLiPSe Constraint Logic Programming System
  • http//www.icparc.ic.ac.uk/eclipse/
  • WebCHR
  • http//bach.informatik.uni-ulm.de/webchr/
  • JACK Java Constraint Kit
  • http//www.pms.ifi.lmu.de/software/jack/
Write a Comment
User Comments (0)
About PowerShow.com