• Non ci sono risultati.

Constraint Programming

N/A
N/A
Protected

Academic year: 2021

Condividi "Constraint Programming"

Copied!
101
0
0

Testo completo

(1)

Constraint Programming

Prof. Dr. Thom Fr¨ uhwirth February 8, 2006

slides by Marc Meister

Based on:

Essentials of Constraint Programming, Thom Fr¨uhwirth and Slim Abdennadher, Textbook, Springer Verlag, 2003.

Thom Fr¨uhwirth – University of Ulm Page 1 – WS 2005

Overview

• Introduction

• Foundation from Logics

• Constraint Languages – Syntax

– Declarative and Operational Semantics – Soundness and Completeness

• Constraint Systems – Constraint Theory – Solving Algorithms – Applications

Thom Fr¨uhwirth – University of Ulm Page 2 – WS 2005

Constraint Programming

The Holy Grail

Constraint Programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming: the user states the problem, the computer solves it.

Eugene C. Freuder, Inaugural issue of the Constraints Journal, 1997.

Constraint Programming

Constraint Reasoning

The Idea

• Example – Combination Lock:

0 1 2 3 4 5 6 7 8 9

Greater or equal 5.

Prime number.

• Declarative problem representation by variables and constraints:

x ∈ {0, 1, . . . , 9} ∧ x ≥ 5 ∧ prime(x)

• Constraint propagation and simplification reduce search space:

x ∈ {0, 1, . . . , 9} ∧ x ≥ 5 → x ∈ {5, 6, 7, 8, 9}

(2)

Constraint Programming

Robust, flexible, maintainable software faster.

• Declarative modeling by constraints:

Description of properties and relationships between partially known objects.

Correct handling of precise and imprecise, finite and infinite, partial and full information.

• Automatic constraint reasoning:

Propagation of the effects of new information (as constraints).

Simplification makes implicit information explicit.

• Solving combinatorial problems efficiently:

Easy Combination of constraint solving with search and optimization.

Thom Fr¨uhwirth – University of Ulm Page 5 – WS 2005

Terminology

Language is first-order logic with equality.

• Constraint:

Conjunction of atomic constraints (predicates) E.g., 4X + 3Y = 10 ∧ 2X − Y = 0

• Constraint Problem (Query):

A given, initial constraint

• Constraint Solution (Answer):

A valuation for the variables in a given constraint problem that satisfies all constraints of the problem. E.g., X = 1 ∧ Y = 2 In general, a normal/solved form of, e.g., the problem

4X + 3Y + Z = 10 ∧ 2X − Y = 0 simplifies into Y + Z = 10 ∧ 2X − Y = 0

Thom Fr¨uhwirth – University of Ulm Page 6 – WS 2005

Constraint Programming

Constraint Reasoning and Constraint Programming

A generic framework for

• Modeling

– with partial information – with infinite information

• Reasoning

– with new information

• Solving

– combinatorial problems

Constraint Programming

Constraint Programming – Mortgage

% D: Amount of Loan, Debt, Principal

% T: Duration of loan in months

% I: Interest rate per month

% R: Rate of payments per month

% S: Balance of debt after T months mortgage(D, T, I, R, S) <=>

T = 0, D = S

; T > 0, T1 = T - 1, D1 = D + D*I - R,

mortgage(D1, T1, I, R, S).

(3)

Constraint Programming – Mortgage (cont)

• mortgage(100000,360,0.01,1025,S) yields S=12625.90.

• mortgage(D,360,0.01,1025,0) yields D=99648.79.

• S=<0, mortgage(100000,T,0.01,1025,S) yields T=374, S=-807.96.

• mortgage(D,360,0.01,R,0) yields R=0.0102861198*D.

• If the interest rate I is unknown, the equation D1 = D + D*I - R will be non-linear after one recursion step, since D1, the new D, is not determined either.

Thom Fr¨uhwirth – University of Ulm Page 9 – WS 2005

Aspects of Constraint Logic Programming

Theoretical

Logical Foundation – First-Order Logic

Conceptual Sound Modeling

Practical

Efficient Algorithms/Implementations Combination of different Solvers

Thom Fr¨uhwirth – University of Ulm Page 10 – WS 2005

Constraint Programming

Constraint Solving

Adaption and combination of existing efficient algorithms from

• Mathematics

– Operations research – Graph theory – Algebra

• Computer science – Finite automata – Automatic proving

• Economics

• Linguistics

Constraint Programming

Early History of Constraint Programming

60s, 70s Constraint networks in artificial intelligence.

70s Logic programming (Prolog).

80s Constraint logic programming.

80s Concurrent logic programming.

90s Concurrent constraint programming.

90s Commercial applications.

(4)

Application Domains

• Modeling

• Executable Specifications

• Solving combinatorial problems – Scheduling, Planning, Timetabling – Configuration, Layout, Placement, Design – Analysis: Simulation, Verification, Diagnosis of software, hardware and industrial processes.

Thom Fr¨uhwirth – University of Ulm Page 13 – WS 2005

Application Domains (cont)

• Artificial Intelligence – Machine Vision

– Natural Language Understanding – Temporal and Spatial Reasoning – Theorem Proving

– Qualitative Reasoning – Robotics

– Agents

– Bio-informatics

Thom Fr¨uhwirth – University of Ulm Page 14 – WS 2005

Constraint Programming

Applications in Research

• Computer Science: Program Analysis, Robotics, Agents

• Molecular Biology, Biochemistry, Bio-informatics:

Protein Folding, Genomic Sequencing

• Economics: Scheduling

• Linguistics: Parsing

• Medicine: Diagnosis Support

• Physics: System Modeling

• Geography: Geo-Information-Systems

Constraint Programming

Early Commercial Applications

• Lufthansa: Short-term staff planning.

• Hong Kong Container Harbor: Resource planning.

• Renault: Short-term production planning.

• Nokia: Software configuration for mobile phones.

• Airbus: Cabin layout.

• Siemens: Circuit verification.

• Caisse d’epargne: Portfolio management.

In Decision Support Systems for Planning, Configuration, for Design,

Analysis.

(5)

Application – n-Queens Problem

Place n queens q

1

, . . . , q

n

on an n ×n chess board, such that they do not attack each other.

1 2 3 4

q

1

q

2

q

3

q

4

q

1

, . . . , q

n

∈ {1, . . . , n}

∀ i6=j. q

i

6=q

j

∧ |q

i

− q

j

|6=|i − j|

• no two queens on same row, column or diagonal – each row and each column with exactly one queen – each diagonal at most one queen

• q

i

: row position of the queen in the i-th column

Thom Fr¨uhwirth – University of Ulm Page 17 – WS 2005

Application – n-Queens Problem (cont)

Place n queens q

1

, . . . , q

n

on an n ×n chess board, such that they do not attack each other.

1 2 3 4

q

1

q

2

q

3

q

4

q

1

, . . . , q

n

∈ {1, . . . , n}

∀ i6=j. q

i

6=q

j

∧ |q

i

− q

j

|6=|i − j|

solve(N,Qs) <=> make_domains(N,Qs), queens(Qs), enum(Qs).

queens([Q|Qs]) <=> safe(Q,Qs,1), queens(Qs).

