543 cbj fans can’t be wrong.

Slides:



Advertisements
Similar presentations
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.
Advertisements

Levels of Consistency Node Consistency (NC) Arc-consistency (AC) Path Consistency (PC) Generalised arc-consistency (GAC) Bounds consistency Inverse Path.
Slides by Peter van Beek Edited by Patrick Prosser.
Constraint Satisfaction Patrick Prosser. An Example, Exam Timetabling Someone timetables the exams We have a number of courses to examine how many? Dept.
Backward Checking Search BT, BM, BJ, CBJ. An example problem Colour each of the 5 nodes, such that if they are adjacent, they take different colours 12.
Fc. Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10]
Foundations of Constraint Processing Lookahead Schemas 1 Foundations of Constraint Processing CSCE421/821, Spring
Backward Checking Search BT, BM, BJ, CBJ. An example problem Colour each of the 5 nodes, such that if they are adjacent, they take different colours.
Global Constraints Toby Walsh National ICT Australia and University of New South Wales
1 Finite Constraint Domains. 2 u Constraint satisfaction problems (CSP) u A backtracking solver u Node and arc consistency u Bounds consistency u Generalized.
Exploiting Symmetry in Planning Maria Fox Durham Planning Group University of Durham, UK.
Truth Maintenance Systems. Outline What is a TMS? Basic TMS model Justification-based TMS.
1 Backdoor Sets in SAT Instances Ryan Williams Carnegie Mellon University Joint work in IJCAI03 with: Carla Gomes and Bart Selman Cornell University.
Is conflict directed backjumping a waste of time?.
Foundations of Constraint Processing, Fall 2005 September 11, 2005Backtracking1 Foundations of Constraint Processing CSCE421/821, Fall 2005:
Foundations of Constraint Processing, Fall September 2004Backtracking1 Foundations of Constraint Processing CSCE421/821, Fall 2004:
Constraint Satisfaction CSE 473 University of Washington.
Constraint Satisfaction Problems
Foundations of Constraint Processing, Fall 2005 Sep 20, 2005BT: A Theoretical Evaluation1 Foundations of Constraint Processing CSCE421/821, Fall 2005:
1 Backdoors To Typical Case Complexity Ryan Williams Carnegie Mellon University Joint work with: Carla Gomes and Bart Selman Cornell University.
Chapter 5 Outline Formal definition of CSP CSP Examples
Subgraph Isomorphism Problem Simple algorithms. Given two graphs G = (V,E) and H = (W,F) is there a subgraph of H that is isomorphic to G?
CP Summer School Modelling for Constraint Programming Barbara Smith 1.Definitions, Viewpoints, Constraints 2.Implied Constraints, Optimization,
Artificial Intelligence CS482, CS682, MW 1 – 2:15, SEM 201, MS 227 Prerequisites: 302, 365 Instructor: Sushil Louis,
Constrainedness Including slides from Toby Walsh.
I am Patrick Prosser I am a senior lecturer at Glasgow (and Strathclyde till mid April) I teach algorithms & data structures in java I am a member of.
Computer Science CPSC 322 Lecture 13 Arc Consistency (4.5, 4.6 ) Slide 1.
CP Summer School Modelling for Constraint Programming Barbara Smith 2. Implied Constraints, Optimization, Dominance Rules.
Problem Solving with Constraints Lookahead Schemas 1 Foundations of Constraint Processing CSCE496/896, Fall
Chapter 5 Constraint Satisfaction Problems
Review Test1. Robotics & Future Technology Future of Intelligent Systems / Ray Kurzweil futurist Ray Kurzweil / A Long Bet A Long Bet / Robot Soccer.
Maintaining Arc Consistency (MAC) MAC is the same as Back-tracking, but with calls to AC-3 interleaved... function Backtracking-Search(csp) returns.
An Introduction to Artificial Intelligence Lecture 5: Constraint Satisfaction Problems Ramin Halavati In which we see how treating.
Maximum Density Still Life Symmetries and Lazy Clause Generation Geoffrey Chu, Maria Garcia de la Banda, Chris Mears, Peter J. Stuckey.
Arc consistency AC5, AC2001, MAC. AC5 A generic arc-consistency algorithm and its specializations AIJ 57 (2-3) October 1992 P. Van Hentenryck, Y. Deville,
Problem Solving with Constraints Intelligent Backtracking Algorithms 1 Problem Solving with Constraints CSCE496/896, Fall2011:
1 Constraint Satisfaction Problems: Formulation, Arc Consistency & Propagation 1 Brian C. Williams October 13 th, 2004 Slides adapted from:
Constraint Satisfaction CSE 473 University of Washington.
CS 171: Intro to AI Discussion Week 2 Jan 15 th 2016.
Foundations of Constraint Processing, Spring 2008 Intelligent Backtracking AlgorithmsApril 16, Foundations of Constraint Processing CSCE421/821,
IBM Labs in Haifa © 2005 IBM Corporation Assumption-based Pruning in Conditional CSP Felix Geller and Michael Veksler.
Where are the hard problems?. Remember Graph Colouring? Remember 3Col?
Cbj. What’s a csp? a set of variables each with a domain of values a collection of constraints (I’m going to assume binary for the present) assign each.
Where are the hard problems?
I am a senior lecturer at Glasgow
CSPs: Search and Arc Consistency Computer Science cpsc322, Lecture 12
Constraint Satisfaction
Constraint Satisfaction
Lecture 7 Constraint Satisfaction Problems
I am a senior lecturer at Glasgow
CS B551: Elements of Artificial Intelligence
Constraints and Search
Foundations of Constraint Processing
CSP Search Techniques Backtracking Forward checking
Intelligent Backtracking Algorithms: A Theoretical Evaluation
Foundations of Constraint Processing All questions to Piazza
Heuristic Ordering for Asynchronous Backtracking
Lookahead Schemas Foundations of Constraint Processing
Intelligent Backtracking Algorithms
Constraints and Search
Chapter 5: General search strategies: Look-ahead
Intelligent Backtracking Algorithms: A Theoretical Evaluation
Intelligent Backtracking Algorithms: A Theoretical Evaluation
at Glasgow (and Strathclyde till mid April)
Intelligent Backtracking Algorithms: A Theoretical Evaluation
Intelligent Backtracking Algorithms: A Theoretical Evaluation
Artificial Intelligence
Foundations of Constraint Processing All questions to Piazza
Constraint Satisfaction
Intelligent Backtracking Algorithms: A Theoretical Evaluation
Presentation transcript:

