Path consistency (PC)
How to strengthen the consistency level
require consistency over more than one constraint
-Path(V0,V1,…,Vm) is path consistent iff for every pair of values xED0 and yEDm satisfying all the binary constraints on V0,Vm there exists an assignment of variables V1,…,Vm-1 such that all the binary constraints between the neighboring variables Vi,Vi+1 are satisfied
-only guarantees paths between neighboring variables are satisfied
when is a CSP path consistent?
iff every path is consistent
path consistency drawbacks
PC memory consumption
because PC eliminates pairs of values, we need to keep all compatible pairs extensionally, e.g. using {0,1} matrix
PC bad ratio strength/efficiency
PC removes more or same inconsistencies than AC, but the strength/efficiency ratio is much worse than for AC
PC constraint network modification
How to solve constraint problems
depth first search
consistency techniques
combination of approaches
CSP depth-first search
depth-first search
-complete but too slow (exponential) explores visibly wrong valuations
CSP consistency techniques
consistency techniques
CSP DFS and consistency combo
combinations of approaches
CSP solving techniques
core procedure DFS Look Back forward checking partial look ahead look ahead MAC MCk
CSP core DFS
assign variables one by one
ensure consistency after each assignment
CSP Look Back
CSP forward checking:
prevention technique
CSP partial look ahead
CSP look ahead
like partial look ahead but with AC instead of DAC
CSP MAC
AC performed initially
maintained after each assignment
CSP MCk
maintain strong-k-consistency
chronological backtracking