safe(X,[Y|Qs],N) <=> no_attack(X,Y,N), safe(X,Qs,N+1).

no_attack(X,Y,N) <=> X ne Y, X+N ne Y, Y+N ne X.

Thom Fr¨uhwirth – University of Ulm Page 18 – WS 2005

Constraint Programming

Application – n-Queens Problem (cont 2) solve(4,[Q1,Q2,Q3,Q4])

• make_domains produces

Q1 in [1,2,3,4], Q2 in [1,2,3,4]

Q3 in [1,2,3,4], Q4 in [1,2,3,4]

• safe adds noattack producing ne constraints

• enum called for labeling

• [Q1,Q2,Q3,Q4] = [2,4,1,3], [Q1,Q2,Q3,Q4] = [3,1,4,2]

1 2 3 4

• •

• • q

1

q

2

q

3

q

4

1 2 3 4

• •

• •

q

1

q

2

q

3

q

4

Constraint Programming

References

• Essentials of Constraint Programming Series: Cognitive Technologies

Thom Fr¨ uhwirth, Slim Abdennadher 2003, Springer

• Constraint-Programmierung Lehrbuch

Thom Fr¨ uhwirth, Slim Abdennadher

1997, Springer

(6)

Foundations from Logic

Good, too, Logic, of course; in itself, but not in fine weather.

Arthur Hugh Clough, 1819-1861

Die Logik muß f¨ ur sich selber sorgen.

Ludwig Wittgenstein, 1889-1951

Thom Fr¨uhwirth – University of Ulm Page 21 – WS 2005

First-Order Logic

Syntax – Language

• Alphabet

• Well-formed Expressions

Semantics – Meaning

• Interpretation

• Logical Consequence

Calculi – Derivation

• Inference Rule

• Transition System

Thom Fr¨uhwirth – University of Ulm Page 22 – WS 2005

Constraint Programming

Syntax of First-Order Logic

Signature Σ = ( P, F) of a first-order language

• P: finite set of predicate symbols, each with arity n ∈ N

• F: finite set of function symbols, each with arity n ∈ N Naming conventions:

• nullary, unary, binary, ternary for arities 0, 1, 2, 3

• constants: nullary function symbols

• propositions: nullary predicate symbols

Constraint Programming

Alphabet

• P: predicate symbols: p, q, r, . . .

• F: function symbols: a, b, c, . . . , f, g, h, . . .

• V: countably infinite set of variables: X, Y, Z, . . .

• logic symbols:

– truth symbols: ⊥ (false), ⊤ (true) – logical connectives: ¬, ∧, ∨, → – quantors: ∀, ∃

– syntactic symbols: “(”,“)”, “,”

(7)

Well-Formed Expressions

Term

Set of terms T (Σ, V):

• a variable from V, or

• a function term f(t

1

, . . . , t

n

), where f is an n-ary function symbol from Σ and the arguments t

1

, . . . , t

n

are terms (n ≥ 0).

Examples (a/0, f /1, g/2):

• X

• a

• f(X)

• g(f(X), g(Y, f(a)))

Thom Fr¨uhwirth – University of Ulm Page 25 – WS 2005

Well-Formed Formula

Set of (well-formed) formulae F(Σ, V) = {A, B, C, . . . , F, G, . . .}:

• an atomic formula (atom) p(t

1

, . . . , t

n

), where p is an n-ary predicate symbol from Σ and the arguments t

1

, . . . , t

n

are terms, or

⊥, or

⊤, or

t

1

=t ˙

2

for terms t

1

and t

2

(i.e., ˙ =(t

1

, t

2

)), or

• the negation ¬F of a formula F , or

• the conjunction (F ∧ F

), the disjunction (F ∨ F

), or the implication (F → F

) between two formulae F and F

, or

• a universally quantified formula ∀XF , or an existentially quantified formula ∃XF , where X is a variable and F is a formula.

Thom Fr¨uhwirth – University of Ulm Page 26 – WS 2005

Constraint Programming

Example – Terms and Formulae

P = {mortal/1}, F = {socrates/0, father/1}, V = {X, . . . }

• Terms:

X, socrates, father(socrates), father(father(socrates)), but not: father(X, socrates)

• Atomic Formulae:

mortal(X), mortal(socrates), mortal(father(socrates)) but not: mortal(mortal(socrates))

• Non-Atomic Formulae:

mortal(socrates) ∧ mortal(father(socrates))

∀X.mortal(X) → mortal(father(X))

∃XX ˙=socrates

Constraint Programming

Free Variables

• quantified formula ∀XF or ∃XF binds variable X within scope F

• set free(F ) of free (not bounded) variables of a formula F : free(t

1

=t ˙

2

) := vars(t

1

) ∪ vars(t

2

)

free(p(t

1

, . . . , t

n

)) := vars(t

1

) ∪ . . . ∪ vars(t

n

) free( ⊤) := free(⊥) := ∅

free( ¬F ) := free(F ) for a formula F

free(F ∗ F

) := free(F ) ∪ free(F

) for formulae F and F

and ∗ ∈ {∧, ∨, →}

free( ∀XF ) := free(∃XF ) := free(F ) \ {X} for a variable X

and a formula F

(8)

Example – Free Variables

Give the set of free variables for each braced part.

