189 lines
15 KiB
MiniZinc
189 lines
15 KiB
MiniZinc
var bool: BOOL____00002 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00004 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00005 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00006 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00008 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00009 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00010 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00012 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00013 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00014 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00016 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00017 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00018 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00020 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00021 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00022 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00024 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00025 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00026 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00028 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00029 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00030 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00032 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00033 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00034 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00036 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00037 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00038 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00040 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00041 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00042 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00044 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00045 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00046 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00048 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00049 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00050 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00052 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00053 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00054 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00056 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00057 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00058 :: is_defined_var :: var_is_introduced;
|
|
var bool: BOOL____00060 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00003 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00007 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00011 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00015 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00019 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00023 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00027 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00031 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00035 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00039 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00043 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00047 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00051 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00055 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00059 :: is_defined_var :: var_is_introduced;
|
|
var 0..1: INT____00061 :: is_defined_var :: var_is_introduced;
|
|
var 6..6: limitx :: output_var = 6;
|
|
array [1..16] of var 0..1: occupied____00001;
|
|
array [1..16] of var int: sums :: output_array([1..16]);
|
|
array [1..10] of var 1..16: tasks :: output_array([1..5, 1..2]);
|
|
constraint array_bool_and([BOOL____00004, BOOL____00005], BOOL____00006) :: defines_var(BOOL____00006);
|
|
constraint array_bool_and([BOOL____00008, BOOL____00009], BOOL____00010) :: defines_var(BOOL____00010);
|
|
constraint array_bool_and([BOOL____00012, BOOL____00013], BOOL____00014) :: defines_var(BOOL____00014);
|
|
constraint array_bool_and([BOOL____00016, BOOL____00017], BOOL____00018) :: defines_var(BOOL____00018);
|
|
constraint array_bool_and([BOOL____00020, BOOL____00021], BOOL____00022) :: defines_var(BOOL____00022);
|
|
constraint array_bool_and([BOOL____00024, BOOL____00025], BOOL____00026) :: defines_var(BOOL____00026);
|
|
constraint array_bool_and([BOOL____00028, BOOL____00029], BOOL____00030) :: defines_var(BOOL____00030);
|
|
constraint array_bool_and([BOOL____00032, BOOL____00033], BOOL____00034) :: defines_var(BOOL____00034);
|
|
constraint array_bool_and([BOOL____00036, BOOL____00037], BOOL____00038) :: defines_var(BOOL____00038);
|
|
constraint array_bool_and([BOOL____00040, BOOL____00041], BOOL____00042) :: defines_var(BOOL____00042);
|
|
constraint array_bool_and([BOOL____00044, BOOL____00045], BOOL____00046) :: defines_var(BOOL____00046);
|
|
constraint array_bool_and([BOOL____00048, BOOL____00049], BOOL____00050) :: defines_var(BOOL____00050);
|
|
constraint array_bool_and([BOOL____00052, BOOL____00053], BOOL____00054) :: defines_var(BOOL____00054);
|
|
constraint array_bool_and([BOOL____00056, BOOL____00057], BOOL____00058) :: defines_var(BOOL____00058);
|
|
constraint bool2int(BOOL____00002, INT____00003) :: defines_var(INT____00003);
|
|
constraint bool2int(BOOL____00006, INT____00007) :: defines_var(INT____00007);
|
|
constraint bool2int(BOOL____00010, INT____00011) :: defines_var(INT____00011);
|
|
constraint bool2int(BOOL____00014, INT____00015) :: defines_var(INT____00015);
|
|
constraint bool2int(BOOL____00018, INT____00019) :: defines_var(INT____00019);
|
|
constraint bool2int(BOOL____00022, INT____00023) :: defines_var(INT____00023);
|
|
constraint bool2int(BOOL____00026, INT____00027) :: defines_var(INT____00027);
|
|
constraint bool2int(BOOL____00030, INT____00031) :: defines_var(INT____00031);
|
|
constraint bool2int(BOOL____00034, INT____00035) :: defines_var(INT____00035);
|
|
constraint bool2int(BOOL____00038, INT____00039) :: defines_var(INT____00039);
|
|
constraint bool2int(BOOL____00042, INT____00043) :: defines_var(INT____00043);
|
|
constraint bool2int(BOOL____00046, INT____00047) :: defines_var(INT____00047);
|
|
constraint bool2int(BOOL____00050, INT____00051) :: defines_var(INT____00051);
|
|
constraint bool2int(BOOL____00054, INT____00055) :: defines_var(INT____00055);
|
|
constraint bool2int(BOOL____00058, INT____00059) :: defines_var(INT____00059);
|
|
constraint bool2int(BOOL____00060, INT____00061) :: defines_var(INT____00061);
|
|
constraint int_eq(1, tasks[4]);
|
|
constraint int_eq(2, tasks[6]);
|
|
constraint int_eq(2, tasks[8]);
|
|
constraint int_eq(2, tasks[9]);
|
|
constraint int_eq(2, tasks[10]);
|
|
constraint int_eq(3, tasks[2]);
|
|
constraint int_eq(5, tasks[3]);
|
|
constraint int_eq(6, tasks[5]);
|
|
constraint int_eq(10, tasks[1]);
|
|
constraint int_eq(14, tasks[7]);
|
|
constraint int_le(sums[1], 6);
|
|
constraint int_le(sums[2], 6);
|
|
constraint int_le(sums[3], 6);
|
|
constraint int_le(sums[4], 6);
|
|
constraint int_le(sums[5], 6);
|
|
constraint int_le(sums[6], 6);
|
|
constraint int_le(sums[7], 6);
|
|
constraint int_le(sums[8], 6);
|
|
constraint int_le(sums[9], 6);
|
|
constraint int_le(sums[10], 6);
|
|
constraint int_le(sums[11], 6);
|
|
constraint int_le(sums[12], 6);
|
|
constraint int_le(sums[13], 6);
|
|
constraint int_le(sums[14], 6);
|
|
constraint int_le(sums[15], 6);
|
|
constraint int_le(sums[16], 6);
|
|
constraint int_le_reif(tasks[1], 1, BOOL____00002) :: defines_var(BOOL____00002);
|
|
constraint int_le_reif(tasks[1], 2, BOOL____00004) :: defines_var(BOOL____00004);
|
|
constraint int_le_reif(tasks[1], 3, BOOL____00008) :: defines_var(BOOL____00008);
|
|
constraint int_le_reif(tasks[1], 4, BOOL____00012) :: defines_var(BOOL____00012);
|
|
constraint int_le_reif(tasks[1], 5, BOOL____00016) :: defines_var(BOOL____00016);
|
|
constraint int_le_reif(tasks[1], 6, BOOL____00020) :: defines_var(BOOL____00020);
|
|
constraint int_le_reif(tasks[1], 7, BOOL____00024) :: defines_var(BOOL____00024);
|
|
constraint int_le_reif(tasks[1], 8, BOOL____00028) :: defines_var(BOOL____00028);
|
|
constraint int_le_reif(tasks[1], 9, BOOL____00032) :: defines_var(BOOL____00032);
|
|
constraint int_le_reif(tasks[1], 10, BOOL____00036) :: defines_var(BOOL____00036);
|
|
constraint int_le_reif(tasks[1], 11, BOOL____00040) :: defines_var(BOOL____00040);
|
|
constraint int_le_reif(tasks[1], 12, BOOL____00044) :: defines_var(BOOL____00044);
|
|
constraint int_le_reif(tasks[1], 13, BOOL____00048) :: defines_var(BOOL____00048);
|
|
constraint int_le_reif(tasks[1], 14, BOOL____00052) :: defines_var(BOOL____00052);
|
|
constraint int_le_reif(tasks[1], 15, BOOL____00056) :: defines_var(BOOL____00056);
|
|
constraint int_lin_eq([-1, 1], [INT____00003, occupied____00001[1]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00007, occupied____00001[2]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00011, occupied____00001[3]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00015, occupied____00001[4]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00019, occupied____00001[5]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00023, occupied____00001[6]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00027, occupied____00001[7]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00031, occupied____00001[8]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00035, occupied____00001[9]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00039, occupied____00001[10]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00043, occupied____00001[11]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00047, occupied____00001[12]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00051, occupied____00001[13]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00055, occupied____00001[14]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00059, occupied____00001[15]], 0);
|
|
constraint int_lin_eq([-1, 1], [INT____00061, occupied____00001[16]], 0);
|
|
constraint int_lin_eq([-1, 1], [occupied____00001[16], sums[16]], 0);
|
|
constraint int_lin_eq([-1, -1, 1], [occupied____00001[15], occupied____00001[16], sums[15]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, 1], [occupied____00001[14], occupied____00001[15], occupied____00001[16], sums[14]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, 1], [occupied____00001[13], occupied____00001[14], occupied____00001[15], occupied____00001[16], sums[13]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, -1, 1], [occupied____00001[12], occupied____00001[13], occupied____00001[14], occupied____00001[15], occupied____00001[16], sums[12]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, -1, -1, 1], [occupied____00001[11], occupied____00001[12], occupied____00001[13], occupied____00001[14], occupied____00001[15], occupied____00001[16], sums[11]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, -1, -1, -1, 1], [occupied____00001[10], occupied____00001[11], occupied____00001[12], occupied____00001[13], occupied____00001[14], occupied____00001[15], occupied____00001[16], sums[10]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, -1, -1, -1, -1, 1], [occupied____00001[9], occupied____00001[10], occupied____00001[11], occupied____00001[12], occupied____00001[13], occupied____00001[14], occupied____00001[15], occupied____00001[16], sums[9]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, -1, -1, -1, -1, -1, 1], [occupied____00001[1], occupied____00001[2], occupied____00001[3], occupied____00001[4], occupied____00001[5], occupied____00001[6], occupied____00001[7], occupied____00001[8], occupied____00001[9], sums[1]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, -1, -1, -1, -1, -1, 1], [occupied____00001[2], occupied____00001[3], occupied____00001[4], occupied____00001[5], occupied____00001[6], occupied____00001[7], occupied____00001[8], occupied____00001[9], occupied____00001[10], sums[2]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, -1, -1, -1, -1, -1, 1], [occupied____00001[3], occupied____00001[4], occupied____00001[5], occupied____00001[6], occupied____00001[7], occupied____00001[8], occupied____00001[9], occupied____00001[10], occupied____00001[11], sums[3]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, -1, -1, -1, -1, -1, 1], [occupied____00001[4], occupied____00001[5], occupied____00001[6], occupied____00001[7], occupied____00001[8], occupied____00001[9], occupied____00001[10], occupied____00001[11], occupied____00001[12], sums[4]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, -1, -1, -1, -1, -1, 1], [occupied____00001[5], occupied____00001[6], occupied____00001[7], occupied____00001[8], occupied____00001[9], occupied____00001[10], occupied____00001[11], occupied____00001[12], occupied____00001[13], sums[5]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, -1, -1, -1, -1, -1, 1], [occupied____00001[6], occupied____00001[7], occupied____00001[8], occupied____00001[9], occupied____00001[10], occupied____00001[11], occupied____00001[12], occupied____00001[13], occupied____00001[14], sums[6]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, -1, -1, -1, -1, -1, 1], [occupied____00001[7], occupied____00001[8], occupied____00001[9], occupied____00001[10], occupied____00001[11], occupied____00001[12], occupied____00001[13], occupied____00001[14], occupied____00001[15], sums[7]], 0);
|
|
constraint int_lin_eq([-1, -1, -1, -1, -1, -1, -1, -1, -1, 1], [occupied____00001[8], occupied____00001[9], occupied____00001[10], occupied____00001[11], occupied____00001[12], occupied____00001[13], occupied____00001[14], occupied____00001[15], occupied____00001[16], sums[8]], 0);
|
|
constraint int_lin_le([1, 1], [tasks[1], tasks[2]], 16);
|
|
constraint int_lin_le([1, 1], [tasks[3], tasks[4]], 16);
|
|
constraint int_lin_le([1, 1], [tasks[5], tasks[6]], 16);
|
|
constraint int_lin_le([1, 1], [tasks[7], tasks[8]], 16);
|
|
constraint int_lin_le([1, 1], [tasks[9], tasks[10]], 16);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -17, BOOL____00060) :: defines_var(BOOL____00060);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -16, BOOL____00057) :: defines_var(BOOL____00057);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -15, BOOL____00053) :: defines_var(BOOL____00053);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -14, BOOL____00049) :: defines_var(BOOL____00049);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -13, BOOL____00045) :: defines_var(BOOL____00045);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -12, BOOL____00041) :: defines_var(BOOL____00041);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -11, BOOL____00037) :: defines_var(BOOL____00037);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -10, BOOL____00033) :: defines_var(BOOL____00033);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -9, BOOL____00029) :: defines_var(BOOL____00029);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -8, BOOL____00025) :: defines_var(BOOL____00025);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -7, BOOL____00021) :: defines_var(BOOL____00021);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -6, BOOL____00017) :: defines_var(BOOL____00017);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -5, BOOL____00013) :: defines_var(BOOL____00013);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -4, BOOL____00009) :: defines_var(BOOL____00009);
|
|
constraint int_lin_le_reif([-1, -1], [tasks[1], tasks[2]], -3, BOOL____00005) :: defines_var(BOOL____00005);
|
|
solve satisfy;
|