5.118. diffn

DESCRIPTIONLINKSGRAPH
Origin

[BeldiceanuContejean94]

Constraint

πšπš’πšπšπš—(π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚)

Synonyms

πšπš’πšœπš“πš˜πš’πš—πš, πšπš’πšœπš“πš˜πš’πš—πš1, πšπš’πšœπš“πš˜πš’πš—πš2, πšπš’πšπš2.

Type
π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πšŒπš˜πš•πš•πšŽπšŒπšπš’πš˜πš—(πš˜πš›πš’-πšπšŸπšŠπš›,πšœπš’πš£-πšπšŸπšŠπš›,πšŽπš—πš-πšπšŸπšŠπš›)
Argument
π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚πšŒπš˜πš•πš•πšŽπšŒπšπš’πš˜πš—(πš˜πš›πšπš‘-π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄)
Restrictions
|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄|>0
πš›πšŽπššπšžπš’πš›πšŽ_𝚊𝚝_πš•πšŽπšŠπšœπš(2,π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄,[πš˜πš›πš’,πšœπš’πš£,πšŽπš—πš])
π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄.πšœπš’πš£β‰₯0
π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄.πš˜πš›πš’β‰€π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄.πšŽπš—πš
πš›πšŽπššπšžπš’πš›πšŽπš(π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚,πš˜πš›πšπš‘)
πšœπšŠπš–πšŽ_πšœπš’πš£πšŽ(π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚,πš˜πš›πšπš‘)
Purpose

Generalised multi-dimensional non-overlapping constraint: Holds if, for each pair of orthotopes (O 1 ,O 2 ), O 1 and O 2 do not overlap. Two orthotopes do not overlap if one of the orthotopes has zero size or if there exists at least one dimension where their projections do not overlap.

Example
πš˜πš›πšπš‘-πš˜πš›πš’-2 πšœπš’πš£-2 πšŽπš—πš-4,πš˜πš›πš’-1 πšœπš’πš£-2 πšŽπš—πš-3,πš˜πš›πšπš‘-πš˜πš›πš’-4 πšœπš’πš£-4 πšŽπš—πš-8,πš˜πš›πš’-2 πšœπš’πš£-2 πšŽπš—πš-4,πš˜πš›πšπš‘-πš˜πš›πš’-6πšœπš’πš£-5πšŽπš—πš-11,πš˜πš›πš’-5πšœπš’πš£-2πšŽπš—πš-7

FigureΒ 5.118.1 represents the position of the three rectangles of the example. The coordinates of the leftmost lowest corner of each rectangle are stressed in bold. The πšπš’πšπšπš— constraint holds since the three rectangles do not overlap as explained in FigureΒ 5.118.2.

Figure 5.118.1. Illustration of the Example slot: the three rectangles
ctrs/diffn-1-tikz
Figure 5.118.2. Illustration of the Example slot: the reasons (A), (B), (C) why the pairs of rectangles (R 1 ,R 2 ), (R 1 ,R 3 ), (R 2 ,R 3 ) do not overlap
ctrs/diffn-2-tikz
All solutions

FigureΒ 5.118.3 gives all solutions to the following non ground instance of the πšπš’πšπšπš— constraint:

X 1 ∈[1,3], 𝐸𝑋 1 ∈[1,9], Y 1 ∈[1,3], πΈπ‘Œ 1 ∈[1,9],

X 2 ∈[1,3], 𝐸𝑋 2 ∈[1,9], Y 2 ∈[2,3], πΈπ‘Œ 2 ∈[1,9],

X 3 ∈[1,2], 𝐸𝑋 3 ∈[1,9], Y 3 ∈[1,4], πΈπ‘Œ 3 ∈[1,9],

X 4 ∈[1,3], 𝐸𝑋 4 ∈[1,9], Y 4 ∈[1,3], πΈπ‘Œ 4 ∈[1,9],

πšπš’πšπšπš—(〈〈X 1 2 𝐸𝑋 1 , Y 1 3 πΈπ‘Œ 1 βŒͺ, 〈X 2 3 𝐸𝑋 2 , Y 2 2 πΈπ‘Œ 2 βŒͺ,

         〈X 3 1 𝐸𝑋 3 , Y 3 4 πΈπ‘Œ 3 βŒͺ, 〈X 4 4 𝐸𝑋 4 , Y 4 1 πΈπ‘Œ 4 βŒͺβŒͺ).

