## 5.286. nvalue

Origin
Constraint

$\mathrm{\pi \pi \pi \pi \pi \pi }\left(\mathrm{\pi ½\pi  \pi °\pi »},\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }\right)$

Synonyms

$\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi ’}_\mathrm{\pi \pi }_\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi \pi }$, $\mathrm{\pi \pi \pi \pi \pi \pi }$.

Arguments
 $\mathrm{\pi ½\pi  \pi °\pi »}$ $\mathrm{\pi \pi \pi \pi }$ $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }$ $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }\left(\mathrm{\pi \pi \pi }-\mathrm{\pi \pi \pi \pi }\right)$
Restrictions
 $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }$$\left(\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi },\mathrm{\pi \pi \pi }\right)$ $\mathrm{\pi ½\pi  \pi °\pi »}\beta ₯\mathrm{\pi \pi \pi }\left(1,|\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }|\right)$ $\mathrm{\pi ½\pi  \pi °\pi »}\beta €|\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }|$ $\mathrm{\pi ½\pi  \pi °\pi »}\beta €$$\mathrm{\pi \pi \pi \pi \pi }$$\left(\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }.\mathrm{\pi \pi \pi }\right)$
Purpose

$\mathrm{\pi ½\pi  \pi °\pi »}$ is the number of distinct values taken by the variables of the collection $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }$.

Example
 $\left(4,β©3,1,7,1,6βͺ\right)$ $\left(1,β©6,6,6,6,6βͺ\right)$ $\left(5,β©6,3,0,2,9βͺ\right)$
• The first $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint holds since its first argument $\mathrm{\pi ½\pi  \pi °\pi »}=4$ is set to the number of distinct values occurring within the collection $\beta ©3,1,7,1,6\beta ͺ$.

• The second $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint holds since its first argument $\mathrm{\pi ½\pi  \pi °\pi »}=1$ is set to the number of distinct values occurring within the collection $\beta ©6,6,6,6,6\beta ͺ$.

• The third $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint holds since its first argument $\mathrm{\pi ½\pi  \pi °\pi »}=5$ is set to the number of distinct values occurring within the collection $\beta ©6,3,0,2,9\beta ͺ$.

All solutions

FigureΒ 5.286.1 gives all solutions to the following non ground instance of the $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint: $N\beta \left[1,2\right]$, ${V}_{1}\beta \left[2,4\right]$, ${V}_{2}\beta \left[1,2\right]$, ${V}_{3}\beta \left[2,4\right]$, $\mathrm{\pi \pi \pi \pi \pi \pi }$$\left(N,\beta ©{V}_{1},{V}_{2},{V}_{3}\beta ͺ\right)$.

Typical
 $\mathrm{\pi ½\pi  \pi °\pi »}>1$ $\mathrm{\pi ½\pi  \pi °\pi »}<|\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }|$ $|\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }|>1$
Symmetries
• Items of $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }$ are permutable.

• All occurrences of two distinct values of $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }.\mathrm{\pi \pi \pi }$ can be swapped; all occurrences of a value of $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }.\mathrm{\pi \pi \pi }$ can be renamed to any unused value.

Arg. properties
• Functional dependency: $\mathrm{\pi ½\pi  \pi °\pi »}$ determined by $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }$.

• Contractible wrt. $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }$ when $\mathrm{\pi ½\pi  \pi °\pi »}=1$ and $|\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }|>0$.

• Contractible wrt. $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }$ when $\mathrm{\pi ½\pi  \pi °\pi »}=|\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }|$.

Usage

The $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint allows relaxing the $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }$ constraint by restricting its first argument $\mathrm{\pi ½\pi  \pi °\pi »}$ to be close, but not necessarily equal, to the number of variables of the $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }$ collection.

A classical example from the early 1850s is the dominating queens chess puzzle problem: Place a number of queens on an $n$ by $n$ chessboard in such a way that all cells of the chessboard are either attacked by a queen or are occupied by a queen. A queen can attack all cells located on the same column, on the same row or on the same diagonal. PartΒ (A) of FigureΒ 5.286.2 illustrates a set of five queens which together attack all of the cells of an 8 by 8 chessboard. The dominating queens problem can be modelled by just one $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint:

• We first label the different cells of the chessboard from 1 to ${n}^{2}$.

