I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the...

67

Transcript of I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the...

Page 1: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.
Page 2: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

• I am Patrick Prosser• I am a senior lecturer at Glasgow • I teach AF2 & CP4• I am a member of

• the algorithms group• the apes (distributed, not disbanded)

• I am a Glaswegian

This is all that I am allowed to tell you

(baby) Bio

Page 3: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

10 years of conflict-directed backjumping

Page 4: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

CI 9(4)

Hybrid Algorithms for the

Constraint Satisfaction

Problem• Still using that old greasy stuff?• Who cares?• So?

Patrick Prosser

Page 5: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.
Page 6: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Plan of the talk

• What’s a csp?• The simplest algorithm (BT) and its behaviour• Some improvements (BJ, GBJ)• A better way (CBJ)• Improvements to CBJ• Strange things about CBJ

• k-inconsistencies• the bridge and the long jump• value ordering and insolubility

• So, what about CBJ?• some say its good• some say it’s a waste of time• who’s using it• who’s not using

• Where’s it going• QBF?

Page 7: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

What’s a csp?

• a set of variables• each with a domain of values• a collection of constraints (I’m going to assume binary)• assign each variable a value from its domain to satisfy the constraint

<V,D,C>

Page 8: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

3 colour me!

Page 9: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Page 10: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 11: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 12: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 13: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 14: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 15: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 16: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 17: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 18: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 19: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 20: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 21: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 22: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 23: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 24: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 25: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Why did it do that?That was dumb!

Page 26: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 27: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 28: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 29: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 30: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 31: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 32: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 33: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

Va

Vb

Vc

Vd

Ve

Vf

Vg

Vh

1 = red2 = blue3 = green

Variables and Instantiation OrderChecking back

Page 34: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

That was good old fashioned chronological backtracking

• instantiate a variable• check current against past variables to see if okay

• current? past? Future?• If not okay try another value• If no values left go back to previous variable

Page 35: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Example of a csp

CE

D

B

F

A

G

H

1 = red2 = blue3 = green

E1

E2

E3

E4

What would have happened if we had the E* intermediate variables?i.e. it falls back on E4, then E3, towards E?

Page 36: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

It’s all just depth first search, right?

Page 37: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

BT Thrashes!

past

future

current variable v[i]

conflict with v[h]

past variable v[h]

future variable v[j]

Page 38: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

BT

Assume that when we instantiate the current variablev[i] we check against all past variables from v[1] to v[i-1]to check if consistent

consistent := falsefor x in domain[i] while not(consistent) // find a consistent valuebegin consistent := true v[i] := x for h in (1 .. i-1) while consistent // check backwards begin consistent := (check(v[i],v[h]) end if not(consistent) then delete(x,domain[i])end // did we find a good value?

Page 39: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

John Gaschnig’s BJ

Make a small modification to BT. Remember the last variable we check against

If the loop terminates with consistent falsethen jump back to v[h], where h := lastCheck[i]This is then the deepest variable we failed against

consistent := falsemaxCheck[i] := 0for x in domain[i] while not(consistent) // find a consistent valuebegin consistent := true v[i] := x for h in (1 .. i-1) while consistent // check backwards begin consistent := (check(v[i],v[h]) maxCheck := max(h,maxCheck[i]) end if not(consistent) then delete(x,domain[i])end // did we find a good value?

Page 40: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

John Gaschnig’s BJ

If the loop terminates with consistent true ...lastCheck[i] = i-1we then step back!

consistent := falsemaxCheck[i] := 0for x in domain[i] while not(consistent) // find a consistent valuebegin consistent := true v[i] := x for h in (1 .. i-1) while consistent // check backwards begin consistent := (check(v[i],v[h]) maxCheck := max(h,maxCheck[i]) end if not(consistent) then delete(x,domain[i])end // did we find a good value?

BJ jumps then steps back. It can only jump after it has moved forwards!

Page 41: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

BJ reduces thrashing

1

2

3

4

5

6

maxCheck[i]

0

1

2

3

4

4

Jump back to v[4]then step back

Page 42: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Rina Dechter’s GBJ