Figure 5.118.3. All solutions corresponding to the non ground example of the πšπš’πšπšπš— constraint of the All solutions slot
ctrs/diffn-3-tikz
Typical
|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄|>1
π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄.πšœπš’πš£>0
|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|>1
Symmetries
  • Items of π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚ are permutable.

  • Items of π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚.πš˜πš›πšπš‘ are permutable (same permutation used).

  • π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚.πš˜πš›πšπš‘.πšœπš’πš£ can be decreased to any value β‰₯0.

  • One and the same constant can be added to the πš˜πš›πš’ and πšŽπš—πš attributes of all items of π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚.πš˜πš›πšπš‘.

Arg. properties

Contractible wrt. π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚.

Usage

The πšπš’πšπšπš— constraint occurs in placement and scheduling problems. It was for instance used for scheduling problems where one has to both assign each non-preemptive task to a resource and fix its origin so that two tasks, which are assigned to the same resource, do not overlap. When the resource is a set of persons to which non-preemptive tasks have to be assigned this corresponds to so called timetabling problems. A second practical application from the area of the design of memory-dominated embedded systemsΒ [Szymanek04] can be found inΒ [SzymanekKuchcinski01]. Together with arithmetic and πšŒπšžπš–πšžπš•πšŠπšπš’πšŸπšŽ constraints, the πšπš’πšπšπš— constraint was used inΒ [Szczygiel01] for packing more complex shapes such as angles. FigureΒ 5.118.4 illustrates the angle packing problem on an instance involving 10 angles taken fromΒ [Szczygiel01].

Figure 5.118.4. A solution for the angle packing problem of items A 1 =[2,4,3,1], A 2 =[2,2,1,3], A 3 =[1,3,3,2], A 4 =[2,1,4,3], A 5 =[1,7,2,2], A 6 =[1,2,5,5], A 7 =[6,2,2,3], A 8 =[4,2,2,1], A 9 =[3,1,1,4], A 10 =[3,2,1,1].
ctrs/diffn-4-tikz

One other packing problem attributed to S.Β Golomb is to find the smallest square that can contain the set of consecutive squares from 1Γ—1 up to nΓ—n so that these squares do not overlap each other (see the smallest rectangle area problem).

Remark

Unlike the definition of the Purpose slot the original paperΒ [BeldiceanuContejean94] introducing the πšπš’πšπšπš— constraint imposes all orthotopes sizes to be different from 0. But it is convenient to allow variable sizes which can be assigned value 0 to model the fact that an orthotope can be skipped.

