constraint satisfaction problems - wuwei lan · § binary csp: each constraint relates (at most)...

27
Constraint Satisfaction Problems § Standard search problems: § State is a “black box”: arbitrary data structure § Goal test can be any function over states § Successor function can also be anything § Constraint satisfaction problems (CSPs): § A special subset of search problems § State is defined by variables X i with values from a domain D (sometimes D depends on i) § Goal test is a set of constraints specifying allowable combinations of values for subsets of variables § Simple example of a formal representation language § Allows useful general-purpose algorithms with more power than standard search algorithms

Upload: others

Post on 15-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

ConstraintSatisfactionProblems

§ Standardsearchproblems:§ Stateisa“blackbox”:arbitrarydatastructure§ Goaltestcanbeanyfunctionoverstates§ Successorfunctioncanalsobeanything

§ Constraintsatisfactionproblems(CSPs):§ Aspecialsubsetofsearchproblems§ StateisdefinedbyvariablesXi withvaluesfroma

domainD (sometimesD dependsoni)§ Goaltestisasetofconstraintsspecifyingallowable

combinationsofvaluesforsubsetsofvariables

§ Simpleexampleofaformalrepresentationlanguage

§ Allowsusefulgeneral-purposealgorithmswithmorepowerthanstandardsearchalgorithms

Page 2: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

CSPExamples

Page 3: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

Example:MapColoring

§ Variables:

§ Domains:

§ Constraints:adjacentregionsmusthavedifferentcolors

§ Solutionsareassignmentssatisfyingallconstraints,e.g.:

Implicit:

Explicit:

Page 4: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

Example:N-Queens

§ Formulation1:§ Variables:§ Domains:§ Constraints

Page 5: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

Example:N-Queens

§ Formulation2:§ Variables:

§ Domains:

§ Constraints:

Implicit:

Explicit:

Page 6: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

WaltzonSimpleScenes

§ Assumeallobjects:§ Havenoshadowsorcracks§ Three-facedvertices§ “Generalposition”:nojunctionschangewithsmallmovementsoftheeye.

§ Theneachlineonimageisoneofthefollowing:§ Boundaryline(edgeofanobject)(®)withrighthandofarrowdenoting“solid”andlefthanddenoting“space”

§ Interiorconvexedge(+)§ Interiorconcaveedge(-)

6

Page 7: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

LegalJunctions

§ Onlycertainjunctionsarephysicallypossible

§ HowcanweformulateaCSPtolabelanimage?

§ Variables:vertices§ Domains:junctionlabels§ Constraints:bothendsofaline

shouldhavethesamelabel

7

x

y(x,y) in

, , …

Page 8: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

ConstraintGraphs

§ BinaryCSP:eachconstraintrelates(atmost)twovariables

§ Binaryconstraintgraph:nodesarevariables,arcsshowconstraints

§ General-purposeCSPalgorithmsusethegraphstructuretospeedupsearch.E.g.,Tasmaniaisanindependentsubproblem!

[Demo:CSPapplet(madeavailablebyaispace.org)-- n-queens]

Page 9: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

Example:Cryptarithmetic

§ Variables:

§ Domains:

§ Constraints:

Page 10: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

Real-WorldCSPs

§ Schedulingproblems:e.g.,whencanweallmeet?§ Timetablingproblems:e.g.,whichclassisofferedwhenandwhere?§ Assignmentproblems:e.g.,whoteacheswhatclass§ Hardwareconfiguration§ Transportationscheduling§ Factoryscheduling§ Circuitlayout§ Faultdiagnosis§ …lotsmore!

§ Manyreal-worldproblemsinvolvereal-valuedvariables…

Page 11: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

StandardSearchFormulation

§ StandardsearchformulationofCSPs

§ Statesdefinedbythevaluesassignedsofar(partialassignments)§ Initialstate:theemptyassignment,{}§ Successorfunction:assignavaluetoanunassignedvariable

§ Goaltest:thecurrentassignmentiscompleteandsatisfiesallconstraints

§ We’llstartwiththestraightforward,naïveapproach,thenimproveit

Page 12: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

BacktrackingSearch

§ BacktrackingsearchisthebasicuninformedalgorithmforsolvingCSPs

§ Idea1:Onevariableatatime§ Variableassignmentsarecommutative,sofixordering§ I.e.,[WA=redthenNT=green]sameas[NT=greenthenWA=red]§ Onlyneedtoconsiderassignmentstoasinglevariableateachstep

