## 5.134. geost

Origin

Generalisation of $\mathrm{𝚍𝚒𝚏𝚏𝚗}$.

Constraint

$\mathrm{𝚐𝚎𝚘𝚜𝚝}\left(𝙺,\mathrm{𝙾𝙱𝙹𝙴𝙲𝚃𝚂},\mathrm{𝚂𝙱𝙾𝚇𝙴𝚂}\right)$

Types
 $\mathrm{𝚅𝙰𝚁𝙸𝙰𝙱𝙻𝙴𝚂}$ $\mathrm{𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝚒𝚘𝚗}\left(𝚟-\mathrm{𝚍𝚟𝚊𝚛}\right)$ $\mathrm{𝙸𝙽𝚃𝙴𝙶𝙴𝚁𝚂}$ $\mathrm{𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝚒𝚘𝚗}\left(𝚟-\mathrm{𝚒𝚗𝚝}\right)$ $\mathrm{𝙿𝙾𝚂𝙸𝚃𝙸𝚅𝙴𝚂}$ $\mathrm{𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝚒𝚘𝚗}\left(𝚟-\mathrm{𝚒𝚗𝚝}\right)$
Arguments
 $𝙺$ $\mathrm{𝚒𝚗𝚝}$ $\mathrm{𝙾𝙱𝙹𝙴𝙲𝚃𝚂}$ $\mathrm{𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝚒𝚘𝚗}\left(\mathrm{𝚘𝚒𝚍}-\mathrm{𝚒𝚗𝚝},\mathrm{𝚜𝚒𝚍}-\mathrm{𝚍𝚟𝚊𝚛},𝚡-\mathrm{𝚅𝙰𝚁𝙸𝙰𝙱𝙻𝙴𝚂}\right)$ $\mathrm{𝚂𝙱𝙾𝚇𝙴𝚂}$ $\mathrm{𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝚒𝚘𝚗}\left(\mathrm{𝚜𝚒𝚍}-\mathrm{𝚒𝚗𝚝},𝚝-\mathrm{𝙸𝙽𝚃𝙴𝙶𝙴𝚁𝚂},𝚕-\mathrm{𝙿𝙾𝚂𝙸𝚃𝙸𝚅𝙴𝚂}\right)$
Restrictions
 $\mathrm{𝚛𝚎𝚚𝚞𝚒𝚛𝚎𝚍}$$\left(\mathrm{𝚅𝙰𝚁𝙸𝙰𝙱𝙻𝙴𝚂},𝚟\right)$ $|\mathrm{𝚅𝙰𝚁𝙸𝙰𝙱𝙻𝙴𝚂}|=𝙺$ $\mathrm{𝚛𝚎𝚚𝚞𝚒𝚛𝚎𝚍}$$\left(\mathrm{𝙸𝙽𝚃𝙴𝙶𝙴𝚁𝚂},𝚟\right)$ $|\mathrm{𝙸𝙽𝚃𝙴𝙶𝙴𝚁𝚂}|=𝙺$ $\mathrm{𝚛𝚎𝚚𝚞𝚒𝚛𝚎𝚍}$$\left(\mathrm{𝙿𝙾𝚂𝙸𝚃𝙸𝚅𝙴𝚂},𝚟\right)$ $|\mathrm{𝙿𝙾𝚂𝙸𝚃𝙸𝚅𝙴𝚂}|=𝙺$ $\mathrm{𝙿𝙾𝚂𝙸𝚃𝙸𝚅𝙴𝚂}.𝚟>0$ $𝙺>0$ $\mathrm{𝚛𝚎𝚚𝚞𝚒𝚛𝚎𝚍}$$\left(\mathrm{𝙾𝙱𝙹𝙴𝙲𝚃𝚂},\left[\mathrm{𝚘𝚒𝚍},\mathrm{𝚜𝚒𝚍},𝚡\right]\right)$ $\mathrm{𝙾𝙱𝙹𝙴𝙲𝚃𝚂}.\mathrm{𝚘𝚒𝚍}\ge 1$ $\mathrm{𝙾𝙱𝙹𝙴𝙲𝚃𝚂}.\mathrm{𝚘𝚒𝚍}\le |\mathrm{𝙾𝙱𝙹𝙴𝙲𝚃𝚂}|$ $\mathrm{𝙾𝙱𝙹𝙴𝙲𝚃𝚂}.\mathrm{𝚜𝚒𝚍}\ge 1$ $\mathrm{𝙾𝙱𝙹𝙴𝙲𝚃𝚂}.\mathrm{𝚜𝚒𝚍}\le |\mathrm{𝚂𝙱𝙾𝚇𝙴𝚂}|$ $\mathrm{𝚛𝚎𝚚𝚞𝚒𝚛𝚎𝚍}$$\left(\mathrm{𝚂𝙱𝙾𝚇𝙴𝚂},\left[\mathrm{𝚜𝚒𝚍},𝚝,𝚕\right]\right)$ $\mathrm{𝚂𝙱𝙾𝚇𝙴𝚂}.\mathrm{𝚜𝚒𝚍}\ge 1$ $\mathrm{𝚂𝙱𝙾𝚇𝙴𝚂}.\mathrm{𝚜𝚒𝚍}\le |\mathrm{𝚂𝙱𝙾𝚇𝙴𝚂}|$