When we have segments (respectively rectangles) the πšπš’πšπšπš— constraint is referenced under the name πšπš’πšœπš“πš˜πš’πš—πš1 (respectively πšπš’πšœπš“πš˜πš’πš—πš2) in SICStus PrologΒ [Sicstus95]. When we have rectangles the πšπš’πšπšπš— constraint is also called πšπš’πšπš2 in JaCoP. In MiniZinc (http://www.minizinc.org/) the πšπš’πšπšπš— constraint considers only rectangles.

It was shown inΒ [Thiel04] that, finding out whether a non-overlapping constraint between a set of rectangles has a solution or not is NP-hard. This was achieved by reduction from sequencing with release times and deadlines.

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 πšπš’πšπšπš— constraint can be rewritten as a πš”_πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš constraint corresponding to a system of πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πš constraints derived from the maximum cliques of the corresponding interval graph.

Algorithm

Checking whether a πšπš’πšπšπš— constraint for which all variables are fixed is satisfied or not is related to the Klee's measure problem: given a collection of axis-aligned multi-dimensional boxes, how quickly can one compute the volume of their union. Then the πšπš’πšπšπš— constraint holds if the volume of the union is equal to the sum of the volumes of the different boxes.

A first possible method for filtering non zero size orthotopes is to use constructive disjunction. The idea is to try out each alternative of a disjunction (e.g.,Β given two orthotopes o 1 and o 2 that should not overlap, we successively assume for each dimension that o 1 finishes before o 2 , and that o 2 finishes before o 1 ) and to remove values that were pruned in all alternatives. For the two-dimensional case of πšπš’πšπšπš— a second possible solution used inΒ [RochonDuVerdier92] is to represent explicitly the two-dimensional domain of the origin of each rectangle by a quadtreeΒ [Samet89] and to accumulate all forbidden regions within this data structure. As for conventional domain variables, a failure occurs when a two-dimensional domain get empty. A third possible filtering algorithm based on sweep is described inΒ [BeldiceanuCarlsson01sweep].

The thesis of J.Β NelissenΒ [Nelissen94] considers the case where all rectangles have the same size and can be rotated from 90 degrees (i.e.,Β the pallet loading problem.). For the n-dimensional case of πšπš’πšπšπš— a filtering algorithm handling the fact that two objects do not overlap is given inΒ [BeldiceanuGuoThiel01].

Figure 5.118.5. A hard instance fromΒ [Nelissen94]: A solution for packing 99 rectangles of size 5Γ—9 into a rectangle of size 86Γ—52
ctrs/diffn-5-tikz

Extensions of the non-overlapping constraint to polygons and to more complex shapes are respectively described in Β [BeldiceanuGuoThiel01] and inΒ [RibeiroCarravilla04]. Specialised propagation algorithms for the squared squares problemΒ [BouwkampDuijvestijn92] (based on the fact that no waste is permitted) are given inΒ [Gambini99a] and inΒ [Gambini99b].

The πšŒπšžπš–πšžπš•πšŠπšπš’πšŸπšŽ constraint can be used as a necessary condition for the πšπš’πšπšπš— constraint. FigureΒ 5.118.6 illustrates this point for the two-dimensional case. A first (respectively second) πšŒπšžπš–πšžπš•πšŠπšπš’πšŸπšŽ constraint is obtained by forgetting the y-coordinate (respectively the x-coordinate) of the origin of each rectangle occurring in a πšπš’πšπšπš— constraint. PartsΒ (B) andΒ (C) respectively depict the cumulated profiles associated with the projection of the rectangles depicted by partΒ (A) on the x and y axes.

The πšŒπšžπš–πšžπš•πšŠπšπš’πšŸπšŽ constraint is a necessary but not sufficient condition for the two-dimensional case of the πšπš’πšπšπš— constraint. FigureΒ 5.118.7 illustrates this point on an example taken fromΒ [Biro90] where one has to place the 8 rectangles R 1 , R 2 , R 3 , R 4 , R 5 , R 6 , R 7 , R 8 of respective size 5Γ—2, 8Γ—2, 6Γ—1, 5Γ—1, 2Γ—1, 3Γ—1, 2Γ—2 and 1Γ—2 in a big rectangle of size 12Γ—4. As shown by FigureΒ 5.118.7 there is a cumulative solution where R 8 is split in two parts but M.Β Hujter proves inΒ [Hujter90] that there is no solution where no rectangle is split.

Figure 5.118.6. Looking from the perspective of the πšŒπšžπš–πšžπš•πšŠπšπš’πšŸπšŽ constraint in a two-dimensional rectangles placement problem: projecting the three rectangles ofΒ (A) on the x axisΒ (B) and on the y axisΒ (C)
ctrs/diffn-6-tikz
Figure 5.118.7. Illustrating the necessary but not sufficient placement condition: the rectangle R 8 is split in two parts
ctrs/diffn-7-tikz

In the context of n parallelepipeds that have to be packedΒ [GehringMenschnerMeyer90], [LiCheng90] within a box of sizes XΓ—YΓ—Z one can proceed as follows for stating three πšŒπšžπš–πšžπš•πšŠπšπš’πšŸπšŽ constraints. The i th (with i∈[1,n]) parallelepiped is described by the following attributes:

  • π‘œπ‘₯ i , π‘œπ‘¦ i , π‘œπ‘§ i (with i∈[1,n]) the coordinates of its origin on the x, y and z-axes.

  • 𝑠π‘₯ i , 𝑠𝑦 i , 𝑠𝑧 i (with i∈[1,n]) its sizes on the x, y and z-axes.

  • 𝑝π‘₯ i , 𝑝𝑦 i , 𝑝𝑧 i (with i∈[1,n]) the surfaces of its projections onto the planes yz, xz, and xy respectively equal to 𝑠𝑦 i 𝑠𝑧 i , 𝑠π‘₯ i 𝑠𝑧 i , and 𝑠π‘₯ i 𝑠𝑦 i .

  • 𝑣 i its volume (equal to 𝑠π‘₯ i 𝑠𝑦 i 𝑠𝑧 i ).

For the placement of n parallelepipeds we get the following necessary conditions that respectively correspond to three πšŒπšžπš–πšžπš•πšŠπšπš’πšŸπšŽ constraints on the planes yz, xz, and xy:

βˆ€i∈[1,X]:βˆ‘ jβˆ£π‘œπ‘₯ j ≀iβ‰€π‘œπ‘₯ j +𝑠π‘₯ j -1 𝑝π‘₯ j ≀YZβˆ€i∈[1,Y]:βˆ‘ jβˆ£π‘œπ‘¦ j ≀iβ‰€π‘œπ‘¦ j +𝑠𝑦 j -1 𝑝𝑦 j ≀XZβˆ€i∈[1,Z]:βˆ‘ jβˆ£π‘œπ‘§ j ≀iβ‰€π‘œπ‘§ j +𝑠𝑧 j -1 𝑝𝑧 j ≀XY

Reformulation

Based on the fact that two orthotopes do not overlap if there exists at least one dimension where their projections do not overlap one can reformulate the πšπš’πšπšπš—(π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚) constraint as a disjunction of inequalities between the origin and the end attributes. In addition one has to link the origin, the size and the end attributes of each orthotope in each dimension.

If we consider the example described in the Example slot we get the following reformulation:

  • 4=2+2 (link between the origin, size and end in dimension 1 of the first orthotope),

  • 4=1+3 (link between the origin, size and end in dimension 2 of the first orthotope),

  • 8=4+4 (link between the origin, size and end in dimension 1 of the second orthotope),

  • 6=3+3 (link between the origin, size and end in dimension 2 of the second orthotope),

  • 11=9+2 (link between the origin, size and end in dimension 1 of the third orthotope),

  • 7=4+3 (link between the origin, size and end in dimension 2 of the third orthotope),

  • 4≀4∨8≀2∨4≀3∨6≀1 (non-overlapping between the first and second orthotopes),

  • 4≀9∨11≀2∨4≀4∨7≀1 (non-overlapping between the first and third orthotopes),

  • 8≀9∨11≀4∨6≀4∨7≀3 (non-overlapping between the second and third orthotopes).

Systems

geost in Choco, nooverlap in Gecode, diff2 in JaCoP, diff in JaCoP, disjoint in JaCoP, disjointconditional in JaCoP, diffn in MiniZinc.

Used in

πšπš’πšπšπš—_πšŒπš˜πš•πšžπš–πš—, πšπš’πšπšπš—_πš’πš—πšŒπš•πšžπšπšŽ, πš™πš•πšŠπšŒπšŽ_πš’πš—_πš™πš’πš›πšŠπš–πš’πš.

See also

common keyword: πšŒπšŠπš•πšŽπš—πšπšŠπš›Β (multi-site employee scheduling with calendar constraints,

scheduling with machine choice, calendars and preemption), πšπš’πšπšπš—_πšŒπš˜πš•πšžπš–πš—, πšπš’πšπšπš—_πš’πš—πšŒπš•πšžπšπšŽΒ (geometrical constraint,orthotope), 𝚐𝚎𝚘𝚜𝚝, 𝚐𝚎𝚘𝚜𝚝_πšπš’πš–πšŽ, πš—πš˜πš—_πš˜πšŸπšŽπš›πš•πšŠπš™_πšœπš‹πš˜πš‘πšŽπšœΒ (geometrical constraint,non-overlapping), πšŸπš’πšœπš’πš‹πš•πšŽΒ (geometrical constraint).

implied by: πš˜πš›πšπš‘πšœ_πšŠπš›πšŽ_πšŒπš˜πš—πš—πšŽπšŒπšπšŽπš.

implies: πšŒπšžπš–πšžπš•πšŠπšπš’πšŸπšŽΒ (implies one πšŒπšžπš–πšžπš•πšŠπšπš’πšŸπšŽ constraint for each dimension).

related: πšŒπšžπš–πšžπš•πšŠπšπš’πšŸπšŽ_𝚝𝚠𝚘_𝚍 (πšŒπšžπš–πšžπš•πšŠπšπš’πšŸπšŽ_𝚝𝚠𝚘_𝚍 is a necessary condition for πšπš’πšπšπš—: forget one dimension when the number of dimensions is equal to 3), πš•πšŽπš‘_πšŒπš‘πšŠπš’πš—_πš•πšŽπšœπšœ, πš•πšŽπš‘_πšŒπš‘πšŠπš’πš—_πš•πšŽπšœπšœπšŽπššΒ (lexicographic ordering on the origins of πšπšŠπšœπš”πšœ, πš›πšŽπšŒπšπšŠπš—πšπš•πšŽπšœ, ...), 𝚝𝚠𝚘_πš˜πš›πšπš‘_πšŒπš˜πš•πšžπš–πš—, 𝚝𝚠𝚘_πš˜πš›πšπš‘_πš’πš—πšŒπš•πšžπšπšŽ.

specialisation: πšŠπš•πš•_πš–πš’πš—_πšπš’πšœπšΒ (πš˜πš›πšπš‘πš˜πšπš˜πš™πšŽ replaced by πš•πš’πš—πšŽ πšœπšŽπšπš–πšŽπš—πš, of same length), πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πšΒ (πš˜πš›πšπš‘πš˜πšπš˜πš™πšŽ replaced by πšŸπšŠπš›πš’πšŠπš‹πš•πšŽ), πšŒπšžπš–πšžπš•πšŠπšπš’πšŸπšŽπšœΒ (πš˜πš›πšπš‘πš˜πšπš˜πš™πšŽ replaced by πšπšŠπšœπš” with πš–πšŠπšŒπš‘πš’πš—πšŽ πšŠπšœπšœπš’πšπš—πš–πšŽπš—πš and πš˜πš›πš’πšπš’πš— attributes), πšπš’πšœπš“πšžπš—πšŒπšπš’πšŸπšŽΒ (orthotope replaced by πšπšŠπšœπš” of πš‘πšŽπš’πšπšπš‘ 1), πš”_πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πšΒ (when rectangles heights are all equal to 1 and rectangles starts in the first dimension are all fixed), πš•πšŽπš‘_πšŠπš•πš•πšπš’πšπšπšŽπš›πšŽπš—πšΒ (πš˜πš›πšπš‘πš˜πšπš˜πš™πšŽ replaced by πšŸπšŽπšŒπšπš˜πš›).

used in graph description: πš˜πš›πšπš‘_πš•πš’πš—πš”_πš˜πš›πš’_πšœπš’πš£_πšŽπš—πš, 𝚝𝚠𝚘_πš˜πš›πšπš‘_𝚍𝚘_πš—πš˜πš_πš˜πšŸπšŽπš›πš•πšŠπš™.

Keywords

application area: floor planning problem.

characteristic of a constraint: core.

combinatorial object: pentomino.

complexity: sequencing with release times and deadlines.

constraint arguments: business rules.

constraint type: decomposition, timetabling constraint, relaxation.

filtering: Klee measure problem, sweep, quadtree, compulsory part, constructive disjunction, SAT.

geometry: geometrical constraint, orthotope, polygon, non-overlapping.

heuristics: heuristics for two-dimensional rectangle placement problems.

modelling: disjunction, assignment dimension, assignment to the same set of values, assigning and scheduling tasks that run in parallel, relaxation dimension, sequence dependent set-up, multi-site employee scheduling with calendar constraints, scheduling with machine choice, calendars and preemption.

modelling exercises: assignment to the same set of values, assigning and scheduling tasks that run in parallel, relaxation dimension, sequence dependent set-up, multi-site employee scheduling with calendar constraints, scheduling with machine choice, calendars and preemption.

problems: strip packing, two-dimensional orthogonal packing, pallet loading.

puzzles: squared squares, packing almost squares, Partridge, pentomino, Shikaku, smallest square for packing consecutive dominoes, smallest square for packing rectangles with distinct sizes, smallest rectangle area, Conway packing problem.

Arc input(s)

π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚

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

Arc arity
Arc constraint(s)
πš˜πš›πšπš‘_πš•πš’πš—πš”_πš˜πš›πš’_πšœπš’πš£_πšŽπš—πš(πš˜πš›πšπš‘πš˜πšπš˜πš™πšŽπšœ.πš˜πš›πšπš‘)
Graph property(ies)
𝐍𝐀𝐑𝐂=|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|

Arc input(s)

π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚

Arc generator
πΆπΏπΌπ‘„π‘ˆπΈ(β‰ )β†¦πšŒπš˜πš•πš•πšŽπšŒπšπš’πš˜πš—(πš˜πš›πšπš‘πš˜πšπš˜πš™πšŽπšœ1,πš˜πš›πšπš‘πš˜πšπš˜πš™πšŽπšœ2)

Arc arity
Arc constraint(s)
𝚝𝚠𝚘_πš˜πš›πšπš‘_𝚍𝚘_πš—πš˜πš_πš˜πšŸπšŽπš›πš•πšŠπš™(πš˜πš›πšπš‘πš˜πšπš˜πš™πšŽπšœ1.πš˜πš›πšπš‘,πš˜πš›πšπš‘πš˜πšπš˜πš™πšŽπšœ2.πš˜πš›πšπš‘)
Graph property(ies)
𝐍𝐀𝐑𝐂=|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|*|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|-|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|

Graph model

The πšπš’πšπšπš— constraint is expressed by using two graph constraints:

  • The first graph constraint forces for each dimension and for each orthotope the link between the corresponding πš˜πš›πš’, πšœπš’πš£ and πšŽπš—πš attributes.

  • The second graph constraint imposes each pair of distinct orthotopes to not overlap.

PartsΒ (A) andΒ (B) of FigureΒ 5.118.8 respectively show the initial and final graph associated with the second graph constraint of the Example slot. Since we use the 𝐍𝐀𝐑𝐂 graph property, the arcs of the final graph are stressed in bold.

Figure 5.118.8. Initial and final graph of the πšπš’πšπšπš— constraint
ctrs/diffnActrs/diffnB
(a) (b)
Signature

Since |π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚| is the maximum number of vertices of the final graph of the first graph constraint we can rewrite 𝐍𝐀𝐑𝐂 = |π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚| to 𝐍𝐀𝐑𝐂 β‰₯ |π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|. This leads to simplify 𝐍𝐀𝐑𝐂 Β― Μ² to 𝐍𝐀𝐑𝐂 Β―.

Since we use the πΆπΏπΌπ‘„π‘ˆπΈ(β‰ ) arc generator on the π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚ collection, |π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|Β·|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|-|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚| is the maximum number of vertices of the final graph of the second graph constraint. Therefore we can rewrite 𝐍𝐀𝐑𝐂 = |π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|Β·|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|-|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚| to 𝐍𝐀𝐑𝐂 β‰₯ |π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|Β·|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|-|π™Ύπšπšƒπ™·π™Ύπšƒπ™Ύπ™Ώπ™΄πš‚|. Again, this leads to simplify 𝐍𝐀𝐑𝐂 Β― Μ² to 𝐍𝐀𝐑𝐂 Β―.

Quiz

Β Β 

πšπš’πšπšπš—: checking whether a ground instance holds or not ctrs/diffn-8-tikz Β 

πšπš’πšπšπš—: finding all solutions ctrs/diffn-9-tikz Β 

πšπš’πšπšπš—: finding the unique solution ctrs/diffn-10-tikz Β 

πšπš’πšπšπš—: degrees of violation for non-overlapping ctrs/diffn-11-tikz Β 

ctrs/diffn-12-tikz

ctrs/diffn-13-tikz

ctrs/diffn-14-tikz

ctrs/diffn-15-tikz

ctrs/diffn-16-tikz

ctrs/diffn-17-tikz Β