543 cbj fans can’t be wrong

Talk inspired by Prof. Ian Philip Gent and The Fall

543 CBJ

Pay attention at the back Sit up model checkers Pay attention at the back

What’s a csp? <V,D,C> a set of variables each with a domain of values a collection of constraints (I’m going to assume binary for the present) assign each variable a value from its domain to satisfy the constraint

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 How will search proceed? Demo csp5 with bt4 with system.verbose := 3 A solution is 3--3--2--1

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 V3 V4 V5 V6 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 V4 V5 V6 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 V5 V6 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 V6 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 = 1 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 = 1 V7 = 1 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 = 1 V7 = 2 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 = 1 V7 = 3 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 = 2 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 = 2 V7 = 1 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 = 2 V7 = 2 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 = 2 V7 = 3 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 = 3 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 = 3 V7 = 1 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 = 3 V7 = 2 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 1 V6 = 3 V7 = 3 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 = 1 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 = 1 V7 = 1 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 = 1 V7 = 2 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 = 1 V7 = 3 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 = 2 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 = 2 V7 = 1 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 = 2 V7 = 2 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 = 2 V7 = 3 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 = 3 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 = 3 V7 = 1 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 = 3 V7 = 2 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 2 V6 = 3 V7 = 3 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 3 V6 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 3 V6 = 1 V7 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 3 V6 = 1 V7 = 1 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 3 V6 = 1 V7 = 2 V8 V9 V10