If there are no values remaining for v[i]Jump back to v[h], where v[h] is the deepest variable connected to v[i] in the constraint graph

If there are no values remaining for v[h]Jump back to v[g], where v[g] is the deepest variable connected to v[h] or v[i] in the constraint graph

If there are no values remaining for v[g]Jump back to v[f], where v[f] is the deepest variable connected to v[g] or v[h] or v[i] in the constraint graph

Graph-based backjumping, exploits topology of constraint graph

What happens if constraint graph is a clique?

Page 43: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

We want something that can jump and jump again,something that takes into consideration what causeda dead-end, not something that just looks at thetopology of the constraint graph

Combine BJ and GBJ

Page 44: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

CBJ Remember your conflicts, and when you have used them forget them.

When we instantiate v[i] := x and check(v[i],v[h]) and it fails

• v[i] is in conflict with v[h]• add h to the set confSet[i]

confSet[i] is then the set of past variables that conflictwith values in the domain of v[i]

Page 45: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

CBJ

If there are no values remaining for v[i]Jump back to v[h], where v[h] is the deepest variable in conflict with v[i]The hope: re-instantiate v[h] will allow us to find a good value for v[i]

Conflict-directed backjumping, exploits failures within the search process

What happens if: constraint graph is dense, tight, or highly consistent?

If there are no values remaining for v[h]Jump back to v[g], where v[g] is the deepest variable in conflict with v[i] or v[h]The hope: re-instantiate v[g] will allow us to find a good value for v[i] or a good value for v[h] that will be good for v[i]

If there are no values remaining for v[g]Jump back to v[f], where v[f] is the deepest variable in conflict with v[i] or v[h] or v[g]The hope: re-instantiate v[f] will allow us to find a good value for v[i] or a good value for v[h] that will be good for v[i] or a good value for v[g] that will be good for v[h] and v[i]

Page 46: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

CBJ

consistent := falseconfSet[i] := {0}for x in domain[i] while not(consistent) // find a consistent valuebegin consistent := true v[i] := x for h in (1 .. i-1) while consistent // check backwards begin consistent := (check(v[i],v[h]) if not(consistent) then confSet[i] := confSet[i] {h} end if not(consistent) then delete(x,domain[i]) end

Page 47: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

CBJ

When jumping back from v[i] to v[h] update conflict sets

confSet[h] := confSet[h] confSet[i] \ {h}confSet[i] := {0}

That is, when we jump back from v[h] jump back to a variable that is in conflict with v[h] or with v[i]

Throw away everything you new on v[i]

Reset all variables from v[h+1] to v[i] (i.e. domain and confSet)

Page 48: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

CBJ

1

2

3

4

5

6 {4,1,0}

{2,0}

conflict set

Page 49: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

CBJ

1

2

3

4

5

6

{2,1,0}

conflict set

Page 50: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

CBJ (reduce thrashing)

1

2

3

4

5

6

{2,1,0}

Jump back to deepest past variablein confSet (call it h) and then combine confSet[i] with confSet[h]

•History: •Konkrat and V Beek,•Gent and Underwood

Page 51: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Forward Checking

1

2

3

4

5

6

7

9

8

NOTE: arrows go forward!

Page 52: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

1

2

3

4

5

6

7

9

8

Page 53: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Check Forwards, Jump Back!

1

2

3

4

5

6

7

9

8

•There are no values in cd[6] compatible with v[9]• get more values into cd[9] (undo v[1]?) OR• get more values into cd[6] (undo v[4])

• … and if that doesn’t work? undo v[3] so cd[4] gets value compatible with cd[6] that is then compatible with cd[9]

Page 54: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

CBJ Variants

BM-CBJ, FC-CBJ, MAC-CBJ

Page 55: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

CBJ DkC

If we jump from v[i] to v[h] and confSet[i] = {0,h}then remove value(v[h]) from domain(h)value(v[h]) is 2-inconsistent wrt v[i]

If we jump from v[h] to v[g] and confSet[h] = {0,g}then remove value(v[g]) from domain(g)value(v[g]) is 3-inconsistent wrt v[i] and v[h]