• We then associate to each cell $c$ of the chessboard a domain variable. Its initial domain is set to the labels of the cells that can attack cell $c$. For instance, in the context of an 8 by 8 chessboard, the initial domain of ${V}_{29}$ will be set to {2,5,8,11,13,15,20..22,25..32,36..38,43,45,47,50,53,56,57,61} (see the green cells of partΒ (B) of FigureΒ 5.286.2).

• Finally, we post the constraint $\mathrm{\pi \pi \pi \pi \pi \pi }$$\left(Q,\beta ©\mathrm{\pi \pi \pi }-{V}_{1},\mathrm{\pi \pi \pi }-{V}_{2},\beta ―,\mathrm{\pi \pi \pi }-{V}_{{n}^{2}}\beta ͺ\right)$ where $Q$ is a domain variable in $\left[1,{n}^{2}\right]$ that gives the total number of queens used for controlling all cells of the chessboard. For the solution depicted by PartΒ (A) of FigureΒ 5.286.2, the label in each cell of PartΒ (C) of FigureΒ 5.286.2 gives the value assigned to the corresponding variable. Note that, since a given cell can be attacked by several queens, we have also other assignments corresponding to the solution depicted by PartΒ (A) of FigureΒ 5.286.2.

The $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint occurs also in many practical applications. In the context of timetabling one wants to set up a limit on the maximum number of activity types it is possible to perform. For frequency allocation problems, one optimisation criterion is to minimise the number of distinct frequencies that you use all over the entire network.

The $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint generalises several constraints like:

Remark

This constraint appears inΒ [PachetRoy99] under the name of Cardinality on Attributes Values. The $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint is called $\mathrm{\pi \pi \pi \pi \pi \pi }$ in JaCoP (http://www.jacop.eu/). A constraint called $\mathrm{\pi }_\mathrm{\pi \pi \pi \pi }$ enforcing that a set of variables takes at least $k$ distinct values appears in the PhD thesis of J.-C.Β RΓ©ginΒ [Regin95].

It was shown inΒ [BessiereHebrardHnichWalshO4] that, finding out whether a $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint has a solution or not is NP-hard. This was achieved by reduction from 3-SAT. In the same article, it is also shown, by reduction from minimum hitting set cardinality, that computing a sharp lower bound on $\mathrm{\pi ½\pi  \pi °\pi »}$ is NP-hard.

Both reformulations of the $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }$ constraint and of the $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }$ constraint use the $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint.

Algorithm

A first filtering algorithm for the $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint was described inΒ [Beldiceanu01]. Assuming that the minimum value of variable $\mathrm{\pi ½\pi  \pi °\pi »}$ is not constrained at all, two algorithms that both achieve bound-consistency were provided one year later inΒ [BeldiceanuCarlssonThiel02]. Under the same assumption, algorithms that partially take into account holes in the domains of the variables of the $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }$ collection are described inΒ [BeldiceanuCarlssonThiel02], [BessiereHebrardHnichKiziltanWalsh05].

Reformulation

A model, involving linear inequalities constraints, preserving bound-consistency was introduced inΒ [BessiereKatsirelosNarodytskaQuimperWalsh10CP].

Counting
 Length ($n$) 2 3 4 5 6 7 8 Solutions 9 64 625 7776 117649 2097152 43046721

Number of solutions for $\mathrm{\pi \pi \pi \pi \pi \pi }$: domains $0..n$

Length ($n$)2345678
Total9646257776117649209715243046721
 Parameter value

13456789
2636140450130235289144
3-24360300018900101136486864
4--1203600546005880005143824
5---7203780094080015876000
6----504042336016087680
7-----403205080320
8------362880

Solution count for $\mathrm{\pi \pi \pi \pi \pi \pi }$: domains $0..n$

Systems
Used in

cost variant: Β (introduce a weight for each value and replace number of distinct values by sum of weights associated with distinct values).

generalisation: $\mathrm{\pi \pi \pi \pi \pi \pi }$Β ($\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }$ replaced by $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }\beta \mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi }$), $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }$Β ($\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }$ replaced by $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }\mathrm{mod}\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }$), $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi }$Β ($\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }$ replaced by $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }/\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }$), $\mathrm{\pi \pi \pi \pi \pi }$Β ($\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }$ replaced by $\mathrm{\pi \pi \pi \pi }$ of $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi }$), $\mathrm{\pi \pi \pi \pi \pi \pi \pi }$Β (replace an equality with the number of distinct values by a comparison with the number of distinct values), $\mathrm{\pi \pi \pi \pi \pi \pi \pi }$Β (variable replaced by vector).

