# Levels of Consistency Node Consistency (NC) Arc-consistency (AC) Path Consistency (PC) Generalised arc-consistency (GAC) Bounds consistency Inverse Path.

## Presentation on theme: "Levels of Consistency Node Consistency (NC) Arc-consistency (AC) Path Consistency (PC) Generalised arc-consistency (GAC) Bounds consistency Inverse Path."— Presentation transcript:

Levels of Consistency

Node Consistency (NC) Arc-consistency (AC) Path Consistency (PC) Generalised arc-consistency (GAC) Bounds consistency Inverse Path Consistency (IPC aka PIC) Singleton Arc-consistency (SAC) … and others

Node Consistency

Node Consistency (NC) aka 1-consistency Example:

Arc-consistency

A constraint Cij is arc consistent if for every value x in Di there exists a value y in Dj that supports x i.e. if v[i] = x and v[j] = y then Cij holds note: we are assuming Cij is a binary constraint A csp (V,D.C) is arc consistent if every constraint is arc consistent Arc-consistency (AC) aka 2-consistency

Arc-consistency AC appears to be the best level of consistency to maintain (MAC) There is no proof of this However, there is a body of evidence For non-trivial problems MAC beats FC beats BT

Path Consistency

Path-consistency (aka 3-consistency) Vi Vj Vk There might be no constraint Cik Therefore 3-consistency may create it! It may create nogood tuples {(i/x,k/z),…} Therefore increases size of model/problem. May result in more constraints to check! M. Singh, TAI-95

Path-consistency (aka 3-consistency) for x in Di do for z in Dk do supported := false for y in Dj while ¬supported do supported := Cij(x,y) & Cik(x,z) & Cjk(y,z) if ¬supported then post(¬Cik(x,z))

See AR33 notes section 7.3

k-consistency

Also k-consistencyAR33 section 7.4

Generalised arc-consistency

Generalised arc-consistency (GAC)AR33 section 7.5

Generalised arc-consistency (GAC)AR33 section 7.5

Generalised arc-consistency (GAC) GAC is meaningful only wrt n-ary constraints (in a sense) From Gent, Miguel & Nightingale

Generalised arc-consistency (GAC)Alan Frisch (York)

Generalised arc-consistency (GAC)Alan Frisch (York)

Bounds Consistency

Alan Frisch (York)

Bounds ConsistencyAlan Frisch (York)

Inverse Path Consistency (aka Path Inverse Consistency)

Path Inverse Consistency (PIC aka IPC)Debruyne & Bessiere Note: similar to PC but deletes values rather than adds tuples!

Path Inverse Consistency (PIC aka IPC)Debruyne & Bessiere Note: similar to PC but deletes values rather than adds tuples! for x in Di do supported := false for y in Dj while ¬supported do for z in Dk while ¬supported do supported := Cij(x,y) & Cik(x,z) & Cjk(y,z) if ¬supported then Di := Di \ {x}

Singleton arc-consistency

Singleton arc-consistency (SAC) i.e. we can take any variable, assign it a value from its domain and then make the problem arc-consistent and all variables have non-empty domains

The basic and least efficient algorithm for SAC (from Bartaks FLAIRS04 paper) The SAC1 algorithm

complexities

General notes we can have inverse consistency for any k we can have neighbourhood inverse consistency we can have singleton k-consistency In our model and CP toolkit we may have mixed consistency some variables/constraints only forward checked some variables in binary constraints AC some variable in n-ary constraints GAC variables NC This is not a problem, so long as we are sure that when we instantiate a variable it is consistent With respect to the past variables We can also maintain these levels of consistency during search

Conclusion There are MANY different levels of consistency This is an ACTIVE area of research

Download ppt "Levels of Consistency Node Consistency (NC) Arc-consistency (AC) Path Consistency (PC) Generalised arc-consistency (GAC) Bounds consistency Inverse Path."

Similar presentations