5.290. nvector
DESCRIPTION | LINKS | GRAPH |
- Origin
- Constraint
- Synonyms
, , .
- Type
- Arguments
- Restrictions
- Purpose
is the number of distinct tuples of values taken by the vectors of the collection . Two tuples of values and are if and only if there exist an integer such that .
- Example
-
The constraint holds since its first argument is set to the number of distinct tuples of values (i.e.,Β tuples and ) occurring within the collection . FigureΒ 5.290.1 depicts with a thick rectangle a possible initial domain for each of the five vectors and with a grey circle each tuple of values of the corresponding solution.
Figure 5.290.1. Possible initial domains (, , , , , , , , , ) and solution corresponding to the Example slot: we have two distinct vectors ()
- Typical
- Symmetries
Items of are permutable.
Items of are permutable (same permutation used).
All occurrences of two distinct tuples of values of can be swapped; all occurrences of a tuple of values of can be renamed to any unused tuple of values.
- Arg. properties
Functional dependency: determined by .
Contractible wrt. when and .
Contractible wrt. when .
- Remark
It was shown inΒ [ChabertLorca09], [ChabertJaulinLorca09] that, finding out whether a constraint has a solution or not is NP-hard (i.e.,Β the restriction to the rectangle case and to the atmost side of the were considered for this purpose). This was achieved by reduction from the rectangle clique partition problem.
- Reformulation
Assume the collection is not empty (otherwise ). In this context, let and respectively denote the number of vectors of the collection and the number of components of each vector. Furthermore, let , , , . By associating to each vector
a variable
the constraint
Β Β Β
Β Β Β Β Β Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β Β Β Β Β Β Β
Β Β Β Β Β Β Β Β Β Β Β Β Β Β
can be expressed in term of the constraint
Note that the previous reformulation does not work anymore if the variables have a continuous domain, or if an overflow occurs while propagating the equality constraint (i.e.,Β the number of components is too big).
When using this reformulation with respect to the Example slot we first introduce , , , , and then get the constraint .
- See also
common keyword: , , Β (vector).
generalisation: Β (replace an equality with the number of distinct vectors by a comparison with the number of distinct nvectors).
implies: Β ( replaced by ), Β ( replaced by ).
specialisation: Β (vector replaced by ).
- Keywords
application area: SLAM problem.
characteristic of a constraint: vector.
complexity: rectangle clique partition.
constraint arguments: pure functional dependency.
constraint type: counting constraint, value partitioning constraint.
final graph structure: strongly connected component, equivalence.
modelling: number of distinct equivalence classes, functional dependency.
- Arc input(s)
- Arc generator
-
- Arc arity
- Arc constraint(s)
- Graph property(ies)
-
- Graph class
-
- Graph model
PartsΒ (A) andΒ (B) of FigureΒ 5.290.2 respectively show the initial and final graph associated with the Example slot. Since we use the graph property we show the different strongly connected components of the final graph. Each strongly connected component corresponds to a tuple of values that is assigned to some vectors of the collection. The 2 following tuple of values and are used by the vectors of the collection.
Figure 5.290.2. Initial and final graph of the constraint
(a) (b)