99 lines
7.2 KiB
MiniZinc
99 lines
7.2 KiB
MiniZinc
predicate fzn_all_different_int(array [int] of var int: x);
|
|
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);
|
|
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);
|
|
var 1..9: X____00001;
|
|
var 1..9: X____00002;
|
|
var 1..9: X____00003;
|
|
var 1..9: X____00004;
|
|
var 1..9: X____00005;
|
|
var 1..9: X____00006;
|
|
var 1..9: X____00007;
|
|
var 1..9: X____00008;
|
|
var 1..9: X____00009;
|
|
var 1..9: X____00010;
|
|
var 1..9: X____00011;
|
|
var 1..9: X____00012;
|
|
var 1..9: X____00013;
|
|
var 1..9: X____00014;
|
|
var 1..9: X____00015;
|
|
var 1..9: X____00016;
|
|
var 1..9: X____00017;
|
|
var 1..9: X____00018;
|
|
var 1..9: X____00019;
|
|
var 1..9: X____00020;
|
|
var 1..9: X____00021;
|
|
var 1..9: X____00022;
|
|
var 1..9: X____00023;
|
|
var 1..9: X____00024;
|
|
var 1..9: X____00025;
|
|
var 1..9: X____00026;
|
|
var 1..9: X____00027;
|
|
var 1..9: X____00028;
|
|
var 1..9: X____00029;
|
|
var 1..9: X____00030;
|
|
var 1..9: X____00031;
|
|
var 1..9: X____00032;
|
|
var 1..9: X____00033;
|
|
var 1..9: X____00034;
|
|
var 1..9: X____00035;
|
|
var 1..9: X____00036;
|
|
var 1..9: X____00037;
|
|
var 1..9: X____00038;
|
|
var 1..9: X____00039;
|
|
var 1..9: X____00040;
|
|
var 1..9: X____00041;
|
|
var 1..9: X____00042;
|
|
var 1..9: X____00043;
|
|
var 1..9: X____00044;
|
|
var 1..9: X____00045;
|
|
var 1..9: X____00046;
|
|
var 1..9: X____00047;
|
|
var 1..9: X____00048;
|
|
var 1..9: X____00049;
|
|
var 1..9: X____00050;
|
|
var 1..9: X____00051;
|
|
var 1..9: X____00052;
|
|
var 1..9: X____00053;
|
|
var 1..9: X____00054;
|
|
var 1..9: X____00055;
|
|
var 1..9: X____00056;
|
|
var 1..9: X____00057;
|
|
var 1..9: X____00058;
|
|
array [1..81] of var 1..9: x :: output_array([1..9, 1..9]) = [X____00001, X____00002, X____00003, 2, X____00004, 5, X____00005, X____00006, X____00007, X____00008, 9, X____00009, X____00010, X____00011, X____00012, 7, 3, X____00013, X____00014, X____00015, 2, X____00016, X____00017, 9, X____00018, 6, X____00019, 2, X____00020, X____00021, X____00022, X____00023, X____00024, 4, X____00025, 9, X____00026, X____00027, X____00028, X____00029, 7, X____00030, X____00031, X____00032, X____00033, 6, X____00034, 9, X____00035, X____00036, X____00037, X____00038, X____00039, 1, X____00040, 8, X____00041, 4, X____00042, X____00043, 1, X____00044, X____00045, X____00046, 6, 3, X____00047, X____00048, X____00049, X____00050, 8, X____00051, X____00052, X____00053, X____00054, 6, X____00055, 8, X____00056, X____00057, X____00058];
|
|
constraint fzn_all_different_int([1, X____00044, X____00045, X____00050, 8, X____00051, X____00056, X____00057, X____00058]) :: domain;
|
|
constraint fzn_all_different_int([2, X____00004, 5, X____00010, X____00011, X____00012, X____00016, X____00017, 9]) :: domain;
|
|
constraint fzn_all_different_int([2, X____00010, X____00016, X____00022, X____00029, X____00035, 4, X____00047, 6]) :: domain;
|
|
constraint fzn_all_different_int([2, X____00020, X____00021, X____00022, X____00023, X____00024, 4, X____00025, 9]) :: domain;
|
|
constraint fzn_all_different_int([2, X____00020, X____00021, X____00026, X____00027, X____00028, 6, X____00034, 9]) :: domain;
|
|
constraint fzn_all_different_int([4, X____00025, 9, X____00031, X____00032, X____00033, X____00038, X____00039, 1]) :: domain;
|
|
constraint fzn_all_different_int([4, X____00042, X____00043, X____00047, X____00048, X____00049, 6, X____00055, 8]) :: domain;
|
|
constraint fzn_all_different_int([5, X____00012, 9, X____00024, X____00030, X____00037, X____00043, X____00049, 8]) :: domain;
|
|
constraint fzn_all_different_int([6, X____00034, 9, X____00035, X____00036, X____00037, X____00038, X____00039, 1]) :: domain;
|
|
constraint fzn_all_different_int([X____00001, X____00002, X____00003, 2, X____00004, 5, X____00005, X____00006, X____00007]) :: domain;
|
|
constraint fzn_all_different_int([X____00001, X____00002, X____00003, X____00008, 9, X____00009, X____00014, X____00015, 2]) :: domain;
|
|
constraint fzn_all_different_int([X____00001, X____00008, X____00014, 2, X____00026, 6, X____00040, X____00046, X____00052]) :: domain;
|
|
constraint fzn_all_different_int([X____00002, 9, X____00015, X____00020, X____00027, X____00034, 8, 6, X____00053]) :: domain;
|
|
constraint fzn_all_different_int([X____00003, X____00009, 2, X____00021, X____00028, 9, X____00041, 3, X____00054]) :: domain;
|
|
constraint fzn_all_different_int([X____00004, X____00011, X____00017, X____00023, 7, X____00036, X____00042, X____00048, X____00055]) :: domain;
|
|
constraint fzn_all_different_int([X____00005, 7, X____00018, 4, X____00031, X____00038, 1, X____00050, X____00056]) :: domain;
|
|
constraint fzn_all_different_int([X____00005, X____00006, X____00007, 7, 3, X____00013, X____00018, 6, X____00019]) :: domain;
|
|
constraint fzn_all_different_int([X____00006, 3, 6, X____00025, X____00032, X____00039, X____00044, 8, X____00057]) :: domain;
|
|
constraint fzn_all_different_int([X____00007, X____00013, X____00019, 9, X____00033, 1, X____00045, X____00051, X____00058]) :: domain;
|
|
constraint fzn_all_different_int([X____00008, 9, X____00009, X____00010, X____00011, X____00012, 7, 3, X____00013]) :: domain;
|
|
constraint fzn_all_different_int([X____00014, X____00015, 2, X____00016, X____00017, 9, X____00018, 6, X____00019]) :: domain;
|
|
constraint fzn_all_different_int([X____00022, X____00023, X____00024, X____00029, 7, X____00030, X____00035, X____00036, X____00037]) :: domain;
|
|
constraint fzn_all_different_int([X____00026, X____00027, X____00028, X____00029, 7, X____00030, X____00031, X____00032, X____00033]) :: domain;
|
|
constraint fzn_all_different_int([X____00040, 8, X____00041, 4, X____00042, X____00043, 1, X____00044, X____00045]) :: domain;
|
|
constraint fzn_all_different_int([X____00040, 8, X____00041, X____00046, 6, 3, X____00052, X____00053, X____00054]) :: domain;
|
|
constraint fzn_all_different_int([X____00046, 6, 3, X____00047, X____00048, X____00049, X____00050, 8, X____00051]) :: domain;
|
|
constraint fzn_all_different_int([X____00052, X____00053, X____00054, 6, X____00055, 8, X____00056, X____00057, X____00058]) :: domain;
|
|
solve :: int_search([X____00001, X____00002, X____00003, 2, X____00004, 5, X____00005, X____00006, X____00007, X____00008, 9, X____00009, X____00010, X____00011, X____00012, 7, 3, X____00013, X____00014, X____00015, 2, X____00016, X____00017, 9, X____00018, 6, X____00019, 2, X____00020, X____00021, X____00022, X____00023, X____00024, 4, X____00025, 9, X____00026, X____00027, X____00028, X____00029, 7, X____00030, X____00031, X____00032, X____00033, 6, X____00034, 9, X____00035, X____00036, X____00037, X____00038, X____00039, 1, X____00040, 8, X____00041, 4, X____00042, X____00043, 1, X____00044, X____00045, X____00046, 6, 3, X____00047, X____00048, X____00049, X____00050, 8, X____00051, X____00052, X____00053, X____00054, 6, X____00055, 8, X____00056, X____00057, X____00058], first_fail, indomain_min, complete) satisfy;
|