implies: $\mathrm{\pi \pi \pi \pi \pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi \pi }$Β ($=\mathrm{\pi ½\pi  \pi °\pi »}$ replaced by $\beta ₯\mathrm{\pi ½\pi  \pi °\pi »}$), $\mathrm{\pi \pi \pi \pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi \pi }$Β ($=\mathrm{\pi ½\pi  \pi °\pi »}$ replaced by $\beta €\mathrm{\pi ½\pi  \pi °\pi »}$).

related: $\mathrm{\pi \pi \pi \pi \pi \pi \pi }$Β (restriction on how balanced an assignment is), $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }$Β (restrict number of distinct colours on each maximum clique of the interval graph associated with the tasks), $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }$Β (restrict number of distinct colours on each maximum clique of the interval graph associated with the tasks assigned to the same machine), $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi }$, $\mathrm{\pi }_\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }$Β (necessary condition for two overlapping $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }$ constraints), $\mathrm{\pi \pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }_\mathrm{\pi \pi \pi }$.

specialisation: $\mathrm{\pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi }$Β (enforce to have one single value), $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }$Β (enforce a number of distinct values equal to the number of variables), $\mathrm{\pi \pi \pi }_\mathrm{\pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi }$Β (enforce to have at least two distinct values).

Keywords
Cond. implications

$\mathrm{\pi \pi \pi \pi \pi \pi }\left(\mathrm{\pi ½\pi  \pi °\pi »},\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }\right)$

Β Β Β  withΒ  $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }$$\left(\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }\right)$

Β Β implies $\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }_\mathrm{\pi \pi \pi \pi \pi \pi }$$\left(\mathrm{\pi ½\pi  \pi °\pi »},\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }\right)$.

Arc input(s)

$\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }$

Arc generator
$\mathrm{\pi Ά\pi Ώ\pi Ό\pi \pi \pi Έ}$$\beta ¦\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi \pi }\left(\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi }\mathtt{1},\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi }\mathtt{2}\right)$

Arc arity
Arc constraint(s)
$\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi }\mathtt{1}.\mathrm{\pi \pi \pi }=\mathrm{\pi \pi \pi \pi \pi \pi \pi \pi \pi }\mathtt{2}.\mathrm{\pi \pi \pi }$
Graph property(ies)
$\mathrm{\pi \pi \pi \pi }$$=\mathrm{\pi ½\pi  \pi °\pi »}$

Graph class
$\mathrm{\pi ΄\pi \pi \pi Έ\pi  \pi °\pi »\pi ΄\pi ½\pi ²\pi ΄}$

Graph model

PartsΒ (A) andΒ (B) of FigureΒ 5.286.3 respectively show the initial and final graph associated with the first example of the Example slot. Since we use the $\mathrm{\pi \pi \pi \pi }$ graph property we show the different strongly connected components of the final graph. Each strongly connected component corresponds to a value that is assigned to some variables of the $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }$ collection. The 4 following values 1, 3, 6 and 7 are used by the variables of the $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }$ collection.

Automaton

FigureΒ 5.286.4 depicts the automaton associated with the $\mathrm{\pi \pi \pi \pi \pi \pi }$ constraint. To each item of the collection $\mathrm{\pi  \pi °\pi \pi Έ\pi °\pi ±\pi »\pi ΄\pi }$ corresponds a signature variable ${S}_{i}$ that is equal to 0.

Quiz

Β Β

$\mathrm{\pi \pi \pi \pi \pi \pi }$: checking whether a ground instance holds or not Β

$\mathrm{\pi \pi \pi \pi \pi \pi }$: finding all solutions Β

$\mathrm{\pi \pi \pi \pi \pi \pi }$: identifying infeasible values wrt the at most side Β

$\mathrm{\pi \pi \pi \pi \pi \pi }$: identifying infeasible variable-value pairs wrt the at least side Β

$\mathrm{\pi \pi \pi \pi \pi \pi }$: variable-based degree of violation Β

$\mathrm{\pi \pi \pi \pi \pi \pi }$: variations of dominating knights Β

Β

Β

Β

Β

Β