Files
ortools-clone/examples/flatzinc/crossbar.fzn

55 lines
2.6 KiB
MiniZinc
Raw Permalink Normal View History

predicate fzn_all_different_int(array [int] of var int: x);
2012-09-03 18:26:36 +00:00
predicate count(array [int] of var int: x, var int: y, var int: c);
predicate fixed_fzn_cumulative(array [int] of var int: s, array [int] of int: d, array [int] of int: r, int: b);
2012-09-03 18:26:36 +00:00
predicate global_cardinality(array [int] of var int: x, array [int] of int: cover, array [int] of var int: counts);
predicate maximum_int(var int: m, array [int] of var int: x);
predicate minimum_int(var int: m, array [int] of var int: x);
predicate sliding_sum(int: low, int: up, int: seq, array [int] of var int: vs);
predicate sort(array [int] of var int: x, array [int] of var int: y);
predicate table_bool(array [int] of var bool: x, array [int, int] of bool: t);
predicate table_int(array [int] of var int: x, array [int, int] of int: t);
predicate var_fzn_cumulative(array [int] of var int: s, array [int] of int: d, array [int] of int: r, var int: b);
2012-09-03 18:26:36 +00:00
var 2..20: V1;
var 4..20: V10;
var 2..20: V11;
var 3..20: V12;
var 2..20: V13;
var 2..18: V14;
var 2..20: V15;
var 1..20: V16;
var 1..19: V17;
var 1..19: V18;
var 1..20: V19;
var 2..20: V2;
var 3..20: V20;
var 2..18: V3;
var 1..18: V4;
var 1..20: V5;
var 1..20: V6;
var 5..17: V7;
var 1..17: V8;
var 1..20: V9;
array [1..20] of var 0..20: List :: output_array([1..20]) = [V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20];
constraint fzn_all_different_int(List);
2012-09-03 18:26:36 +00:00
constraint set_in(V1, {2, 4, 6, 7, 8, 9, 10, 11, 16, 18, 20});
constraint set_in(V10, {4, 5, 8, 9, 10, 11, 13, 17, 18, 19, 20});
constraint set_in(V11, {2, 4, 6, 7, 8, 10, 12, 14, 17, 18, 20});
constraint set_in(V12, {3, 7, 8, 9, 10, 13, 14, 15, 18, 20});
constraint set_in(V13, {2, 3, 6, 7, 8, 9, 11, 13, 16, 20});
constraint set_in(V14, {2, 3, 5, 6, 8, 9, 12, 13, 15, 16, 17, 18});
constraint set_in(V15, {2, 7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 20});
constraint set_in(V16, {1, 2, 6, 11, 13, 16, 17, 19, 20});
constraint set_in(V17, {1, 3, 6, 9, 13, 19});
constraint set_in(V18, {1, 3, 6, 7, 8, 10, 13, 14, 19});
constraint set_in(V19, {1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 14, 16, 17, 19, 20});
constraint set_in(V2, {2, 3, 4, 8, 10, 12, 17, 19, 20});
constraint set_in(V20, {3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16, 18, 20});
constraint set_in(V3, {2, 3, 4, 6, 8, 9, 11, 17, 18});
constraint set_in(V4, {1, 3, 4, 5, 6, 7, 9, 10, 11, 13, 18});
constraint set_in(V5, {1, 5, 6, 10, 12, 13, 14, 17, 18, 19, 20});
constraint set_in(V6, {1, 3, 10, 12, 15, 16, 19, 20});
constraint set_in(V7, {5, 8, 9, 10, 17});
constraint set_in(V8, {1, 2, 5, 6, 7, 12, 14, 15, 16, 17});
constraint set_in(V9, {1, 2, 3, 4, 5, 7, 11, 12, 13, 14, 16, 17, 20});
solve satisfy;