5.173. inverse_within_range

DESCRIPTIONLINKSGRAPH
Origin

Derived from πš’πš—πšŸπšŽπš›πšœπšŽ.

Constraint

πš’πš—πšŸπšŽπš›πšœπšŽ_πš πš’πšπš‘πš’πš—_πš›πšŠπš—πšπšŽ(πš‡,𝚈)

Synonyms

πš’πš—πšŸπšŽπš›πšœπšŽ_πš’πš—_πš›πšŠπš—πšπšŽ, πš’πš—πšŸπšŽπš›πšœπšŽ_πš›πšŠπš—πšπšŽ.

Arguments
πš‡πšŒπš˜πš•πš•πšŽπšŒπšπš’πš˜πš—(πšŸπšŠπš›-πšπšŸπšŠπš›)
πšˆπšŒπš˜πš•πš•πšŽπšŒπšπš’πš˜πš—(πšŸπšŠπš›-πšπšŸπšŠπš›)
Restrictions
πš›πšŽπššπšžπš’πš›πšŽπš(πš‡,πšŸπšŠπš›)
πš›πšŽπššπšžπš’πš›πšŽπš(𝚈,πšŸπšŠπš›)
Purpose

If the i th variable of the collection πš‡ is assigned to j and if j is less than or equal to the number of items of the collection 𝚈 then the j th variable of the collection 𝚈 is assigned to i.

Conversely, if the j th variable of the collection 𝚈 is assigned to i and if i is less than or equal to the number of items of the collection πš‡ then the i th variable of the collection πš‡ is assigned to j.

Example
9,4,2,9,3,9,2

Since the second item of πš‡ is assigned to 4, the fourth item of 𝚈 is assigned to 2. Similarly, since the third item of πš‡ is assigned to 2, the second item of 𝚈 is assigned to 3. FigureΒ 5.173.1 illustrates the correspondence between πš‡ and 𝚈.

Figure 5.173.1. Correspondence between the items of πš‡=〈9,4,2βŒͺ and the items of 𝚈=〈9,3,9,2βŒͺ
ctrs/inverse_within_range1
Typical
|πš‡|>1
πš›πšŠπš—πšπšŽ(πš‡.πšŸπšŠπš›)>1
|𝚈|>1
πš›πšŠπš—πšπšŽ(𝚈.πšŸπšŠπš›)>1
Symmetry

Arguments are permutable w.r.t. permutation (πš‡,𝚈).

Usage

Consider an integer value m and a sequence of n variables S from which you have to select a subsequence S ' such that:

  • All variables of S ' have to be assigned to distinct values from [1,m],

  • All variables not in S ' have to be assigned a value, not necessarily distinct, outside [1,m].

As for the πš’πš—πšŸπšŽπš›πšœπšŽ constraint we may want to create explicitly a value variable for each value in [1,m] in order to state some specific constraints on the value variables or to use a heuristics involving the original variables of S as well as the value variables. The purpose of the πš’πš—πšŸπšŽπš›πšœπšŽ_πš πš’πšπš‘πš’πš—_πš›πšŠπš—πšπšŽ constraint is to link the variables of S with the value variables.

See also

common keyword: πš’πš—πšŸπšŽπš›πšœπšŽ_𝚜𝚎𝚝 (channelling constraint).

specialisation: πš’πš—πšŸπšŽπš›πšœπšŽΒ (the 2 collections have not necessarly the same number of items).

Keywords

constraint type: graph constraint.

final graph structure: bipartite, no loop, symmetric.

heuristics: heuristics.

modelling: channelling constraint, dual model.

Arc input(s)

πš‡ 𝚈

Arc generator
π‘†π‘Œπ‘€π‘€πΈπ‘‡π‘…πΌπΆ_π‘ƒπ‘…π‘‚π·π‘ˆπΆπ‘‡β†¦πšŒπš˜πš•πš•πšŽπšŒπšπš’πš˜πš—(𝚜1,𝚜2)

Arc arity
Arc constraint(s)
𝚜1.πšŸπšŠπš›=𝚜2.πš”πšŽπš’
Graph class
β€’ π™±π™Έπ™Ώπ™°πšπšƒπ™Έπšƒπ™΄
β€’ 𝙽𝙾_𝙻𝙾𝙾𝙿
β€’ πš‚πšˆπ™Όπ™Όπ™΄πšƒπšπ™Έπ™²