Purpose

Holds if, for each pair of objects $\left({O}_{i},{O}_{j}\right)$, $i, ${O}_{i}$ and ${O}_{j}$ do not overlap with respect to a set of dimensions $\left\{1,2,...,𝙺\right\}$. ${O}_{i}$ and ${O}_{j}$ are objects that take a shape among a set of shapes. Each shape is defined as a finite set of shifted boxes, where each shifted box is described by a box in a $𝙺$ -dimensional space at a given offset (from the origin of the shape) with given sizes. More precisely, a shifted box is an entity defined by its shape id $\mathrm{𝚜𝚒𝚍}$, shift offset $𝚝$, and sizes $𝚕$. Then, a shape is defined as the union of shifted boxes sharing the same shape id. An object is an entity defined by its unique object identifier $\mathrm{𝚘𝚒𝚍}$, shape id $\mathrm{𝚜𝚒𝚍}$ and origin $𝚡$.

An object ${O}_{i}$ does not overlap an object ${O}_{j}$ with respect to the set of dimensions $\left\{1,2,...,𝙺\right\}$ if and only if for all shifted box ${s}_{i}$ associated with ${O}_{i}$ and for all shifted box ${s}_{j}$ associated with ${O}_{j}$ there exists a dimension $d\in \left\{1,2,...,𝙺\right\}$ such that the start of ${s}_{i}$ in dimension $d$ is greater than or equal to the end of ${s}_{j}$ in dimension $d$, or the start of ${s}_{j}$ in dimension $d$ is greater than or equal to the end of ${s}_{i}$ in dimension $d$.

Example
$\left(\begin{array}{c}2,〈\begin{array}{ccc}\mathrm{𝚘𝚒𝚍}-1\hfill & \mathrm{𝚜𝚒𝚍}-1\hfill & 𝚡-〈1,2〉,\hfill \\ \mathrm{𝚘𝚒𝚍}-2\hfill & \mathrm{𝚜𝚒𝚍}-5\hfill & 𝚡-〈2,1〉,\hfill \\ \mathrm{𝚘𝚒𝚍}-3\hfill & \mathrm{𝚜𝚒𝚍}-8\hfill & 𝚡-〈4,1〉\hfill \end{array}〉,\hfill \\ 〈\begin{array}{ccc}\mathrm{𝚜𝚒𝚍}-1\hfill & 𝚝-〈0,0〉\hfill & 𝚕-〈2,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-1\hfill & 𝚝-〈0,1〉\hfill & 𝚕-〈1,2〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-1\hfill & 𝚝-〈1,2〉\hfill & 𝚕-〈3,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-2\hfill & 𝚝-〈0,0〉\hfill & 𝚕-〈3,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-2\hfill & 𝚝-〈0,1〉\hfill & 𝚕-〈1,3〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-2\hfill & 𝚝-〈2,1〉\hfill & 𝚕-〈1,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-3\hfill & 𝚝-〈0,0〉\hfill & 𝚕-〈2,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-3\hfill & 𝚝-〈1,1〉\hfill & 𝚕-〈1,2〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-3\hfill & 𝚝-〈-2,2〉\hfill & 𝚕-〈3,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-4\hfill & 𝚝-〈0,0〉\hfill & 𝚕-〈3,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-4\hfill & 𝚝-〈0,1〉\hfill & 𝚕-〈1,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-4\hfill & 𝚝-〈2,1〉\hfill & 𝚕-〈1,3〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-5\hfill & 𝚝-〈0,0〉\hfill & 𝚕-〈2,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-5\hfill & 𝚝-〈1,1〉\hfill & 𝚕-〈1,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-5\hfill & 𝚝-〈0,2〉\hfill & 𝚕-〈2,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-6\hfill & 𝚝-〈0,0〉\hfill & 𝚕-〈3,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-6\hfill & 𝚝-〈0,1〉\hfill & 𝚕-〈1,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-6\hfill & 𝚝-〈2,1〉\hfill & 𝚕-〈1,1〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-7\hfill & 𝚝-〈0,0〉\hfill & 𝚕-〈3,2〉,\hfill \\ \mathrm{𝚜𝚒𝚍}-8\hfill & 𝚝-〈0,0〉\hfill & 𝚕-〈2,3〉\hfill \end{array}〉\hfill \end{array}\right)$

