Introduction & Overview Lecture 01, 2018-03-19 Christian - - PowerPoint PPT Presentation

introduction overview
SMART_READER_LITE
LIVE PREVIEW

Introduction & Overview Lecture 01, 2018-03-19 Christian - - PowerPoint PPT Presentation

ID2204: Constraint Programming Introduction & Overview Lecture 01, 2018-03-19 Christian Schulte cschulte@kth.se Software and Computer Systems School of Electrical Engineering and Computer Science KTH Royal Institute of Technology Sweden


slide-1
SLIDE 1

ID2204: Constraint Programming

Introduction & Overview

Lecture 01, 2018-03-19

Christian Schulte

cschulte@kth.se

Software and Computer Systems School of Electrical Engineering and Computer Science KTH Royal Institute of Technology Sweden

slide-2
SLIDE 2

2018-03-19

Sudoku

Assign blank fields digits such that:

digits distinct per rows, columns, blocks

9 2

2 5 9 7 3 6

2 6 9 7 4 9 1 8 6 3 4 6 8 1 8

ID2204, L01, Christian Schulte, EECS, KTH 4

slide-3
SLIDE 3

2018-03-19

Propagation

Prune digits from fields such that:

digits distinct per rows, columns, blocks

9 2

2 5 9 7 3 6

2 6 9 7 4 9 1 8 6 3 4 6 8 1 8

1,2,3,4,5,6,7,8,9

ID2204, L01, Christian Schulte, EECS, KTH 10

slide-4
SLIDE 4

2018-03-19

Propagation

Prune digits from fields such that:

digits distinct per rows, columns, blocks

9 2

2 5 9 7 3 6

9 6 2 7 1 9 4 8 6 3 4 6 8 1 8

1,3,5,6,7,8

ID2204, L01, Christian Schulte, EECS, KTH 11

slide-5
SLIDE 5

2018-03-19

Propagation

Prune digits from fields such that:

digits distinct per rows, columns, blocks

9 2

9 5 2 7 3 6

2 6 9 7 4 9 1 8 6 3 8 6 4 1 8

1,3,6,7

ID2204, L01, Christian Schulte, EECS, KTH 12

slide-6
SLIDE 6

2018-03-19

Propagation

Prune digits from fields such that:

digits distinct per rows, columns, blocks

9 2

2 5 9 7 3 6

2 6 9 7 4 9 1 8 6 3 4 6 8 1 8

1,3,6

ID2204, L01, Christian Schulte, EECS, KTH 13

slide-7
SLIDE 7

2018-03-19

Iterated Propagation

Iterate propagation for rows, columns, blocks What if no assignment: search... later

9 2

2 5 9 7 3 6

2 6 9 7 4 9 1 8 6 3 4 6 8 1 8

ID2204, L01, Christian Schulte, EECS, KTH 14

slide-8
SLIDE 8

2018-03-19

Running Example: SMM

Find distinct digits for letters, such that

SEND + MORE = MONEY

ID2204, L01, Christian Schulte, EECS, KTH 19

slide-9
SLIDE 9

2018-03-19

Constraint Model for SMM

Variables:

S,E,N,D,M,O,R,Y {0,…,9}

Constraints:

distinct(S,E,N,D,M,O,R,Y) 1000×S+100×E+10×N+D + 1000×M+100×O+10×R+E = 10000×M+1000×O+100×N+10×E+Y S0 M0

ID2204, L01, Christian Schulte, EECS, KTH 20

slide-10
SLIDE 10

2018-03-19

Finding a Solution

Compute with possible values

rather than enumerating assignments

Prune inconsistent values

constraint propagation

Search

branch:

define search tree

explore:

explore search tree for solution

ID2204, L01, Christian Schulte, EECS, KTH 22

slide-11
SLIDE 11

Constraint Propagation

slide-12
SLIDE 12

2018-03-19

Constraint Store

Maps variables to possible values Others: finite sets, intervals, trees, ...

x{3,4,5} y{3,4,5}

finite domain constraints

ID2204, L01, Christian Schulte, EECS, KTH 26

slide-13
SLIDE 13

2018-03-19

Propagators

Implement (non-basic) constraints

distinct(x1,…,xn) x + 2*y = z

ID2204, L01, Christian Schulte, EECS, KTH 27

slide-14
SLIDE 14

2018-03-19

Propagators

Amplify store by constraint propagation

x{3,4,5} y{3,4,5} xy y>3

ID2204, L01, Christian Schulte, EECS, KTH 29

slide-15
SLIDE 15

2018-03-19

Propagators

Amplify store by constraint propagation

x{3,4,5} y{4,5} xy y>3

ID2204, L01, Christian Schulte, EECS, KTH 30

slide-16
SLIDE 16

2018-03-19

Propagators

Amplify store by constraint propagation

x{3,4,5} y{4,5} xy y>3

ID2204, L01, Christian Schulte, EECS, KTH 31

slide-17
SLIDE 17

2018-03-19

Propagators

Amplify store by constraint propagation

x{4,5} y{4,5} xy y>3

ID2204, L01, Christian Schulte, EECS, KTH 32

slide-18
SLIDE 18

