+ All Categories
Home > Documents > slides tabled clp.pdf

slides tabled clp.pdf

Date post: 31-Dec-2016
Category:
Upload: nguyendang
View: 229 times
Download: 0 times
Share this document with a friend
32
A General Implementation Framework for Tabled CLP Pablo Chico de Guzm´ an 1 Manuel Carro 1,2 Manuel V. Hermenegildo 1,2 Peter Stuckey 3 1 IMDEA Software Institute, Spain 2 School of Computer Science, Technical University of Madrid, Spain 3 University of Melbourne, Australia FLOPS’12 — Kobe, Japan — May 25, 2012 Pablo Chico de Guzm´ an (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 1/1
Transcript
Page 1: slides tabled clp.pdf

A General Implementation Frameworkfor Tabled CLP

Pablo Chico de Guzman1 Manuel Carro1,2

Manuel V. Hermenegildo1,2 Peter Stuckey3

1IMDEA Software Institute, Spain2School of Computer Science, Technical University of Madrid, Spain

3University of Melbourne, Australia

FLOPS’12 — Kobe, Japan — May 25, 2012

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 1 / 1

Page 2: slides tabled clp.pdf

Logic Programming

Contents

Introduction to Tabling.

Constraint Logic Programming (CLP).

Main goal: the combination of tabling and CLP.

Applications of Tabled CLP.

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 2 / 1

Page 3: slides tabled clp.pdf

Logic Programming

Prolog basics (SLD resolution)Non-determinism and logical variables

Example

reach(X,Y) :-

edge(X,Z),

reach(Z,Y).

reach(X,Y) :-

edge(X,Y).

edge (1,2).

edge (1,3).

?- reach(1,Y).

Y = 2;

Y = 3;

no

1. reach(1,Y).

2. edge(1,Z), reach(Z,Y). 5. edge(1,Y).

3. reach(2,Y). 4. reach(3,Y). 6. edge(1,2).

7. Y = 2.

9. Y = 3.

10. no

8. edge(1,3).

fail fail

Z=2 Z=3 Y=2Y=3

1

2 3

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 3 / 1

Page 4: slides tabled clp.pdf

Logic Programming

SLD pitfallsInfinite loops

Example

reach(X,Y) :-

edge(X,Z),

reach(Z,Y).

reach(X,Y) :-

edge(X,Y).

edge (1,2).

edge (2,1).

?- reach(1,Y).

...

2

1

1. reach(1,Y).

2. edge(1,Z), reach(Z,Y).

3. reach(2,Y).

4. edge(2,Z), reach(Z,Y).

5. reach(1,Y).

Z=2

Z=1

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 4 / 1

Page 5: slides tabled clp.pdf

Tabling

The tabling algorithm through an example (OLDT resolution)

Example

:- table reach /2.

reach(X,Y) :-

edge(X,Z),

reach(Z,Y).

reach(X,Y) :-

edge(X,Y).

edge (1 ,2).

edge (2 ,1).

?- reach(1,Y).

Y = 1;

Y = 2;

no

Subgoal Answers

10. Y = 1

2. reach(1,Y) 15. Y = 2

18. Complete

9. Y = 1

5. reach(2,Y) 17. Y = 2

18. Complete

1. reach(1,Y).

4. reach(2,Y).

7. reach(1,Y).

3. edge(1,Z), reach(Z,Y). 13. edge(1,Y).

6. edge(2,Z), reach(Z,Y). 8. edge(2,1).

14. edge(1,2).

12. fail

11. reach(1,1). 16. reach(1,2).

Z=2

Z=1

Y=1 Y=2

Y=2

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 5 / 1

Page 6: slides tabled clp.pdf

Tabling

Why is tabling interesting?

Properties:I Conservative extension of Prolog.I Avoid recomputations.I Better termination properties; easier to reason about termination.

F Ensures termination for “bounded term size” programs.F In other cases, less dependent on clause / subgoal order.

Applications:I Deductive databases.I Natural language (left recursive grammars).I Fixpoint: program analysis, reachibility analysis. . .I Well Founded Semantics:

F A predicate can be defined based on its negation.F Semantic web reasoning.

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 6 / 1

Page 7: slides tabled clp.pdf

CLP

Constraint Logic Programming

Natural extension of LP: very general relations between variablesallowed (beyond Herbrand term equality).

Prolog execution inserts new constraints in the constraint store (CS).

Constraint solver checks consistency of CS.

Examplep(X,Y) :-

X #> 5,

X #< 2.

p(X,Y) :-

X #>= 2,

Y #=< 2,

X #= Y.

?- p(X,Y).

X = 2,

Y = 2;

no

1. p(X,Y) CS=�

3. X #<2.

2. X #>5, X #<2. CS=�

CS={X>5}

CS={X>5, X<2}4. fail.

5. X #≥2, Y #≤2, X#=Y.

6. Y #≤2, X#=Y.

7. X#=Y.

8. true.

CS=�

CS={X≥2}

CS={X≥2, Y≤2}

CS={X=2, Y=2}

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 7 / 1

Page 8: slides tabled clp.pdf

Tabled CLP Issues

Interaction between CLP and Tabling

When a call is considered a consumer of a previous generator?

Approach Generator Consumervariant t(1,X,Z) t(1,Y,Z)

subsumption t(1,X,Z) t(1,2,Z)

constraints t(1,X){X>2} t(1,X){X>3}

Previous approaches for tabling with constraints:I Call variant with constraints (syntactic checking):

Generator Consumert(1,X){X>2} t(1,X){X>3}

I Call abstraction (execution without constraints):

Generator Consumert(1,X){X>2} ; t(1,X) t(1,X){X>3} ; t(1,X)

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 8 / 1

Page 9: slides tabled clp.pdf

Tabled CLP Issues

Interaction between CLP and Tabling II

Constraint solver should provide some common constraint operations:I Entailment checking: a set of constraints C1 is entailed by another set

of constraints C2 in the domain D if D |= C2 → C1.

Generator Consumert(1,X){X>2} t(1,X){X>3}

I Projection: the projection of constraint C onto variables V is aconstraint C ′ over variables V such that D |= ∃x .C ↔ C ′ wherex = vars(C )− V .

Generator Consumert(1,X){X>2,Y>3} ; t(1,X){X>2} t(1,X){X>2,Y<1} ; t(1,X){X>2}

Soundness and termination for “constraint-compact” domains:I Similar to “bounded term size” property.I Every infinite set of constraints contains a finite cover.

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 9 / 1

Page 10: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(1,X) {X>3}

Tabling ConstraintSolverengine

Global Table Constraint Store

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 11: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(1,X) {X>3}

Tabling ConstraintSolverengine

Global Table Constraint Storet(1,X)

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 12: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(1,X) {X>3}

Tabling ConstraintSolverengine

Global Table Constraint Storet(1,X) {X>3}

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 13: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(2,X) {X<2}

Tabling ConstraintSolverengine

Global Table Constraint Storet(1,X) {X>3}

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 14: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(2,X) {X<2}

Tabling ConstraintSolverengine

Global Table Constraint Storet(1,X) {X>3}t(2,X)

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 15: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(2,X) {X<2}

Tabling ConstraintSolverengine

Global Table Constraint Storet(1,X) {X>3}t(2,X) {X<2}

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 16: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(1,X) {X<1,Y<1}

Tabling ConstraintSolverengine

Global Table Constraint Storet(1,X) {X>3}t(2,X) {X<2}

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 17: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(1,X) {X<1,Y<1} {X<1}Projection

Tabling ConstraintSolverengine

Global Table Constraint Storet(1,X) {X>3}t(2,X) {X<2}

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 18: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(1,X) {X<1,Y<1} {X<1}Projection

NOEntailment

Tabling ConstraintSolverengine

Global Table Constraint Storet(1,X) {X>3}t(2,X) {X<2}

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 19: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(1,X) {X<1,Y<1} {X<1}Projection

NOEntailment

Tabling ConstraintSolverengine

Global Table Constraint Storet(1,X) {X>3 ∨ X<1}t(2,X) {X<2}

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 20: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(1,X) {X>5,Y<7}

Tabling ConstraintSolverengine

Global Table Constraint Storet(1,X) {X>3 ∨ X<1}t(2,X) {X<2}

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 21: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(1,X) {X>5,Y<7} {X>5}Projection

Tabling ConstraintSolverengine

Global Table Constraint Storet(1,X) {X>3 ∨ X<1}t(2,X) {X<2}

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 22: slides tabled clp.pdf

Implementation Break

Our Tabled CLP frameworkSeparation of concerns

t(1,X) {X>5,Y<7} {X>5}Projection

YESEntailment

Tabling ConstraintSolverengine

Global Table Constraint Storet(1,X) {X>3 ∨ X<1}t(2,X) {X<2}

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 10 / 1

Page 23: slides tabled clp.pdf

Applications of Tabled CLP

Tabled CLP applicationsDifference Constraints

X − Y ≤ d .

Can simulate: X ≤ Max and X ≥ Min, X ≤ Y .

Scheduling problems and temporal reasoning.

X Yd

Constraint solver based on shortest-path algorithms.I Efficient projection and entailment operations.

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 11 / 1

Page 24: slides tabled clp.pdf

Applications of Tabled CLP

Tabled CLP applicationsBasic examples

Entailment vs Constraint call variant:

Example

:- table p/1.

p(X) :-

Y #=< X-1,

p(Y).

p(1).

?- X #=< 10, p(X).

X = 1;

2 #=< X,

X #=< 10;

no

1. p(X){X=<10}

2. Y #=< X−1, p(Y). CS={X=<10}

3. p(Y).

Projection

{Y=<9}

4. X = 1.

Y=1

CS={2=<X=<10}

CS={X=<10,Y=<X−1}

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 12 / 1

Page 25: slides tabled clp.pdf

Applications of Tabled CLP

Entailment vs. Call Abstraction

TCHR: implementation of CHR on top of XSB Prolog with tabling.I It uses call abstraction.

Constraints reduce the search space.

Ciao TCLP TCHR

Reach 30 7 140 129 978

Reach 25 6 680 129 876

Reach 20 5 964 128 955

Reach 15 4 316 129 313

Reach 10 2 296 128 994

Reach 5 427 129 616

Reach 0 1 129 472

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 13 / 1

Page 26: slides tabled clp.pdf

Applications of Tabled CLP

Tabled CLP applicationsTimed Automata I

Definition

Difference constraint to model time relationships:I Invariants and transitions.

Reset initializes a clock variable X to be X = 0.

States apply invariants and arbitrary delays to clock variables.

P processes.

Each process has a clockvariable Xi .

K indicates the nextprocess to enter Qme .

State representation:s([Q1, ...,Qn],K , [X1, ...,Xn]).

Q0 Q1 Q2

Qme

Xi <= 2

K = i, Reset XiReset Xi

K == 0 Xi <= 2

K == i

Xi >= 4K = 0

Xi >= 4, K != i

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 14 / 1

Page 27: slides tabled clp.pdf

Applications of Tabled CLP

Tabled CLP applicationsTimed Automata II

Reachability code

reach(s(Si ,K,X),s(Si ,K,Xd)) :-

delay(X,Xd),

inv(Si ).

reach(s(Si ,Ki,X),s(Sj ,Kf,Yd)) :-

reach(s(Si ,Ki,X),s(Sk ,Kt,Z)),

processes(P),

each_trans(P,s(Sk ,Kt,Z),s(Sj ,Kf,Y)),

delay(Y,Yd),

inv(Sj ).

Q0 Q1 Q2

Qme

Xi <= 2

K = i, Reset XiReset Xi

K == 0 Xi <= 2

K == i

Xi >= 4K = 0

Xi >= 4, K != i

Automata definition

inv(s(q1 ,_,X)) :- X #=< 2.

trans(_,s(q0 ,0,_), s(q1 ,0,X)) :- X #= 0.

trans(P,s(q1 ,_,Xin), s(q2 ,P,Xout)) :- Xin #=< 2, Xout #= 0.

trans(_,s(q2 ,K,X), s(q0 ,K,X)) :- K =\= P, X #>= 4.

trans(P,s(q2 ,P,X), s(qme ,P,X)) :- X #>= 4.

trans(P,s(qme ,_,X), s(q0 ,P,X)).

processes (1)

...

processes(N).

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 15 / 1

Page 28: slides tabled clp.pdf

Applications of Tabled CLP

Tabled CLP applicationsTimed Automata III

UPPAAL is a fast tool built specifically for TA verification:I Developed since 1999.

Ciao is a general-purpose, multi-paradigm language.

Ciao TCLP UPPAAL

Fisher 2 0 0

Fisher 3 12 1

Fisher 4 270 44

Fisher 5 10 576 4 514

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 16 / 1

Page 29: slides tabled clp.pdf

Conclusions

Conclusions

Tabling and constraints, separately, makes LP richer.I Together, they are even more expressive.

Standard tabling uses syntactic checking ⇒ useless with constraints!

Tabled CLP framework independent from constraint solver:I Constraint solver provides:

F Projection.F Entailment.

I Validated with different constraint solvers.

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 17 / 1

Page 30: slides tabled clp.pdf

Thanks!

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 18 / 1

Page 31: slides tabled clp.pdf

Backup

Disequality Constraints

X = a, X = Y , X 6= a and X 6= Y (infinite constants).

X and Y MUST be different when they are bounded.

Constraint solver using attribute variables:I Checks disequalities after unification.I Equalities are managed by Prolog.I Projection:

{d | d ∈ C , vars(d) ⊆ V }I Entailment:

D 6= |= C1 → C2 iff C1 ⊇ C2

Example: reachibility analysis without visiting a node.

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 19 / 1

Page 32: slides tabled clp.pdf

Backup

TCLP for Branch & Bound optimization

Optimization Code

:- table path /3.

p(X,Y,Cost) :-

edge(X,Y,Cost).

p(X,Y,C) :-

edge(X,Z,C1),

C2 #>= 0,

C #= C1 + C2 ,

path(Z,Y,C2).

minimize_path(X,Y,Best ,Min) :-

once(path(X,Y,Best)),

NewBest #< Best ,

(

minimize_path(X,Y,NewBest ,Min)

;

Min = Best

),

!.

?- minimize_path(X,Y,_,Min).

Pablo Chico de Guzman (IMDEA Institute) Tabled CLP Framework FLOPS’12 Kobe 20 / 1


Recommended