Levels of Consistency Node Consistency (NC) Arc-consistency (AC) Path Consistency (PC) Generalised...

Preview:

Citation preview

Levels of Consistency

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:

}9..1{

10

}30..1{

x

x

x

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

)],([:)( ,, yxCDyDxCAC jijiji

)]([:),,( ,, jiji CACCCCDVAC

Arc-consistency (AC) aka 2-consistency

)( 2edO

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 CikTherefore 3-consistency may create it!

)],(),(),([:),,(3 zyCzxCyxCDyDzDxkjiCon jkikijjki

It may create nogood tuples {(i/x,k/z),…}Therefore increases size of model/problem.May result in more constraints to check!

)( 23dnO

M. Singh, TAI-95

)],,(3[,,:),,(3 kjiConkjiCDVCon

Path-consistency (aka 3-consistency)

)],(),(),([:),,(3 zyCzxCyxCDyDzDxkjiCon jkikijjki

)],,(3[,,:),,(3 kjiConkjiCDVCon

for x in Dido 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-consistency AR33 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

Bounds Consistency Alan Frisch (York)

Bounds Consistency Alan Frisch (York)

Inverse Path Consistency

(aka Path Inverse Consistency)

Path Inverse Consistency (PIC aka IPC) Debruyne & Bessiere

)],(),(),([:),,(3 zyCzxCyxCDzDyDxkjiConInv jkikijkji

)],,(3[,,:),,(3 kjiConInvkjiCDVConInv

Note: similar to PC but deletes values rather than adds tuples!

)],(),(),([:),,(3 zyCzxCyxCDyDzDxkjiCon jkikijjki

Path Inverse Consistency (PIC aka IPC) Debruyne & Bessiere

)],(),(),([:),,(3 zyCzxCyxCDzDyDxkjiConInv jkikijkji

)],,(3[,,:),,(3 kjiConInvkjiCDVConInv

Note: similar to PC but deletes values rather than adds tuples!

for x in Dido 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 andthen make the problem arc-consistent and all variables havenon-empty domains

The basic and least efficient algorithm for SAC (from Bartak’s 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 consistentWith respect to the past variables

We can also maintain these levels of consistencyduring search

Conclusion

There are MANY different levels of consistency

This is an ACTIVE area of research

Recommended