Parts (A), (B) and (C) of Figure 5.134.1 respectively represent the potential shapes associated with the three objects of the example. Part (D) shows the position of the three objects of the example, where the first, second and third objects were respectively assigned shapes 1, 5 and 8. The coordinates of the leftmost lowest corner of each object are stressed in bold. The $\mathrm{𝚐𝚎𝚘𝚜𝚝}$ constraint holds since the three objects do not overlap (i.e., see part (D) if Figure 5.134.1).

Typical
$|\mathrm{𝙾𝙱𝙹𝙴𝙲𝚃𝚂}|>1$
Symmetries
• Items of $\mathrm{𝙾𝙱𝙹𝙴𝙲𝚃𝚂}$ are permutable.

• Items of $\mathrm{𝚂𝙱𝙾𝚇𝙴𝚂}$ are permutable.

• Items of $\mathrm{𝙾𝙱𝙹𝙴𝙲𝚃𝚂}.𝚡$, $\mathrm{𝚂𝙱𝙾𝚇𝙴𝚂}.𝚝$ and $\mathrm{𝚂𝙱𝙾𝚇𝙴𝚂}.𝚕$ are permutable (same permutation used).

• $\mathrm{𝚂𝙱𝙾𝚇𝙴𝚂}.𝚕.𝚟$ can be decreased to any value $\ge 1$.

Usage

The $\mathrm{𝚐𝚎𝚘𝚜𝚝}$ constraint allows to model directly a large number of placement problems.

Remark

In the two -dimensional case, when rectangles heights are all equal to one and when rectangles starts in the first dimension are all fixed, the $\mathrm{𝚐𝚎𝚘𝚜𝚝}$ constraint can be rewritten as a $𝚔_\mathrm{𝚊𝚕𝚕𝚍𝚒𝚏𝚏𝚎𝚛𝚎𝚗𝚝}$ constraint corresponding to a system of $\mathrm{𝚊𝚕𝚕𝚍𝚒𝚏𝚏𝚎𝚛𝚎𝚗𝚝}$ constraints derived from the maximum cliques of the corresponding interval graph.

Algorithm

A sweep-based filtering algorithm for this constraint is described in [BeldiceanuCarlssonPoderSadekTruchet07]. Unlike previous sweep filtering algorithms which move a line for finding a feasible position for the origin of an object, this algorithm performs a recursive traversal of the multidimensional placement space. It explores all points of the domain of the origin of the object under focus, one by one, in increasing lexicographic order, until a point is found that is not infeasible for any non -overlapping constraints. To make the search efficient, instead of moving each time to the successor point, the search is arranged so that it skips points that are known to be infeasible for some non -overlapping constraint.

Within the context of breaking symmetries six different ways of integrating within $\mathrm{𝚐𝚎𝚘𝚜𝚝}$ a chain of lexicographical ordering constraints like $\mathrm{𝚕𝚎𝚡}_\mathrm{𝚌𝚑𝚊𝚒𝚗}_\mathrm{𝚕𝚎𝚜𝚜}$ for enforcing a lexicographic ordering on the origin coordinates of identical objects, are described in [AgrenCarlssonBeldiceanuSbihiTruchetZampelli09].

Systems

geost in Choco, geost in JaCoP, geost in SICStus.

generalisation: $\mathrm{𝚐𝚎𝚘𝚜𝚝}_\mathrm{𝚝𝚒𝚖𝚎}$ ($\mathrm{𝚝𝚎𝚖𝚙𝚘𝚛𝚊𝚕}$ $\mathrm{𝚍𝚒𝚖𝚎𝚗𝚜𝚒𝚘𝚗}$ added to $\mathrm{𝚐𝚎𝚘𝚖𝚎𝚝𝚛𝚒𝚌𝚊𝚕}$ $\mathrm{𝚍𝚒𝚖𝚎𝚗𝚜𝚒𝚘𝚗𝚜}$).
specialisation: $𝚔_\mathrm{𝚊𝚕𝚕𝚍𝚒𝚏𝚏𝚎𝚛𝚎𝚗𝚝}$ (when rectangles heights are all equal to 1 and rectangles starts in the first dimension are all fixed), $\mathrm{𝚕𝚎𝚡}_\mathrm{𝚊𝚕𝚕𝚍𝚒𝚏𝚏𝚎𝚛𝚎𝚗𝚝}$ ($\mathrm{𝚘𝚋𝚓𝚎𝚌𝚝}$ replaced by $\mathrm{𝚟𝚎𝚌𝚝𝚘𝚛}$).