5.14. alldifferent_consecutive_values

DESCRIPTIONLINKSGRAPH
Origin

Derived from πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš.

Constraint

πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Argument
πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚πšŒπš˜πš•πš•πšŽπšŒπšπš’πš˜πš—(πšŸπšŠπš›-πšπšŸπšŠπš›)
Restrictions
πš›πšŽπššπšžπš’πš›πšŽπš(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚,πšŸπšŠπš›)
πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)
Purpose

Enforce (1)Β all variables of the collection πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚ to take distinct values and (2)Β constraint the difference between the largest and the smallest values of the πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚ collection to be equal to the number of variables minus one (i.e.,Β there is no holes at all within the used values).

Example
(5,4,3,6)

The πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ constraint holds since (1)Β all the values 5, 4, 3 and 6 are distinct and since (2)Β all values between value 3 and value 6 are actually used.

All solutions

FigureΒ 5.14.1 gives all solutions to the following non ground instance of the πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ constraint: V 1 ∈{0,1,3,4,5,6,7,8}, V 2 ∈[4,5], V 3 ∈[3,4], V 4 ∈[0,7], V 5 ∈[3,4], πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(〈V 1 ,V 2 ,V 3 ,V 4 ,V 5 βŒͺ).

Figure 5.14.1. All solutions corresponding to the non ground example of the πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ constraint of the All solutions slot
ctrs/alldifferent_consecutive_values-1-tikz
Typical
|πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚|>2
Symmetries
  • Items of πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚ are permutable.

  • Two distinct values of πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚.πšŸπšŠπš› can be swapped.

  • One and the same constant can be added to the πšŸπšŠπš› attribute of all items of πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚.

Counting
Length (n)2345678910
Solutions41248240144010080806407257607257600

Number of solutions for πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ: domains 0..n

ctrs/alldifferent_consecutive_values-2-tikz

ctrs/alldifferent_consecutive_values-3-tikz

See also

implied by: πš™πšŽπš›πš–πšžπšπšŠπšπš’πš˜πš—.

implies: πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš, πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ.

Keywords

characteristic of a constraint: all different, disequality, sort based reformulation.

combinatorial object: permutation.

constraint type: value constraint.

Cond. implications

β€’ πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  withΒ  πš–πš’πš—πšŸπšŠπš•(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚.πšŸπšŠπš›)≀0

Β Β Β  andΒ Β  πš–πšŠπš‘πšŸπšŠπš•(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚.πšŸπšŠπš›)β‰₯0

Β Β implies πšŠπš–πš˜πš—πš_πšπš’πšπš_0(π™½πš…π™°πš,πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  whenΒ  π™½πš…π™°πš=|πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚|-1.

β€’ πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  withΒ  πš–πš’πš—πšŸπšŠπš•(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚.πšŸπšŠπš›)>0

Β Β implies πšŠπš–πš˜πš—πš_πšπš’πšπš_0(π™½πš…π™°πš,πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  whenΒ  π™½πš…π™°πš=|πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚|.

β€’ πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  withΒ  πš–πšŠπš‘πšŸπšŠπš•(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚.πšŸπšŠπš›)<0

Β Β implies πšŠπš–πš˜πš—πš_πšπš’πšπš_0(π™½πš…π™°πš,πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  whenΒ  π™½πš…π™°πš=|πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚|.

β€’ πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β implies πš‹πšŠπš•πšŠπš—πšŒπšŽ(𝙱𝙰𝙻𝙰𝙽𝙲𝙴,πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  whenΒ  𝙱𝙰𝙻𝙰𝙽𝙲𝙴=0.

β€’ πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  withΒ  |πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚|>0

Β Β implies πš•πšŽπš—πšπšπš‘_πšπš’πš›πšœπš_πšœπšŽπššπšžπšŽπš—πšŒπšŽ(𝙻𝙴𝙽,πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  whenΒ  𝙻𝙴𝙽=1.

β€’ πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  withΒ  |πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚|>0

Β Β implies πš•πšŽπš—πšπšπš‘_πš•πšŠπšœπš_πšœπšŽπššπšžπšŽπš—πšŒπšŽ(𝙻𝙴𝙽,πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  whenΒ  𝙻𝙴𝙽=1.

β€’ πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β implies πš–πšŠπš‘_πš—(π™Όπ™°πš‡,πšπ™°π™½π™Ί,πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  whenΒ  π™Όπ™°πš‡=πš–πšŠπš‘πšŸπšŠπš•(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚.πšŸπšŠπš›)-πšπ™°π™½π™Ί.

β€’ πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β implies πš–πš’πš—_πš—(𝙼𝙸𝙽,πšπ™°π™½π™Ί,πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  whenΒ  𝙼𝙸𝙽=πš–πš’πš—πšŸπšŠπš•(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚.πšŸπšŠπš›)+πšπ™°π™½π™Ί.

β€’ πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  withΒ  |πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚|>0

Β Β implies πš–πš’πš—_πš—πšŸπšŠπš•πšžπšŽ(𝙼𝙸𝙽,πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  whenΒ  𝙼𝙸𝙽=1.

β€’ πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  withΒ  πš–πš’πš—πšŸπšŠπš•(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚.πšŸπšŠπš›)=0

Β Β implies πš—πš’πš—πšπšŽπš›πšŸπšŠπš•(π™½πš…π™°π™»,πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚,πš‚π™Έπš‰π™΄_π™Έπ™½πšƒπ™΄πšπš…π™°π™»)

Β Β Β  whenΒ  π™½πš…π™°π™»=(|πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚|+πš‚π™Έπš‰π™΄_π™Έπ™½πšƒπ™΄πšπš…π™°π™»-1)/πš‚π™Έπš‰π™΄_π™Έπ™½πšƒπ™΄πšπš…π™°π™».

β€’ πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β implies πš›πšŠπš—πšπšŽ_πšŒπšπš›(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚,π™²πšƒπš,πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β Β  whenΒ  π™²πšƒπšβˆˆ[≀]

Β Β Β  andΒ Β  𝚁=|πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚|.

β€’ πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπš˜πš—πšœπšŽπšŒπšžπšπš’πšŸπšŽ_πšŸπšŠπš•πšžπšŽπšœ(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚)

Β Β implies 𝚜𝚘𝚏𝚝_πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš_πšŒπšπš›(𝙲,πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚).

Arc input(s)

πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚

Arc generator
π‘†πΈπΏπΉβ†¦πšŒπš˜πš•πš•πšŽπšŒπšπš’πš˜πš—(πšŸπšŠπš›πš’πšŠπš‹πš•πšŽπšœ)

Arc arity
Arc constraint(s)
πšƒπšπš„π™΄
Graph property(ies)
𝐑𝐀𝐍𝐆𝐄(πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚,πšŸπšŠπš›)=|πš…π™°πšπ™Έπ™°π™±π™»π™΄πš‚|-1