Consider the following problem (csp5) variables V[1] to V[10] uniform domains D[1] to D[10] = {1,2,3} constraints V[1] = V[4] V[4] > V[7] V[7] = V[10] + 1 V1 = 1 V2 = 1 V3 = 1 V4 = 1 V5 = 3 V6 = 1 V7 = 3 V8 V9 V10

BT Thrashes! past variable v[h] past conflict with v[h] current variable v[i] future future variable v[j]

Thrashing: Slavishly repeating the same set of actions with the same set of outcomes. Can we minimise thrashing?

Cause for conflict in some other csp Recording conflicts Conflict Sets V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 CS1 = {0} CS2 = {0} CS3 = {0} CS4 = {0,1} CS5 = {0} CS6 = {0} CS7 = {0,4} CS8 = {0} CS9 = {0} CS10 = {0,6,7} What do we do now? Why do we do that? Current variable Assume search proceeded as follows V1, V2, and V3 were instantiated without failures First value tried for V4 conflicted with V1 Second value tried for V4 was compatible with V1, V2, and V3 V5 and V6 were instantiated without failures First and second value tried for V7 failed against V4 Third value tried for V7 was compatible with all past variables V1 to V6 V8 and V9 were instantiated without failure First value tried for V10 failed against V6 Second and Third values tried for V10 failed against V7 V10 has no more values

Cause for conflict in some other csp Recording conflicts Conflict Sets V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 CS1 = {0} CS2 = {0} CS3 = {0} CS4 = {0,1} CS5 = {0} CS6 = {0} CS7 = {0,4} CS8 = {0} CS9 = {0} CS10 = {0,6,7} Current variable Jump back from V10 to V7 update CS7 to be CS7  CS10  {7} the set of variables conflicting with V10 or V7, excluding V7 Why? If we re-instantiate V7 we might find a compatible value for V10

Cause for conflict in some other csp Recording conflicts Conflict Sets V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 CS1 = {0} CS2 = {0} CS3 = {0} CS4 = {0,1} CS5 = {0} CS6 = {0} CS7 = {0,4,6} CS8 = {0} CS9 = {0} CS10 = {0} Current variable Assume V7 now has no values remaining jump back to V[6] and update CS6 Why? If we re-instantiate V6 we might find compatible values for V7 and V10

Cause for conflict in some other csp Recording conflicts Conflict Sets V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 CS1 = {0} CS2 = {0} CS3 = {0} CS4 = {0,1} CS5 = {0} CS6 = {0,4} CS7 = {0} CS8 = {0} CS9 = {0} CS10 = {0} Current variable Assume V6 now has no values remaining jump back to V[4] and update CS4 Why? If we re-instantiate V4 we might find compatible values for V6 and V7 and V10

Cause for conflict in some other csp Recording conflicts Conflict Sets V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 CS1 = {0} CS2 = {0} CS3 = {0} CS4 = {0,1} CS5 = {0} CS6 = {0} CS7 = {0} CS8 = {0} CS9 = {0} CS10 = {0} Current variable Assume V4 now has no values remaining jump back to V[1] and update CS1 Why? If we re-instantiate V1 we might find compatible values for V4 and V6 and V7 and V10

Cause for conflict in some other csp Recording conflicts Conflict Sets Current variable V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 CS1 = {0} CS2 = {0} CS3 = {0} CS4 = {0} CS5 = {0} CS6 = {0} CS7 = {0} CS8 = {0} CS9 = {0} CS10 = {0} Assume V1 now has no values remaining jump back to the zeroth variable! No solution!

cbj Associate with each variable V[i] a conflict set CS[i] Initially CS[i] = {0}, for all i when labeling a variable V[i] If a consistency check fails between V[i] and V[h] add h to CS[i] when unlabeling a variable V[i] jump back to V[h] h is the largest value in CS[i] update conflict set CS[h] CS[h] := CS[h]  CS[i]  {h} reset all variables V[j] h  j  i

