Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most)...
Transcript of Constraint Satisfaction Problems - Wuwei Lan · § Binary CSP: each constraint relates (at most)...
![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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/1.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/4.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/18.jpg)
§ 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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/26.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042913/5f4af1a31ed97844592ed538/html5/thumbnails/27.jpg)
Ordering:LeastConstrainingValue
§ ValueOrdering:LeastConstrainingValue§ Givenachoiceofvariable,choosetheleastconstrainingvalue
§ I.e.,theonethatrulesoutthefewestvaluesintheremainingvariables
§ Notethatitmaytakesomecomputationtodeterminethis!(E.g.,rerunningfiltering)
§ Whyleastratherthanmost?
§ Combiningtheseorderingideasmakes1000queensfeasible
[Demo:coloring– backtracking+AC+ordering]