If we jump from v[g] to v[f] and confSet[g] = {0,f}then remove value(v[f]) from domain(f)value(v[f]) is 4-inconsistent wrt v[i] and v[h] and v[g]

What happens if the problem is highly consistent?See JAIR 14 2001, Xinguang Chen & Peter van Beek

Page 56: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

CBJ ATMS

If we jump from v[i] to v[g] and confSet[h] {0 .. g-1}then do NOT reset domain(h) and do NOT reset confSet(h)

Consider the past variables as assumptions and confSet[i]as an explanation

Down side, we have more work to do.This is a kind of learning (what kind?)

Page 57: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

CBJ ~ DB

confSet[x,i] gives the past variable in conflict with v[i] := x

Finer grained:on jumping back we can deduce better what values to return to domains

Down side, we have more work to do.This is an algorithm between CBJ and DB

Page 58: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

The bridge and the long jumpFunny things about cbj

Page 59: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Funny things about cbj Value ordering on insoluble problems can have an effect

Problem: V1 to V7, each with domain {A,B} nogoods {(1A,7A),(3A,7B),(5A,7B),(6A,7A),(6A,7B),(6B,7A),(6B,7B)}

Var Val confSetV1 AV2 AV3 AV4 AV5 AV6 AV7 A/B {1,3}

Var Val confSetV1 AV2 AV3 BV4 AV5 AV6 AV7 A/B {1,5}

Var Val confSetV1 AV2 AV3 BV4 AV5 BV6 AV7 A/B {6}

Var Val confSetV1 AV2 AV3 BV4 AV5 BV6 BV7 A/B {6}

Finally V6 has no values and cbj jumps to V0

Page 60: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Funny things about cbj Value ordering on insoluble problems can have an effect

Problem: V1 to V7, each with domain {A,B} nogoods {(1A,7A),(3A,7B),(5A,7B),(6A,7A),(6A,7B),(6B,7A),(6B,7B)}

Var Val confSetV1 BV2 BV3 BV4 BV5 BV6 BV7 A/B {6}

Var Val confSetV1 BV2 BV3 BV4 BV5 BV6 AV7 A/B {6}

Finally V6 has no values and cbj jumps to V0

We now order domains and choose B then A!

Value ordering made a difference to an insoluble problem!

Page 61: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Conflicting claims

Bessier & Regin CP96: CBJ is nothing but an overhead random problems as evidence

Smith & Grant IJCAI95: CBJ helps minimise occurrence of EHP’s random problems as evidence

Chen & van Beek JAIR 2001: CBJ is a tiny overhead When it makes a difference it is a HUGE difference random & real problems as evidence

Page 62: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

New CBJ

I believe all state of the art sat solvers are using cbj(or have rediscovered cbj but don’t know it)

CBJ for QSAT: see recent AIJconflict and solution directed!

Page 63: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Who is not using cbj?

Constraint programming!

We don’t jump and we don’t learn

Page 64: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Is speed everything?

No

How about explanations and retraction?

Page 65: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

Why is cbj not in CP?

Need to propagate laterally (see MAC-CBJ tech report)but this is no big deal

Need to get explanations out of constraints!

Not just writing a good constraint propagator but a good constraint explainer!

Maybe there is not yet the demand for retraction and explanation(but I don’t believe that)

Page 66: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.

So?• Paper rejected from IJCAI91 (written in 1990)• I was a Lisp programmer at the time (it shows)• I think the experiments were very good (so there!)• Nice study of influence of topological parameter on search cost.• In conclusion I forgot to say CBJ was new … why?• I like BMJ, it is cool (I was smart for 1 day)• I think CBJ is pretty (natural, discovered, not invented)• I like FC-CBJ (I can understand it)• I identify work to be done (researchers love that (why?))• … and I make errors re-dvo’s (researchers love that (why?))• I put my results in perspective (trash them :)• I got encouragement (Nadel) and help (Ole and Peter)• I got a whole load of background (Rina)• But it hurt … why did it take 3 years to get somebody to read it?• It is still alive! We are not done yet.

Page 67: I am Patrick Prosser I am a senior lecturer at Glasgow I teach AF2 & CP4 I am a member of the algorithms group the apes (distributed, not disbanded) I.