Files
ortools-clone/examples/flatzinc/onroad.fzn
2012-09-03 18:26:36 +00:00

81 lines
8.3 KiB
MiniZinc

var 0..495: INT____00001 :: is_defined_var :: var_is_introduced;
var 11..20: INT____00005 :: is_defined_var :: var_is_introduced;
var 21..30: INT____00008 :: is_defined_var :: var_is_introduced;
var 31..40: INT____00011 :: is_defined_var :: var_is_introduced;
var 41..50: INT____00014 :: is_defined_var :: var_is_introduced;
var 51..60: INT____00017 :: is_defined_var :: var_is_introduced;
var 61..70: INT____00020 :: is_defined_var :: var_is_introduced;
var 71..80: INT____00023 :: is_defined_var :: var_is_introduced;
var 81..90: INT____00026 :: is_defined_var :: var_is_introduced;
var 91..100: INT____00029 :: is_defined_var :: var_is_introduced;
var 0..495: closest :: output_var = INT____00001;
var int: d;
var 1..10: j____00002;
var 1..10: j____00004;
var 1..10: j____00007;
var 1..10: j____00010;
var 1..10: j____00013;
var 1..10: j____00016;
var 1..10: j____00019;
var 1..10: j____00022;
var 1..10: j____00025;
var 1..10: j____00028;
array [1..100] of var 0..1: x :: output_array([1..10, 1..10]);
array [1..10] of var 0..9: y :: output_array([1..10]);
constraint array_var_int_element(INT____00005, x, 1);
constraint array_var_int_element(INT____00008, x, 1);
constraint array_var_int_element(INT____00011, x, 1);
constraint array_var_int_element(INT____00014, x, 1);
constraint array_var_int_element(INT____00017, x, 1);
constraint array_var_int_element(INT____00020, x, 1);
constraint array_var_int_element(INT____00023, x, 1);
constraint array_var_int_element(INT____00026, x, 1);
constraint array_var_int_element(INT____00029, x, 1);
constraint array_var_int_element(j____00002, x, 1);
constraint int_lin_eq([-1, 1], [INT____00005, j____00004], -10) :: defines_var(INT____00005) :: domain;
constraint int_lin_eq([-1, 1], [INT____00008, j____00007], -20) :: defines_var(INT____00008) :: domain;
constraint int_lin_eq([-1, 1], [INT____00011, j____00010], -30) :: defines_var(INT____00011) :: domain;
constraint int_lin_eq([-1, 1], [INT____00014, j____00013], -40) :: defines_var(INT____00014) :: domain;
constraint int_lin_eq([-1, 1], [INT____00017, j____00016], -50) :: defines_var(INT____00017) :: domain;
constraint int_lin_eq([-1, 1], [INT____00020, j____00019], -60) :: defines_var(INT____00020) :: domain;
constraint int_lin_eq([-1, 1], [INT____00023, j____00022], -70) :: defines_var(INT____00023) :: domain;
constraint int_lin_eq([-1, 1], [INT____00026, j____00025], -80) :: defines_var(INT____00026) :: domain;
constraint int_lin_eq([-1, 1], [INT____00029, j____00028], -90) :: defines_var(INT____00029) :: domain;
constraint int_lin_eq([-1, 1], [j____00002, y[1]], -1);
constraint int_lin_eq([-1, 1], [j____00004, y[2]], -1);
constraint int_lin_eq([-1, 1], [j____00007, y[3]], -1);
constraint int_lin_eq([-1, 1], [j____00010, y[4]], -1);
constraint int_lin_eq([-1, 1], [j____00013, y[5]], -1);
constraint int_lin_eq([-1, 1], [j____00016, y[6]], -1);
constraint int_lin_eq([-1, 1], [j____00019, y[7]], -1);
constraint int_lin_eq([-1, 1], [j____00022, y[8]], -1);
constraint int_lin_eq([-1, 1], [j____00025, y[9]], -1);
constraint int_lin_eq([-1, 1], [j____00028, y[10]], -1);
constraint int_lin_eq([1, 1, 1, 1, 1], [x[1], x[3], x[5], x[7], x[9]], 0);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[1], x[11], x[21], x[31], x[41], x[51], x[61], x[71], x[81], x[91]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[2], x[12], x[22], x[32], x[42], x[52], x[62], x[72], x[82], x[92]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[3], x[13], x[23], x[33], x[43], x[53], x[63], x[73], x[83], x[93]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[4], x[14], x[24], x[34], x[44], x[54], x[64], x[74], x[84], x[94]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[5], x[15], x[25], x[35], x[45], x[55], x[65], x[75], x[85], x[95]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[6], x[16], x[26], x[36], x[46], x[56], x[66], x[76], x[86], x[96]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[7], x[17], x[27], x[37], x[47], x[57], x[67], x[77], x[87], x[97]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[8], x[18], x[28], x[38], x[48], x[58], x[68], x[78], x[88], x[98]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[9], x[19], x[29], x[39], x[49], x[59], x[69], x[79], x[89], x[99]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[10], x[20], x[30], x[40], x[50], x[60], x[70], x[80], x[90], x[100]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[11], x[12], x[13], x[14], x[15], x[16], x[17], x[18], x[19], x[20]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[21], x[22], x[23], x[24], x[25], x[26], x[27], x[28], x[29], x[30]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[31], x[32], x[33], x[34], x[35], x[36], x[37], x[38], x[39], x[40]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[41], x[42], x[43], x[44], x[45], x[46], x[47], x[48], x[49], x[50]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[51], x[52], x[53], x[54], x[55], x[56], x[57], x[58], x[59], x[60]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[61], x[62], x[63], x[64], x[65], x[66], x[67], x[68], x[69], x[70]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[71], x[72], x[73], x[74], x[75], x[76], x[77], x[78], x[79], x[80]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[81], x[82], x[83], x[84], x[85], x[86], x[87], x[88], x[89], x[90]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [x[91], x[92], x[93], x[94], x[95], x[96], x[97], x[98], x[99], x[100]], 1);
constraint int_lin_eq([-1, 10, 1, 20, 2, 30, 3, 40, 4, 50, 5, 60, 6, 70, 7, 80, 8, 90, 9], [INT____00001, x[11], x[12], x[21], x[22], x[31], x[32], x[41], x[42], x[51], x[52], x[61], x[62], x[71], x[72], x[81], x[82], x[91], x[92]], 0) :: defines_var(INT____00001);
constraint int_lin_eq([1, 10, 1, -10, -1, 20, 2, -20, -2, 30, 3, -30, -3, 40, 4, -40, -4, 50, 5, -50, -5, 60, 6, -60, -6, 70, 7, -70, -7, 80, 8, -80, -8, 90, 9, -90, -9], [d, x[11], x[12], x[13], x[14], x[21], x[22], x[23], x[24], x[31], x[32], x[33], x[34], x[41], x[42], x[43], x[44], x[51], x[52], x[53], x[54], x[61], x[62], x[63], x[64], x[71], x[72], x[73], x[74], x[81], x[82], x[83], x[84], x[91], x[92], x[93], x[94]], 0);
constraint int_lin_eq([1, 10, 1, -10, -1, 20, 2, -20, -2, 30, 3, -30, -3, 40, 4, -40, -4, 50, 5, -50, -5, 60, 6, -60, -6, 70, 7, -70, -7, 80, 8, -80, -8, 90, 9, -90, -9], [d, x[13], x[14], x[15], x[16], x[23], x[24], x[25], x[26], x[33], x[34], x[35], x[36], x[43], x[44], x[45], x[46], x[53], x[54], x[55], x[56], x[63], x[64], x[65], x[66], x[73], x[74], x[75], x[76], x[83], x[84], x[85], x[86], x[93], x[94], x[95], x[96]], 0);
constraint int_lin_eq([1, 10, 1, -10, -1, 20, 2, -20, -2, 30, 3, -30, -3, 40, 4, -40, -4, 50, 5, -50, -5, 60, 6, -60, -6, 70, 7, -70, -7, 80, 8, -80, -8, 90, 9, -90, -9], [d, x[15], x[16], x[17], x[18], x[25], x[26], x[27], x[28], x[35], x[36], x[37], x[38], x[45], x[46], x[47], x[48], x[55], x[56], x[57], x[58], x[65], x[66], x[67], x[68], x[75], x[76], x[77], x[78], x[85], x[86], x[87], x[88], x[95], x[96], x[97], x[98]], 0);
constraint int_lin_eq([1, 10, 1, -10, -1, 20, 2, -20, -2, 30, 3, -30, -3, 40, 4, -40, -4, 50, 5, -50, -5, 60, 6, -60, -6, 70, 7, -70, -7, 80, 8, -80, -8, 90, 9, -90, -9], [d, x[17], x[18], x[19], x[20], x[27], x[28], x[29], x[30], x[37], x[38], x[39], x[40], x[47], x[48], x[49], x[50], x[57], x[58], x[59], x[60], x[67], x[68], x[69], x[70], x[77], x[78], x[79], x[80], x[87], x[88], x[89], x[90], x[97], x[98], x[99], x[100]], 0);
solve :: int_search([x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17], x[18], x[19], x[20], x[21], x[22], x[23], x[24], x[25], x[26], x[27], x[28], x[29], x[30], x[31], x[32], x[33], x[34], x[35], x[36], x[37], x[38], x[39], x[40], x[41], x[42], x[43], x[44], x[45], x[46], x[47], x[48], x[49], x[50], x[51], x[52], x[53], x[54], x[55], x[56], x[57], x[58], x[59], x[60], x[61], x[62], x[63], x[64], x[65], x[66], x[67], x[68], x[69], x[70], x[71], x[72], x[73], x[74], x[75], x[76], x[77], x[78], x[79], x[80], x[81], x[82], x[83], x[84], x[85], x[86], x[87], x[88], x[89], x[90], x[91], x[92], x[93], x[94], x[95], x[96], x[97], x[98], x[99], x[100]], first_fail, indomain_max, complete) minimize INT____00001;