p(X) ∧ z }| {

∃Xp(X)

| {z }

z }| {

∀X p(X, Y )

| {z }



| {z }

∨ q(X)

| {z }

Thom Fr¨uhwirth – University of Ulm Page 29 – WS 2005

Universal and Existential Closure of F

• universal closure ∀F of F :

∀X

1

∀X

2

. . . ∀X

n

F

• existential closure ∃F of F :

∃X

1

∃X

2

. . . ∃X

n

F where X

1

, X

2

, . . . , X

n

are all free variables of F Naming Conventions:

• closed formula or sentence: does not contain free variables

• theory: set of sentences

• ground term or formula: does not contain any variables

Thom Fr¨uhwirth – University of Ulm Page 30 – WS 2005

Constraint Programming

Semantics of First-Order Logic

Interpretation I of Σ

• universe U: a non-empty set

• I(f) : U

n

→ U: a function for every n-ary function symbol f of Σ

• I(p) ⊆ U

n

: a relation for every n-ary predicate symbol p of Σ

Variable Valuation for V w.r.t. I

• η : V → U: for every variable X of V into the universe U of I (Σ signature of a first-order language, V set of variables)

Constraint Programming

Interpretation of Terms η

I

: T (Σ, V ) → U: for every term

η

I

(X) := η(X) for a variable X η

I

(f (t

1

, . . . , t

n

)) := I(f )(η

I

(t

1

), . . . , η

I

(t

n

))

for an n-ary function symbol f and terms t

1

, . . . , t

n

(Σ signature, I interpretation with universe U , η : V → U variable

valuation)

(9)

Example – Interpretation of Terms

• signature Σ = (∅, {1/0, */2, +/2})

• universe U = N

• interpretation I I(1) := 1

I(A+B) := A + B, I(A*B) := AB for A, B ∈ U

• variable valuation η η(X) := 3, η(Y ) := 5

η

I

X*(Y +1) 

= I(*) η

I

(X), η

I

(Y +1) 

= I(*)(3, I(+) η

I

(Y ), η

I

(1) 

= · · · = 3 · (5 + 1) = 18

Thom Fr¨uhwirth – University of Ulm Page 33 – WS 2005

Interpretation of Formulae – Preliminaries For a function g, the function g[Y 7→ a] is

g[Y 7→ a](X) :=

g(X) if X 6= Y, a if X = Y, where X and Y are variables.

Thom Fr¨uhwirth – University of Ulm Page 34 – WS 2005

Constraint Programming

Interpretation of Formulae

I interpretation of Σ, η variable valuation satisfy F written I, η |= F :

• I, η |= ⊤ and I, η 6|= ⊥

• I, η |= s ˙=t iff η

I

(s) = η

I

(t)

• I, η |= p(t

1

, . . . , t

n

) iff (η

I

(t

1

), . . . , η

I

(t

n

)) ∈ I(p)

• I, η |= ¬F iff I, η 6|= F

• I, η |= F ∧ F

iff I, η |= F and I, η |= F

• I, η |= F ∨ F

iff I, η |= F or I, η |= F

• I, η |= F → F

iff I, η 6|= F or I, η |= F

• I, η |= ∀XF iff I, η[X 7→ u] |= F for all u ∈ U

• I, η |= ∃XF iff I, η[X 7→ u] |= F for some u ∈ U

Constraint Programming

Example – Interpretation

∀X.p(X, a, b) → q(b, X)

. I

1

(.) I

2

(.)

U real things natural numbers

a ”food” 5

b ”Fitz the cat” 10 p ” gives ” + >

q ” loves ” <

I

1

: ”Fitz the cat loves everybody who gives him food.”

I

2

: ”10 is less than any X if X + 5 > 10.”

(counterexample: X = 6)

(10)

Model of F , Validity

• I model of F or I satisfies F , written I |= F : I, η |= F for every variable valuation η

• I model of theory T : I model of each formula in T Sentence S is

• valid: satisfied by every interpretation, i.e., I |= S for every I

• satisfiable: satisfied by some interpretation, i.e., I |= S for some I

• falsifiable: not satisfied by some interpretation, i.e., I 6|= S for some I

• unsatisfiable: not satisfied by any interpretation, i.e., I 6|= S for every I

(Σ signature, I interpretation)

Thom Fr¨uhwirth – University of Ulm Page 37 – WS 2005

Example – Validity, Satisfiability, Falsifiable, Unsatisfiability (1)

valid satisfiable falsifiable unsatisfiable A ∨ ¬A

A ∧ ¬A A → ¬A A → (B → A) A → (A → B) A ↔ ¬A

(A, B formulae)

Thom Fr¨uhwirth – University of Ulm Page 38 – WS 2005

Constraint Programming

Example – Validity, Satisfiability, Unsatisfiability (2)

correct/counter example If F is valid, then F is satisfiable.

If F is satisfiable, then ¬F is unsatisfiable.

If F is valid, then ¬F is unsatisfiable.

If F is unsatisfiable, then ¬F is valid.

(F formula)

Constraint Programming

Example – Interpretation and Model

• signature Σ = ({pair/2}, {next/1})

• universe U = {Mon, Tue, Wed, Thu, Fri, Sat, Sun}

• interpretation I

I(pair) :=

 

 

 

 

 

 

(Mon, Tue), (Mon, Wed), . . . , (Mon, Sun), (Tue, Wed), . . . , (Tue, Sun),

. .. .. . (Sun, Sun)

 

 

 

 

 

 

I(next) : U → U, next day function Mon 7→ Tue, . . . , Sun 7→ Mon

(11)

Example – Interpretation and Model (cont)

• (one possible) valuation η η(X) := Sun, η(Y ) := Tue

– η

I

(next(X)) = Mon – η

I

(next(next(Y ))) = Thu – I, η |= pair(next(X), Y )

• model relationship (“for all variable valuations”) – I 6|= ∀X∀Y.pair(next(X), Y )

– I |= ∀X.pair(next(X), Sun) – I |= ∀X∃Y.pair(X, Y )

Thom Fr¨uhwirth – University of Ulm Page 41 – WS 2005

Logical Consequence

• A sentence/theory T

1

is a logical consequence of a

sentence/theory T

2

, written T

2

|= T

1

, if every model of T

2

is also a model of T

1

, i.e. I |= T

2

implies I |= T

1

.

• Two sentences or theories are equivalent (|=| ) if they are logical consequences of each other.

• |= is undecidable [Church]

Example:

¬(A ∧ B) |=| ¬A ∨ ¬B (de Morgan)

Thom Fr¨uhwirth – University of Ulm Page 42 – WS 2005

Constraint Programming

Example – Tautology Laws (1) Dual laws hold for ∧ and ∨ exchanged.

• A |=| ¬¬A (double negation)

• ¬(A ∧ B) |=| ¬A ∨ ¬B (de Morgan)

• A ∧ A |=| A (idempotence)

• A ∧ (A ∨ B) |=| A (absorption)

• A ∧ B |=| B ∧ A (commutativity)

• A ∧ (B ∧ C) |=| (A ∧ B) ∧ C (associativity)

• A ∧ (B ∨ C) |=| (A ∧ B) ∨ (A ∧ B) (distributivity)

Constraint Programming

Example – Tautology Laws (2)

• A → B |=| ¬A ∨ B (implication)

• A → B |=| ¬B → ¬A (contraposition)

• (A → (B → C)) |=| (A ∧ B) → C

• ¬∀XA |=| ∃X¬A

• ¬∃XA |=| ∀X¬A

• ∀X(A ∧ B) |=| ∀XA ∧ ∀XB

• ∃X(A ∨ B) |=| ∃XA ∨ ∃XB

• ∀XB |=| B |=| ∃XB (with X not free in B)

(12)

Example – Logical Consequence

F G F |= G or F 6|= G

A A ∨ B

A A ∧ B

A, B A ∨ B

A, B A ∧ B

A ∧ B A

A ∨ B A

A, (A → B) B

Note: I is a model of {A, B}, iff I |= A and I |= B.

Thom Fr¨uhwirth – University of Ulm Page 45 – WS 2005

Example – Logical Consequence, Validity, Unsatisfiability The following statements are equivalent:

1. F

1

, . . . , F

k

|= G

(G is a logical consequence of F

1

, . . . , F

k

) 2. V

k

i=1

F

i



→ G is valid.

3. V

k i=1

F

i

 ∧ ¬G is unsatisfiable.

Note: In general, F 6|= G does not imply F |= ¬G.

Thom Fr¨uhwirth – University of Ulm Page 46 – WS 2005

Constraint Programming

Herbrand Interpretation – Motivation

The formula A is valid in I, I |= A, if I, η |= A for every valuation η.

This requires to fix a universe U as both I and η use U .

Jacques Herbrand (1908-1931) discovered that there is a universal domain together with a universal interpretation, s.t. that any universally valid formula is valid in any interpretation. Therefore, only interpretations in the Herbrand universe need to be checked, provided the Herbrand universe is infinite.

Constraint Programming

Herbrand Interpretation

• Herbrand universe: set T (Σ, ∅) of ground terms

• for every n-ary function symbol f of Σ, the assigned function I(f ) maps a tuple (t

1

, . . . , t

n

) of ground terms to the ground term “f (t

1

, . . . , t

n

)”.

Herbrand model of sentence/theory: Herbrand interpretation satisfying sentence/theory.

Herbrand base for signature Σ: set of ground atoms in F(Σ, ∅), i.e.,

{p(t

1

, . . . , t

n

) | p is an n-ary predicate symbol of Σ and t

1

, . . . , t

n

T (Σ, ∅)}.

(13)

Example – Herbrand Interpretation

For the formula F ≡ ∃X∃Y.p(X, a) ∧ ¬p(Y, a) the Herbrand universe is {a} and F is unsatisfiable in the Herbrand universe as

p(a, a) ∧ ¬p(a, a) is false, i.e., there is no Herbrand model.

However, if we add (another element) b we have p(a, a) ∧ ¬p(b, a) so F is valid for any interpretation whose universe’ cardinality is greater than 1.

For the formula ∀X∀Y.p(X, a) ∧ q(X, f(Y )) the (infinite, as there is a constant and a function symbol) Herbrand domain is

{a, f(a), f(f(a)), f(f(f(a))), . . . }.

Thom Fr¨uhwirth – University of Ulm Page 49 – WS 2005

Logic and Calculus

logic: formal language for expressions

• syntax : ”spelling rules” for expressions

• semantics: meaning of expressions (logical consequence |=)

• calculus: set of given formulae and syntactic rules for manipulation of formulae to perform proofs

Thom Fr¨uhwirth – University of Ulm Page 50 – WS 2005

Constraint Programming

Calculus

• axioms: given formulae, elementary tautologies and contradictions which cannot be derived within the calculus

• inference rules: allow to derive new formulae from given formulae

• derivation φ ⊢ ψ: a sequence of inference rule applications starting with φ and ending in ψ

|= and ⊢ should coincide

• Soundness: φ ⊢ ρ implies φ |= ρ

• Completeness: φ |= ρ implies φ ⊢ ρ

Constraint Programming

Resolution Calculus

[Robinson 1965]

• calculus that can be easily implemented

• used as execution mechanism of (constraint) logic programming

• uses clausal normal form and unification

(14)

Normal Forms

Negation Normal Form of Formula F F in negation normal form F

neg

:

• no sub-formula of the form F → F

• in every sub-formula of the form ¬F

the formula F

is atomic

Thom Fr¨uhwirth – University of Ulm Page 53 – WS 2005

Negation Normal Form – Computation

For every sentence F , there is an equivalent sentence F

neg

in negated normal form (apply ”tautologies” from left to right.):

Negation

¬⊥ |=| ⊤ ¬⊤ |=| ⊥

¬¬F |=| F F is atomic

¬(F ∧ F

) |=| ¬F ∨ ¬F

¬(F ∨ F

) |=| ¬F ∧ ¬F

¬∀XF |=| ∃X¬F ¬∃XF |=| ∀X¬F ¬(F → F

) |=| F ∧ ¬F

Implication

F → F

|=| ¬F ∨ F

Thom Fr¨uhwirth – University of Ulm Page 54 – WS 2005

Constraint Programming

Skolemization of Formula F

• F = F

neg

∈ F(Σ, V) in negation normal form

• occurrence of sub formula ∃XG with free variables V

1

, . . . , V

n

• f/n function symbol not occurring in Σ

Compute F

by replacing ∃XG with G[X 7→ f(V

1

, . . . , V

n

)] in F (all occurrences of X in G are replaced by f (V

1

, . . . , V

n

)).

Naming conventions:

• Skolemized form of F : F

• Skolem function: f/n

Constraint Programming

Prenex Form of Formula F F = Q

1

X

1

. . . Q

n

X

n

G

• Q

i

quantifiers

• X

i

variables

• G formula without quantifiers

• quantifier prefix : Q

1

X

1

. . . Q

n

X

n

• matrix : G

• For every sentence F , there is an equivalent sentence in prenex

form and it is possible to compute such a sentence from F by

applying tautology laws to push the quantifieres outwards.

(15)

Example – Prenex Normal Form

¬∃xp(x) ∨ ∀xr(x) |=| ∀x¬p(x) ∨ ∀xr(x)

|=| ∀x¬p(x) ∨ ∀yr(y)

|=| ∀x (¬p(x) ∨ ∀yr(y))

|=| ∀x∀y (¬p(x) ∨ r(y))

Example – Skolemization

∀z∃x∀y (p(x, z) ∧ q(g(x, y), x, z))

|=| ∀z∀y (p(f(z), z) ∧ q(g(f(z), y), f(z), z)) With new function symbol f /1.

Thom Fr¨uhwirth – University of Ulm Page 57 – WS 2005

Clauses and Literals

• literal: atom (positive literal) or negation of atom (negative literal)

• complementary literals: positive literal L and its negation ¬L

• clause (in disjunctive normal form): formula of the form W

n i=1

L

i

where L

i

are literals.

– empty clause (empty disjunction): n = 0: ⊥

Thom Fr¨uhwirth – University of Ulm Page 58 – WS 2005

Constraint Programming

Clauses and Literals (cont)

• implication form of the clause:

F =

^

n j=1

B

j

| {z }

body

→ _

m k=1

H

k

| {z }

head

for

F =

n+m

_

i=1

L

i

with L

i

=

¬B

i

for i = 1, . . . , n

H

i−n

for i = n + 1, . . . , n + m for atoms B

j

and H

k

• closed clause: sentence ∀x

1

, . . . , x

n

C with C clause

• clausal form of theory: consists of closed clauses

Constraint Programming

Normalization steps

An arbitrary theory T can be transformed into clausal form as follows

• Convert every formula in the theory into an equivalent formula in negation normal form.

• Perform Skolemization in order to eliminate all existential quantifiers.

• Convert the resulting theory, which is still in negation normal form, into an equivalent theory in clausal form: Move

conjunctions and universal quantifiers outwards.

(16)

Unification

Substitution to a Term

• σ : V → T (Σ, V

)

• finite: V finite, written as {X

1

7→ t

1

, . . . , X

n

7→ t

n

} with distinct variables X

i

and terms t

i

• identity substitution ǫ = ∅

• written as postfix operators, application from left to right in composition

• σ : T (Σ, V) → T (Σ, V

)

implicit homomorphic extension, i.e., f (t

1

, . . . , t

n

)σ := f (t

1

σ, . . . , t

n

σ).

Example:

σ = {X 7→ 2, Y 7→ 5}: (X ∗ (Y + 1))σ = 2 ∗ (5 + 1)

Thom Fr¨uhwirth – University of Ulm Page 61 – WS 2005

Substitution to a Formula Homomorphic extension

• p(t

1

, . . . , t

n

)σ := p(t

1

σ, . . . , t

n

σ)

• (s ˙=t)σ := (sσ) ˙=(tσ)

• ⊥σ := ⊥ and ⊤σ := ⊤

• (¬F )σ := ¬(F σ)

• (F ∗ F

)σ := (F σ) ∗ (F

σ) for ∗ ∈ {∧, ∨, →}

Except

• (∀XF )σ := ∀X

(F σ[X 7→ X

])

• (∃XF )σ := ∃X

(F σ[X 7→ X

]) where X

is a fresh variable.

Thom Fr¨uhwirth – University of Ulm Page 62 – WS 2005

Constraint Programming

Example – Substitution to a Formula

• σ = {X 7→ Y, Z 7→ 5}: (X ∗ (Z + 1))σ = Y ∗ (5 + 1)

• σ = {X 7→ Y, Y 7→ Z}: p(X)σ = p(Y ) 6= p(X)σσ = p(Z)

• σ = {X 7→ Y }, τ = {Y 7→ 2}

– (X ∗ (Y + 1))στ = (Y ∗ (Y + 1))τ = (2 ∗ (2 + 1)) – (X ∗ (Y + 1))τσ = (X ∗ (2 + 1))σ = (Y ∗ (2 + 1))

• σ = {X 7→ Y }: (∀Xp(3))σ = ∀X

p(3)

• σ = {X 7→ Y }: (∀Xp(X))σ = ∀X

p(X

), ( ∀Xp(Y ))σ = ∀X

p(Y )

• σ = {Y 7→ X}: (∀Xp(X))σ = ∀X

p(X

), ( ∀Xp(Y ))σ = ∀X

p(X)

Constraint Programming

Logical Expression over V

• term with variables in V,

• formula with free variables in V,

• substitution from an arbitrary set of variables into T (Σ, V), or

• tuple of logical expressions over V.

A logical expression is a simple expression if it does not contain quantifiers.

Examples:

V = {X}: f(X), ∀Y.p(X) ∧ q(Y ), {X 7→ a}, hp(X), σi

(17)

Instance, Variable Renaming, Variants

• e instance of e

: e = e

σ

• e

more general than e: e is instance of e

• variable renaming for e: substitution σ – σ injective

– Xσ ∈ V for all X ∈ V

– Xσ does not occur in e for free variables X of e

• e and e

variants (identical modulo variable renaming):

e = e

σ and e

= eτ Examples:

variable renaming ( ∀Xp(X

1

)) {X

1

7→ X

2

} = ∀X

p(X

2

) but not ( ∀Xp(X

1

) ∧ q(X

2

)) {X

1

7→ X

2

} = ∀X

.p(X

2

) ∧ q(X

2

) (e, e

logical expressions, σ, τ substitutions)

Thom Fr¨uhwirth – University of Ulm Page 65 – WS 2005

Unification

• unifier for e

1

, . . . , e

n

: e

1

σ = · · · = e

n

σ

• e

1

, . . . , e

n

unifiable: unifier exists

• most general unifier (mgu) σ for e

1

, . . . , e

n

: every unifier τ for e

1

, . . . , e

n

is instance of σ, i.e., τ = σρ for some ρ

(e

1

, . . . , e

n

simple expressions, σ, τ , ρ, σ

i

substitutions)

Thom Fr¨uhwirth – University of Ulm Page 66 – WS 2005

Constraint Programming

Example – Most General Unifier

f (X, a) = f (g(U ), Y ) ˙ = Z ˙

MGU:

σ = {X 7→ g(U), Y 7→ a, Z 7→ f(g(U), a)}

Proof: f (X, a)σ = f (g(U ), Y )σ = Zσ = f (g(U ), a) one element.

Unifier, but not MGU:

σ

= {X 7→ g(h(b)), U 7→ h(b), Y 7→ a, Z 7→ f(g(h(b)), a)}

Proof: σ

= σ {U 7→ h(b)}.

Constraint Programming

Most General Unifier by Hand

• unbound variable: there is no substitution for it

• Start with ǫ

• scan terms simultaneously from left to right according to their structure

• check the syntactic equivalence of the symbols encountered repeat

– different function symbols: halt with failure – identical : continue

– one is unbound variable and other term:

∗ variable occurs in other term: halt with failure

∗ apply the new substitution to the logical expressions add corresponding substitution

– variable is not unbound : replace it by applying substitution

(18)

Example – Most General Unifier

to unify current substitution, remarks p(X, f (a)) ˙ =p(a, f (X)) ǫ, start

X ˙ =a {X 7→ a}, substitution added f (a) ˙ =f (X) continue

a ˙ =X {X 7→ a}, variable is not unbound

a ˙ =a continue

MGU is {X 7→ a}

What about p(X, f (b)) = p(a, f (X))?

Thom Fr¨uhwirth – University of Ulm Page 69 – WS 2005

Example – Most General Unifier

s t

f g failure

a a ǫ

X a {X 7→ a}

X Y {X 7→ Y }, but also {Y 7→ X}

f (a, X) f (Y, b) {Y 7→ a, X 7→ b}

f (g(a, X), Y ) f (c, X) failure

f (g(a, X), h(c)) f (g(a, b), Y ) {X 7→ b, Y 7→ h(c)}

f (g(a, X), h(Y )) f (g(a, b), Y ) failure

Thom Fr¨uhwirth – University of Ulm Page 70 – WS 2005

Constraint Programming

Inference Rules

• Given a set of formulae

F

1

, . . . , F

n

F – premises F

1

, . . . , F

n

– conclusion F

– if premises are given, conclusion is added to the formulae – derivation step F

1

, . . . , F

n

⊢ F

– derivation: sequence of derivation steps with conclusion taken as premises for next step

• rule application usually nondeterministic

Constraint Programming

Resolution Calculus – Inference Rules

Works by contradiction: Theory united with negated consequence must be unsatisfiable (“derive empty clause”).

Axiom

empty clause (i.e. the elementary contradiction) Resolution

R ∨ A R

∨ ¬A

(R ∨ R

σ is a most general unifier for the atoms A and A

Factoring

R ∨ L ∨ L

(R ∨ L)σ σ is a most general unifier for the literals L and L

R ∨ A and R

∨ ¬A

must have different variables: rename variables

apart

(19)

Resolution – Remarks

• resolution rule:

– two clauses C and C

instantiated s.t. literal from C and literal from C

complementary

– two instantiated clauses are combined into a new clause – resolvent added

• factoring rule:

– clause C instantiated, s.t. two literals become equal – remove one literal

– factor added

Thom Fr¨uhwirth – University of Ulm Page 73 – WS 2005

Example – Resolution Calculus Resolution:

p(a, X) ∨ q(X) ¬p(a, b) ∨ r(X) (q(X) ∨ r(X)){X 7→ b}

Factoring:

p(X) ∨ p(b) p(X) {X 7→ b}

Thom Fr¨uhwirth – University of Ulm Page 74 – WS 2005

Constraint Programming

Constraint Programming Languages

Preliminaries

Syntax

• extended Backus-Naur form (EBNF) for notation of production rules

Name: G, H ::= A B, Condition – capital letters: syntactical entities

– symbols G and H defined : with name Name.

– Condition holds: G and H can be of the form A or B

Constraint Programming

Semantics

Operational (Procedural) Semantics State transition system (refined calculus)

Declarative Semantics

Logical reading of program as theory, i.e. set of formulae of first-order logic

Operational vs. Declarative Semantics

• Soundness

• Completeness

(20)

Operational (Procedural) Semantics

Refined Calculus Triple (Σ, ≡, T )

• Σ: signature for a first-order logic language

• ≡: congruence (equivalence relation) on states

• T = (S, 7→): simple state transition system

states S represent logical expressions over the signature Σ

Thom Fr¨uhwirth – University of Ulm Page 77 – WS 2005

Simple State Transition System

• (S, 7→)

– S set of states

– 7→ binary relation over states: transition relation – (state) transition from S

1

to S

2

possible if (some give)

condition holds, written S

1

7→ S

2

• distinguished subsets of S: initial and final states

• S

1

7→ S

2

7→ . . . 7→ S

n

derivation (computation)

• S 7→

S

reflexive-transitive closure of 7→

Reduction is synonym for transition

Thom Fr¨uhwirth – University of Ulm Page 78 – WS 2005

Constraint Programming

Transition Rules

IF Condition THEN S 7→ S

.

• (state) transition (reduction, derivation step, computation) from S to S

possible if the condition Condition holds

• straightforward to concretize a calculus (“⊢”) into a state transition system (“ 7→”)

Constraint Programming

Congruence

• states which are considered equivalent for purpose of computation

• congruence instead of modeling with additional transition rules

• formally congruence is equivalence relation:

(Reflexivity) A ≡ A

(Symmetry) If A ≡ B then B ≡ A

(Transitivity) If A ≡ B and B ≡ C then A ≡ C

Example:

(X = 3) ≡ (3 = X)

(21)

Congruence

Commutativity: G

1

∧ G

2

≡ G

2

∧ G

1

Associativity: G

1

∧ (G

2

∧ G

3

) ≡ (G

1

∧ G

2

) ∧ G

3

Identity: G ∧ ⊤ ≡ G

Absorption: G ∧ ⊥ ≡ ⊥

derived from tautologies

Thom Fr¨uhwirth – University of Ulm Page 81 – WS 2005

Transition Rules for Resolution Calculus (1)

• state: set of clauses

• initial state: clauses representing the theory and the negated consequence

• final state: contains the empty clause

Thom Fr¨uhwirth – University of Ulm Page 82 – WS 2005

Constraint Programming

Transition Rules for Resolution Calculus (2) S 7→ S ∪ {F }

• Resolvent F = (R ∨ R

IF {R ∨ A} ∈ S and {R

∨ ¬A

} ∈ S and

σ is a most general unifier for the atoms A and A

, THEN S ∪ {(R ∨ R

)σ }.

• Factor F = (R ∨ L)σ IF {R ∨ L ∨ L

} ∈ S and

σ is a most general unifier for the literals L and L

, THEN S ∪ {(R ∨ L)σ}.

Constraint Programming

Logic Programming

A logic program is a set of axioms, or rules, defining relationships between objects. A computation of a logic program is a deduction of consequences of the program. A program defines a set of consequences, which is its meaning.

The art of logic programming is constructing concise and elegant programs that have desired meaning.

Sterling and Shapiro: The Art of Prolog, Page 1.

(22)

LP Syntax

• goal:

– empty goal ⊤ (top) or ⊥ (bottom), or – atom, or

– conjunction of goals

• (Horn) clause: A ← G – head A: atom – body G: goal

• Naming conventions

– fact: clause of form A ← ⊤ – rule: all others

• (logic) program: finite set of Horn clauses

• predicate symbol defined: it occurs in head of a clause

Thom Fr¨uhwirth – University of Ulm Page 85 – WS 2005

LP Calculus – Syntax

Atom: A, B ::= p(t

1

, . . . , t

n

), n ≥ 0

Goal : G, H ::= ⊤ ⊥ A G ∧ H

Clause: K ::= A ← G

Program: P ::= K

1

. . . K

m

, m ≥ 0

Thom Fr¨uhwirth – University of Ulm Page 86 – WS 2005

Constraint Programming

LP Calculus – State Transition System

• state <G, θ>

– G: goal – θ: substitution

• initial state <G, ǫ>

• successful final state <⊤, θ>

• failed final state <⊥, ǫ>

Constraint Programming

Derivations, Goals Derivation is

• successful: its final state is successful

• failed: its final state is failed

• infinite: if there are an infinite sequence of states and transitions S

1

7→ S

2

7→ S

3

7→ . . .

Goal G is

• successful: it has a successful derivation starting with <G, ǫ>

• finitely failed: it has only failed derivations starting with <G, ǫ>

(23)

Logical Reading, Answer

• logical reading of <H, θ>: ∃ ¯ X(Hθ) – <G, ǫ> 7→

<H, θ>

– ¯ X: variables which occur in Hθ but not in G

• (computed) answer of a goal G:

substitution θ with successful derivation <G, ǫ> 7→

< ⊤, θ>

G is also called initial goal or query

Thom Fr¨uhwirth – University of Ulm Page 89 – WS 2005

Operational Semantics

LP Transition Rules Unfold

If (B ← H) is a fresh variant of a clause in P and β is the most general unifier of B and Aθ then <A ∧ G, θ> 7→ <H ∧ G, θβ>

Failure

If there is no clause (B ← H) in P with a unifier of B and Aθ

then <A ∧ G, θ> 7→ <⊥, ǫ>

Thom Fr¨uhwirth – University of Ulm Page 90 – WS 2005

Constraint Programming

Non-determinism

The Unfold transition exhibits two kinds of non-determinism.

• don’t-care non-determinism:

– any atom in A ∧ G can be chosen as the atom A according to the congruence defined on states

– affects length of derivation (infinitely in the worst case)

• don’t-know non-determinism:

– any clause (B ← H) in P for which B and Aθ are unifiable can be chosen

– determines the computed answer of derivation

Constraint Programming

Unfold with Case Splitting UnfoldSplit

If (B

1

← H

1

), . . . , (B

n

← H

n

) are fresh variants of all those clauses in P for which

B

i

(1 ≤ i ≤ n) is unifiable with Aθ

and β

i

is the most general unifier of B

i

and Aθ (1 ≤ i ≤ n)

then <A ∧ G, θ> 7→ <H

1

∧ G, θβ

1

> ˙ ∨ . . . ˙∨ <H

n

∧ G, θβ

n

>

(24)

SLD Resolution

• selection strategy: textual order of clauses and atoms in a program

• (chronological) backtracking (backtrack search)

• left-to-right, depth-first exploration of the search tree

• efficient implementation using a stack-based approach

• can get trapped in infinite derivations (but breadth-first search far too inefficient)

Thom Fr¨uhwirth – University of Ulm Page 93 – WS 2005

Example - Accessibility in DAG a

 // c



b // d // e

edge(a,b) ← ⊤ (e1)

edge(a,c) ← ⊤ (e2)

edge(b,d) ← ⊤ (e3)

edge(c,d) ← ⊤ (e4)

edge(d,e) ← ⊤ (e5)

path(Start,End) ← edge(Start,End) (p1)

path(Start,End) ← edge(Start,Node) ∧ path(Node,End) (p2)

Thom Fr¨uhwirth – University of Ulm Page 94 – WS 2005

Constraint Programming

Example - Accessibility in DAG (cont) a

 // c



b // d // e

<path(b, Y), ε>

7→

Unfold(p1)

<edge(S, E), {S← b, E← Y}>

7→

Unfold(e3)

< ⊤, {S← b, E← d, Y← d}>

With the second rule p2 for path selected:

<path(b, Y), ε>

7→

Unfold(p2)

<edge(S, N) ∧ path(N, E), {S← b, E← Y}>

7→

Unfold(e3)

<path(N, E), {S← b, E← Y, N← d}>

7→

Unfold(p1)

<edge(N, E), {S← b, E← Y, N← d}>

7→

Unfold(e5)

< ⊤, {S← b, E← e, N← d, Y← e}>

Constraint Programming

Example - Accessibility in DAG (cont 2) a

 // c



b // d // e Partial search tree:

<path(b, Y), ε>

p1

yyrr rr rr rr rr

p2

((

Q Q Q Q Q Q Q Q Q Q Q Q Q

<edge(S, E), {S← b, E← Y}>

e3



<edge(S, N) ∧ path(N, E), {S← b, E← Y}>

... ...

 < ⊤, {S← b, E← d, Y← d}> . . .

(25)

Example - Accessibility in DAG (cont 3) a

 // c



b // d // e With the first rule:

<path(f, g), ε>

7→

Unfold(p1)

<edge(S, E), {S← f, E← g}>

7→

Failure

< ⊥, ε>

With the second rule (and special selection) we get an infinite derivation:

<path(f, g), ε>

7→

Unfold(p2)

<path(N, E) ∧ edge(S, N), {S← f, E← g}>

7→

Unfold(p2)

<edge(S, N) ∧ edge(N, N1) ∧ path(N1, E), {S← f, E← g}>

Thom Fr¨uhwirth – University of Ulm Page 97 – WS 2005

Declarative Semantics

• implication (G → A): Horn clause, definite clause

• logical reading of a program P : universal closure of the conjunction of the clauses of P , written P

• only positive information can be derived

• “complete” P

:

– keep necessary conditions (implications)

– add corresponding sufficient conditions (implications in the other direction)

Example:

In DAG with nodes a, b, c, d, e: P

6|= path(f,g), P

6|= ¬path(f,g) In completed logical reading, ¬path(f,g) is then a logical

consequence.

Thom Fr¨uhwirth – University of Ulm Page 98 – WS 2005

Constraint Programming

Completion of P : P

For each p/n in P add to P

the formula p(¯ t

1

) ← G

1

.. . .. . p(¯ t

m

) ← G

m

,

∀ ¯ X (p( ¯ X) ↔ ∃ ¯ Y

1

(¯ t

1

= ¯ . X ∧ G

1

) ∨

.. . ∨

∃ ¯ Y

m

(¯ t

m

.

= ¯ X ∧ G

m

)),

• ¯ X: pairwise distinct fresh variables

• ¯t

i

: terms

• ¯ Y

i

: variables occurring in G

i

and t

i

Add ∀ ¯ X ¬p( ¯ X) to P

for all undefined predicate symbols p in P .

Clark completion of P : P

∪ C ET

Constraint Programming

Example – Logical Reading a

 // c



b // d // e

For the edge/2 predicates add to P

the formula edge(a,b) ← ⊤

. . .

edge(d,e) ← ⊤

∀X

1

X

2

(edge(X

1

, X

2

) ↔ (a ˙ =X

1

, b ˙ =X

2

) ∨

.. . ∨

(d ˙ =X

1

, e ˙ =X

2

))

(26)

Example – Logical Reading (2)

For the path/2 predicates add to P

the formula

path(Start,End) ← edge(Start,End) path(Start,End) ← edge(Start,Node) ∧ path(Node,End)

∀X

1

X

2

(path(X

1

, X

2

) ↔

∃Y

11

Y

12

(Y

11

=X ˙

1

, Y

12

=X ˙

2

∧edge(Y

11

, Y

12

)) ∨

∃Y

21

Y

22

Y

23

(Y

21

=X ˙

1

, Y

22

=X ˙

2

∧ edge(Y

21

, Y

23

)

∧ path(Y

23

, Y

22

))

edge(X

1

, X

2

) ∨

( ∃Y edge(X

1

, Y ) ∨ path(Y, X

2

)))

Thom Fr¨uhwirth – University of Ulm Page 101 – WS 2005

Clark’s Equality Theory (CET) Universal closure of the formulae

Reflexivity ( ⊤ → X ˙=X) Symmetry (X ˙ =Y → Y ˙=X)

Transitivity (X ˙ =Y ∧ Y ˙=Z → X ˙=Z)

Compatibility (X

1

=Y ˙

1

∧ . . . ∧ X

n

=Y ˙

n

→ f(X

1

, . . . , X

n

) ˙ =f (Y

1

, . . . , Y

n

)) Decomposition (f (X

1

, . . . , X

n

) ˙ =f (Y

1

, . . . , Y

n

) → X

1

=Y ˙

1

∧ . . . ∧ X

n

=Y ˙

n

) Contradiction

(Clash) (f (X

1

, . . . , X

n

) ˙ =g(Y

1

, . . . , Y

m

) → ⊥) if f6=g or n6=m Acyclicity (X ˙ =t → ⊥) if t is function term and X appears in t (Σ signature with infinitely many functions, including at least one constant)

Thom Fr¨uhwirth – University of Ulm Page 102 – WS 2005

Constraint Programming

Unifiable in CET

Terms s and t are unifiable if and only if CET |= ∃(t ˙=s).

Constraint Programming

Acyclicity Examples:

X ˙ =X is unifiable but not:

• X ˙=f(X)

• X ˙=p(A, f(X, a))

• X ˙=Y ∧ X ˙=f(Y )

(27)

Soundness and Completeness

Successful derivations

• Soundness:

If θ is a computed answer of G, then P

∪ C ET |= ∀Gθ.

• Completeness:

If P

∪ C ET |= ∀Gθ, then a computed answer σ of G exists, such that θ = σβ.

(P logic program, G goal, θ substitution)

Thom Fr¨uhwirth – University of Ulm Page 105 – WS 2005

Failed Derivations

• Fair Derivation:

Either fails or each atom appearing in the derivation is selected after finitely many reductions.

• Soundness and Completeness:

Any fair derivation starting with <G, ǫ> fails finitely if and only if

P

∪ C ET |= ¬∃G.

Remarks:

• not valid without CET

• SLD resolution not fair (P logic program, G goal)

Thom Fr¨uhwirth – University of Ulm Page 106 – WS 2005

Constraint Programming

Constraint Logic Programming (CLP)

• Constraint Satisfaction Problems (CSP) – artificial intelligence (1970s)

– e.g. X ∈{1, 2} ∧ Y ∈{1, 2} ∧ Z∈{1, 2} ∧ X=Y ∧ X6=Z ∧ Y >Z

• Constraint Logic Programming (CLP) – developed in the mid-1980s

– two declarative paradigms: constraint solving and logic programming

– more expressive, flexible, and in general more efficient than logic programs

– e.g. X − Y = 3 ∧ X + Y = 7 leads to X = 5 ∧ Y = 2 – e.g. X < Y ∧ Y < X fails without the need to know values

Constraint Programming

Early history of constraint-based programming

1963 I. Sutherland, Sketchpad, graphic system for geometric drawing 1970 U. Montanari, Pisa, Constraint networks

1970 R.E. Fikes, REF-ARF, language for integer linear equations 1972 A. Colmerauer, U. Marseille, and R. Kowalski, IC London, Prolog 1977 A.K. Mackworth, Constraint networks algorithms

1978 J.-L. Lauriere, Alice, language for combinatorial problems 1979 A. Borning, Thinglab, interactive graphics

1980 G.L. Steele, Constraints, first constraint-based language, in LISP

1982 A. Colmerauer, Prolog II, U. Marseille, equality constraints

1984 Eclipse Prolog, ECRC Munich, later IC-PARC London

1985 SICStus Prolog, Swedish Institute of Computer Science (SICS)

(28)

Early history of constraint-based programming (cont)

1987 H. Ait-Kaci, U. Austin, Life, equality constraints

1987 J. Jaffar and J.L. Lassez, CLP(X) - Scheme, Monash U. Melbourne 1987 J. Jaffar, CLP(ℜ), Monash U. Melbourne, linear polynomials 1988 P. v. Hentenryck, CHIP, ECRC Munich, finite domains, Booleans 1988 P. Voda, Trilogy, Vancouver, integer arithmetics

1988 W. Older, BNR-Prolog, Bell-Northern Research Ottawa, intervals 1988 A. Aiba, CAL, ICOT Tokyo, non-linear equation systems

1988 W. Leler, Bertrand, term rewriting for defining constraints 1988 A. Colmerauer, Prolog III, U. Marseille, list constraints and more

Thom Fr¨uhwirth – University of Ulm Page 109 – WS 2005

CLP Syntax vs. LP Syntax

• signature augmented with constraint symbols

• consistent first-order constraint theory (CT )

• at least constraint symbols true and false

• syntactic equality ˙= as constraints (by including CET into CT)

• constraints handled by predefined, given constraint solver

Thom Fr¨uhwirth – University of Ulm Page 110 – WS 2005

Constraint Programming

CLP Syntax (cont)

• atom: expression p(t

1

, . . . , t

n

), with predicate symbol p/n

• atomic constraint: expression c(t

1

, . . . , t

n

), with n-ary constraint symbol c/n

• constraint:

– atomic constraint, or – conjunction of constraints

• goal:

– ⊤ (top), or ⊥ (bottom), or – atom, or an atomic constraint, or – conjunction of goals

• (CL) clause: A ← G, with atom A and goal G

• CL program: finite set of CL clauses

Constraint Programming

CLP Syntax – Summary

Atom: A, B ::= p(t

1

, . . . , t

n

), n ≥ 0 Constraint: C, D ::= c(t

1

, . . . , t

n

) C ∧ D, n ≥ 0

Goal : G, H ::= ⊤ ⊥ A C G ∧ H

CL Clause: K ::= A ← G

CL Program: P ::= K

1

. . . K

m

, m ≥ 0

(29)

CLP State Transition System

• state <G, C>: G goal (store), C constraint (store)

• initial state: <G, true>

• successful final state: <⊤, C> and C is different from false

• failed final state: <G, false>

• successful and failed derivations and goals: as in LP calculus

Thom Fr¨uhwirth – University of Ulm Page 113 – WS 2005

CLP Operational Semantics

Unfold

If (B ← H) is a fresh variant of a clause in P and CT |= ∃ ((B .

=A) ∧ C) then <A ∧ G, C> 7→ <H ∧ G, (B .

=A) ∧ C>

Failure

If there is no clause (B ← H) in P with CT |= ∃ ((B .

=A) ∧ C) then <A ∧ G, C> 7→ <⊥, false>

Solve

If CT |= ∀ ((C ∧ D

1

) ↔ D

2

) then <C ∧ G, D

1

> 7→ <G, D

2

>

Thom Fr¨uhwirth – University of Ulm Page 114 – WS 2005

Constraint Programming

CLP Unfold – Comparison with LP

Unfold

If (B ← H) is a fresh variant of a clause in P and CT |= ∃ ((B .

=A) ∧ C) then <A ∧ G, C> 7→ <H ∧ G, (B .

=A) ∧ C>

• generalization of LP

• most general unifier in LP

• equality constraint between B and A in context of constraint store C, add equality constraint to store C

((B ˙ =A): shorthand for equating arguments of B and A pairwise)

Constraint Programming

CLP Solve Solve

If CT |= ∀ ((C ∧ D

1

) ↔ D

2

) then <C ∧ G, D

1

> 7→ <G, D

2

>

• form of simplification depends on constraint system and its constraint solver

• trying to simplify inconsistent constraints to false

• a failed final state can be reached using Solve

(30)

CLP State Transition System (vs. LP)

• like in LP, two degrees of non-determinism in the calculus (selecting the goal and selecting the clause)

• like in LP, search trees (mostly SLD resolution)

• LP: accumulate and compose substitutions CLP : accumulate and simplify constraints

• like substitutions, constraints never removed from constraint store (information increases monotonically during derivations)

Thom Fr¨uhwirth – University of Ulm Page 117 – WS 2005

CLP as Extension to LP

• derivation in LP can be expressed as CLP derivations:

– LP : substitution {X

1

7→t

1

, . . . , X

n

7→t

n

} – CLP : equality constraints: X

1

.

=t

1

∧ . . . ∧ X

n

.

=t

n

• CLP generalizes form of answers.

– LP answer : substitution – CLP answer : constraint

• Constraints summarize several (even infinitely many) LP answers into one (intensional) answer, e.g.,

– X+Y ≥3 ∧ X+Y ≤3 simplified to – X+Y .

= 3

– variables do not need to have a value

Thom Fr¨uhwirth – University of Ulm Page 118 – WS 2005

Constraint Programming

CLP Logical Reading, Answer Constraint

• logical reading of a state <H, C>: ∃ ¯ X(H ∧ C) – <G, true> 7→

<H, C>

– ¯ X: variables which occur in H or C but not in G

• answer (constraint) of a goal G:

logical reading of final state of derivation starting with <G, true>

Answer constraints of final states:

• h⊤, Ci is true as (∃ ¯ X ⊤ ∧ C) ⇔ ∃ ¯ XC

• hG, falsei is false as (∃ ¯ XG ∧ false) ⇔ false

Constraint Programming

CLP Example – Min

min(X,Y,Z) ← X≤Y ∧ X .

=Z (c1) min(X,Y,Z) ← Y≤X ∧ Y .

=Z (c2)

Constraints with usual meaning

• ≤ total order

• .

= syntactic equality

Riferimenti

Documenti correlati

The fundamental question for the human person, for any person in any time until the end of history, ever since the message that God became man was brought, entered the world,

◆  A constraint solver answers the satisfaction

In this paper we focus on the problem of defining procedures translating a stochastic model written using a process algebra, specifically stochastic Concurrent Constraint

Ore 15.45 Indirizzi di saluto Marco Biscione, Direttore MAO di Torino Valter Cantino, Direttore del Dipartimento di Management Annalisa Besso, Comune di Torino Art bonus:

The project mainly works towards enhancing the capacities of the following Albanian Authorities, which are final beneficiaries of the project: the Albanian Parliament, Ministry

ORGANIZZAZIONE DEL MASTER PS – PREVISIONE SOCIALE Da settembre 2021 a gennaio 2022 sono previsti 10 cicli da 3 incontri ciascuno, organizzati per venire incontro alle esigenze

(Note that we could also formulate the nite domain constraint solving of CHIP as having no passive constraints, but having an incomplete test for consistency. However the

Linear arithmetic over rationals (=, ≤, &gt;, 6=), Simplex Boolean (=), larger Boolean algebra (symbolic values) Finite domains. User–defined constraints and solver