5.100. discrepancy

DESCRIPTIONLINKSGRAPH
Origin

[Focacci01] and [vanHoeve05]

Constraint

discrepancy(VARIABLES,K)

Argument(s)
VARIABLEScollection(vardvar,badsint)
Kint
Restriction(s)
required(VARIABLES,var)
required(VARIABLES,bad)
K0
K|VARIABLES|
Purpose

K is the number of variables of the collection VARIABLES that take their value in their respective sets of bad values.

Example
(
var4bad{1,4,6},
var5bad{0,1},
var5bad{1,6,9},
var4bad{1,4},
var1bad
,2
)

The discrepancy constraint holds since exactly K=2 variables (i.e., the first and fourth variables) of the VARIABLES collection take their value within their respective sets of bad values.

Remark

Limited discrepancy search was first introduced by M. L. Ginsberg and W. D. Harvey as a search technique in [GinsbergHarvey95]. Later on, discrepancy based filtering was presented in the PhD thesis of F. Focacci [Focacci01]. Finally the discrepancy constraint was explicitly defined in the PhD thesis of W.-J. van Hoeve [vanHoeve05].

See also

among.

Key words

constraint type: value constraint, counting constraint.

filtering: arc-consistency.

heuristics: heuristics, limited discrepancy search.


Arc input(s)

VARIABLES

Arc generator
SELFcollection(variables)

Arc arity
1
Arc constraint(s)
in_set(variables.var,variables.bad)
Graph property(ies)
NARC=K


Graph model

The arc constraint corresponds to the constraint in_set(variables.var,variables.bad) defined in this catalogue. We employ the SELF arc generator in order to produce an initial graph with a single loop on each vertex.

Parts (A) and (B) of Figure 5.100.1 respectively show the initial and final graph associated with the Example slot. Since we use the NARC graph property, the loops of the final graph are stressed in bold.

Figure 5.100.1. Initial and final graph of the discrepancy constraint

ctrs/discrepancyActrs/discrepancyB
(a) (b)