If there are no values remaining for v[i] CBJ Conflict-directed backjumping, exploits failures within the search process 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] 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] What happens if: constraint graph is dense, tight, or highly consistent?

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)

CBJ Looks like bt?

CBJ A simple modification record a conflict

CBJ A simple modification get back jumping point

update conflict set of backjumping point CBJ A simple modification update conflict set of backjumping point (aka “culprit”)

reset variables we jump over CBJ A simple modification reset variables we jump over

Wee experiments

One example

Chen & van Beek Random problems, no structure cbj a waste of time

Chen & van Beek

Chen & van Beek

Chen & van Beek 10 cases where GAC beat GAC-CBJ When cbj gets beaten it gets beaten by a very small amount i.e. cbj has a small overhead

Chen & van Beek When cbj wins it can win by a HUGE margin cbj is robust

Chen & van Beek The bottom line

Bayardo & Schrag SAT: relsat(i) uses cbj + relevance bounded learning, retaining conflict sets of size ≤ i as clauses,

CBJ Variants BM-CBJ, FC-CBJ, MAC-CBJ, relsat(i), …

What happens if the problem is highly consistent? 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

CBJ DkC

Down side, we have more work to do. CBJ ATMS If we jump from v[i], over v[h], to v[g] and confSet[h]  {0 .. g-1} then do NOT reset domain(h) and do NOT reset confSet(h) v[h] is in conflict only with variables “above” v[g] none of those conflicting variables have been re-instantiated consequently confSet[h] and currentDomain[h] remains valid! 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?) Not yet investigated

CBJ ATMS Recording conflicts Conflict Sets V1 CS1 = {0} V2 CS2 = {0} Current variable v7 in conflict with v4 v10 in conflict with v3 and v6 jump back from v10 to v7 reset variables v10, v9, v8, v7 But v4 does not change value Therefore v7 still in conflict with v4 Why reset domain and conflict set of v7 Why reconsider a search state that we know fails? (maybe because of the cost?)

Down side, we have more work to do. 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 Not yet investigated

Funny things about cbj (part 1) The bridge and the long jump A bit difficult to explain, but the gist of it is …

Funny things about cbj (part 2) Value ordering on insoluble problems NEVER has an effect with chronological backtracking (bt) But it can with cbj!

Value ordering on insoluble problems can have an effect 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 confSet V1 A V2 A V3 A V4 A V5 A V6 A V7 A/B {1,3} Var Val confSet V1 A V2 A V3 B V4 A V5 A V6 A V7 A/B {1,5} Var Val confSet V1 A V2 A V3 B V4 A V5 B V6 A V7 A/B {6} Var Val confSet V1 A V2 A V3 B V4 A V5 B V6 B V7 A/B {6} Finally V6 has no values and cbj jumps to V0 Insoluble because nogoods {(6A,7A),(6A,7B),(6B,7A),(6B,7B)}

Value ordering on insoluble problems can have an effect 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)} We now order domains and choose B then A! Var Val confSet V1 B V2 B V3 B V4 B V5 B V6 B V7 A/B {6} Var Val confSet V1 B V2 B V3 B V4 B V5 B V6 A V7 A/B {6} Finally V6 has no values and cbj jumps to V0 Value ordering made a difference to an insoluble problem!

Conflicting claims Smith & Grant IJCAI95: CBJ helps minimise occurrence of EHP’s random problems as evidence Bessier & Regin CP96: CBJ is nothing but an overhead 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

I believe all state of the art sat solvers are using cbj 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 AIJ conflict and solution directed! It’s been put into branch and bound and used in optimisation problems

cbj is in deep space 1

Is cbj in model checkers (or were they lying) ?

Constraint programming! We don’t jump and we don’t learn Who is not using cbj? Constraint programming! We don’t jump and we don’t learn

Well, apart from Palm, Neil Moore’s PhD, and … Who is not using cbj? Well, apart from Palm, Neil Moore’s PhD, and …

How about explanations and retraction? Is speed everything? No How about explanations and retraction?

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! Palm & Minion

We will continue with the floggings until morale improves