§ Idea2:Checkconstraintsasyougo§ I.e.consideronlyvalueswhichdonotconflictwithpreviousassignments§ Mighthavetodosomecomputationtochecktheconstraints§ “Incrementalgoaltest”

§ Depth-firstsearchwiththesetwoimprovementsiscalledbacktrackingsearch(notthebestname)

§ Cansolven-queensforn» 25

Page 13: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

BacktrackingExample

Page 14: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

BacktrackingSearch

§ Backtracking=DFS+variable-ordering+fail-on-violation§ Whatarethechoicepoints?

[Demo:coloring-- backtracking]

Page 15: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

ImprovingBacktracking

§ General-purposeideasgivehugegainsinspeed

§ Filtering:Canwedetectinevitablefailureearly?

§ Ordering:§ Whichvariableshouldbeassignednext?§ Inwhatordershoulditsvaluesbetried?

§ Structure:Canweexploittheproblemstructure?

Page 16: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

ImprovingBacktracking

From https://kti.mff.cuni.cz/~bartak/constraints/propagation.html

Page 17: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

Filtering

Page 18: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

§ Filtering:Keeptrackofdomainsforunassignedvariablesandcrossoffbadoptions§ Forwardchecking:Crossoffvaluesthatviolateaconstraintwhenaddedtotheexisting

assignment

Filtering:ForwardChecking

WASANT Q

NSWV

[Demo:coloring-- forwardchecking]

Page 19: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

VideoofDemoColoring– BacktrackingwithForwardChecking

Page 20: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

Filtering:ConstraintPropagation

§ Forwardcheckingpropagatesinformationfromassignedtounassignedvariables,butdoesn'tprovideearlydetectionforallfailures:

§ NTandSAcannotbothbeblue!§ Whydidn’twedetectthisyet?§ Constraintpropagation:reasonfromconstrainttoconstraint

WA SA

NT Q

NSW

V

Page 21: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

ConsistencyofASingleArc

§ AnarcX® Yisconsistent iff foreveryxinthetailthereissomeyintheheadwhichcouldbeassignedwithoutviolatingaconstraint

§ Forwardchecking:Enforcingconsistencyofarcspointingtoeachnewassignment

Deletefromthetail!

WA SA

NT Q

NSW

V

Page 22: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

ArcConsistencyofanEntireCSP§ Asimpleformofpropagationmakessureallarcsareconsistent:

§ Important:IfXlosesavalue,neighborsofXneedtoberechecked!§ Arcconsistencydetectsfailureearlierthanforwardchecking§ Canberunasapreprocessororaftereachassignment§ What’sthedownsideofenforcingarcconsistency?

Remember:Deletefromthetail!

WA SA

NT Q

NSW

V

Page 23: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

EnforcingArcConsistencyinaCSP

§ Runtime:O(n2d3),canbereducedtoO(n2d2)§ …butdetectingallpossiblefutureproblemsisNP-hard– why?

[Demo:CSPapplet(madeavailablebyaispace.org)-- n-queens]

Page 24: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

LimitationsofArcConsistency

§ Afterenforcingarcconsistency:§ Canhaveonesolutionleft§ Canhavemultiplesolutionsleft§ Canhavenosolutionsleft(andnotknowit)

§ Arcconsistencystillrunsinsideabacktrackingsearch!

Whatwentwronghere?

[Demo:coloring-- arcconsistency][Demo:coloring-- forwardchecking]

Page 25: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

Ordering

Page 26: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

Ordering:MinimumRemainingValues

§ VariableOrdering:Minimumremainingvalues(MRV):§ Choosethevariablewiththefewestlegalleftvaluesinitsdomain

§ Whyminratherthanmax?§ Alsocalled“mostconstrainedvariable”§ “Fail-fast”ordering

Page 27: Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most) two variables § Binary constraint graph: nodes are variables, arcs show constraints

Ordering:LeastConstrainingValue

§ ValueOrdering:LeastConstrainingValue§ Givenachoiceofvariable,choosetheleastconstrainingvalue

§ I.e.,theonethatrulesoutthefewestvaluesintheremainingvariables

§ Notethatitmaytakesomecomputationtodeterminethis!(E.g.,rerunningfiltering)

§ Whyleastratherthanmost?

§ Combiningtheseorderingideasmakes1000queensfeasible

[Demo:coloring– backtracking+AC+ordering]