2018-03-19

Propagators

Amplify store by constraint propagation Disappear when done (subsumed, entailed)

  • no more propagation possible

x{4,5} y{4,5} xy y>3

ID2204, L01, Christian Schulte, EECS, KTH 33

slide-19
SLIDE 19

2018-03-19

Propagators

Amplify store by constraint propagation Disappear when done (subsumed, entailed)

  • no more propagation possible

x{4,5} y{4,5} xy

ID2204, L01, Christian Schulte, EECS, KTH 34

slide-20
SLIDE 20

2018-03-19

Propagation for SMM

Results in store

S{9} E{4,…,7} N{5,…,8} D{2,…,8} M{1} O{0} R{2,…,8} Y{2,…,8}

Propagation alone not sufficient!

create simpler sub-problems branching

ID2204, L01, Christian Schulte, EECS, KTH 35

slide-21
SLIDE 21

2018-03-19

Constraints and Propagators

Constraints state relations among variables

which value combinations satisfy constraint

Propagators implement constraints

prune values in conflict with constraint

Constraint propagation drives propagators for

several constraints

ID2204, L01, Christian Schulte, EECS, KTH 36

slide-22
SLIDE 22

Search

slide-23
SLIDE 23

2018-03-19

Search: Branching

Create subproblems with additional information

  • enable further constraint propagation

x{4,5} y{4,5} xy x{4} y{4} xy x{5} y{4,5} xy

x=4 x4

ID2204, L01, Christian Schulte, EECS, KTH 39

slide-24
SLIDE 24

2018-03-19

Example Branching Strategy

Pick variable x with at least two values Pick value n from domain of x Branch with

x=n and xn

Part of model

ID2204, L01, Christian Schulte, EECS, KTH 40

slide-25
SLIDE 25

2018-03-19

Search: Exploration

Iterate propagation and branching Orthogonal: branching exploration Nodes:

Unsolved Failed Succeeded

ID2204, L01, Christian Schulte, EECS, KTH 41

slide-26
SLIDE 26

2018-03-19

SMM: Unique Solution

SEND + MORE = MONEY 9567 + 1085 = 10652

ID2204, L01, Christian Schulte, EECS, KTH 42

slide-27
SLIDE 27

2018-03-19

Heuristics for Branching

Which variable

least possible values (first-fail) application dependent heuristic

Which value

minimum, median, maximum

x=m

  • r

xm

split with median m

x<m

  • r

xm

Problem specific

ID2204, L01, Christian Schulte, EECS, KTH 43

slide-28
SLIDE 28

2018-03-19

SMM: Solution With First-fail

SEND + MORE = MONEY 9567 + 1085 = 10652

ID2204, L01, Christian Schulte, EECS, KTH 44

slide-29
SLIDE 29

2018-03-19

Send Most Money (SMM++)

Find distinct digits for letters, such that

and MONEY maximal

SEND + MOST = MONEY

ID2204, L01, Christian Schulte, EECS, KTH 45

slide-30
SLIDE 30

2018-03-19

Best Solution Search

Naïve approach:

compute all solutions choose best

Branch-and-bound approach:

compute first solution add “betterness” constraint to open nodes next solution will be “better” prunes search space

ID2204, L01, Christian Schulte, EECS, KTH 46

slide-31
SLIDE 31

2018-03-19

Branch-and-bound Search

Find first solution

ID2204, L01, Christian Schulte, EECS, KTH 47

slide-32
SLIDE 32

2018-03-19

Branch-and-bound Search

Explore with additional constraint

ID2204, L01, Christian Schulte, EECS, KTH 49

slide-33
SLIDE 33

2018-03-19

Branch-and-bound Search

Guarantees better solutions

ID2204, L01, Christian Schulte, EECS, KTH 51

slide-34
SLIDE 34

2018-03-19

Branch-and-bound Search

Last solution best

ID2204, L01, Christian Schulte, EECS, KTH 52

slide-35
SLIDE 35

2018-03-19

Branch-and-bound Search

Proof of optimality

ID2204, L01, Christian Schulte, EECS, KTH 53

slide-36
SLIDE 36

2018-03-19

Modelling SMM++

Constraints and branching as before Order among solutions with constraints

so-far-best solution

S,E,N,D,M,O,T,Y

current node

S,E,N,D,M,O,T,Y

constraint added

10000×M+1000×O+100×N+10×E+Y < 10000×M+1000×O+100×N+10×E+Y

ID2204, L01, Christian Schulte, EECS, KTH 54

slide-37
SLIDE 37

2018-03-19

SMM++: Branch-and-bound

SEND + MOST = MONEY 9782 + 1094 = 10876

ID2204, L01, Christian Schulte, EECS, KTH 55

slide-38
SLIDE 38

2018-03-19

SMM: Strong Propagation

SEND + MORE = MONEY 9567 + 1085 = 10652

ID2204, L01, Christian Schulte, EECS, KTH 63

slide-39
SLIDE 39

2018-03-19

Acknowledgments

I am grateful to Pierre Flener for helpful

comments and bugreports on these slides

ID2204, L01, Christian Schulte, EECS, KTH 97