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

167 lines
8.7 KiB
MiniZinc

array [1..6] of int: demand = [0, 11, 11, 11, 11, 1];
array [1..5] of int: maintenance = [2, 4, 5, 9, 12];
array [1..6] of int: supply = [1, 11, 11, 11, 11, 0];
array [1..5] of int: trade_in = [7, 6, 2, 1, 0];
var int: INT____00001 :: is_defined_var :: var_is_introduced;
var int: INT____00002 :: is_defined_var :: var_is_introduced;
var int: INT____00003 :: is_defined_var :: var_is_introduced;
var int: INT____00004 :: is_defined_var :: var_is_introduced;
var int: INT____00005 :: is_defined_var :: var_is_introduced;
var int: INT____00006 :: is_defined_var :: var_is_introduced;
var int: INT____00007 :: is_defined_var :: var_is_introduced;
var int: INT____00008 :: is_defined_var :: var_is_introduced;
var int: INT____00009 :: is_defined_var :: var_is_introduced;
var int: INT____00010 :: is_defined_var :: var_is_introduced;
var int: INT____00011 :: is_defined_var :: var_is_introduced;
var int: INT____00012 :: is_defined_var :: var_is_introduced;
var int: INT____00013 :: is_defined_var :: var_is_introduced;
var int: INT____00014 :: is_defined_var :: var_is_introduced;
var int: INT____00015 :: is_defined_var :: var_is_introduced;
var int: INT____00016 :: is_defined_var :: var_is_introduced;
var int: INT____00017 :: is_defined_var :: var_is_introduced;
var int: INT____00018 :: is_defined_var :: var_is_introduced;
var int: INT____00019 :: is_defined_var :: var_is_introduced;
var int: INT____00020 :: is_defined_var :: var_is_introduced;
var int: INT____00021 :: is_defined_var :: var_is_introduced;
var int: INT____00022 :: is_defined_var :: var_is_introduced;
var int: INT____00023 :: is_defined_var :: var_is_introduced;
var int: INT____00024 :: is_defined_var :: var_is_introduced;
var int: INT____00025 :: is_defined_var :: var_is_introduced;
var int: INT____00026 :: is_defined_var :: var_is_introduced;
var int: INT____00027 :: is_defined_var :: var_is_introduced;
var int: INT____00028 :: is_defined_var :: var_is_introduced;
var int: INT____00029 :: is_defined_var :: var_is_introduced;
var int: INT____00030 :: is_defined_var :: var_is_introduced;
var int: INT____00031 :: is_defined_var :: var_is_introduced;
array [1..30] of var int: cost :: output_array([1..5, 1..6]);
array [1..30] of var int: x :: output_array([1..5, 1..6]);
var int: z :: output_var = INT____00031;
constraint int_eq(cost[2], 7);
constraint int_eq(cost[3], 12);
constraint int_eq(cost[4], 21);
constraint int_eq(cost[5], 31);
constraint int_eq(cost[6], 44);
constraint int_eq(cost[7], 144);
constraint int_eq(cost[9], 7);
constraint int_eq(cost[10], 12);
constraint int_eq(cost[11], 21);
constraint int_eq(cost[12], 31);
constraint int_eq(cost[13], 144);
constraint int_eq(cost[14], 144);
constraint int_eq(cost[16], 7);
constraint int_eq(cost[17], 12);
constraint int_eq(cost[18], 21);
constraint int_eq(cost[19], 144);
constraint int_eq(cost[20], 144);
constraint int_eq(cost[21], 144);
constraint int_eq(cost[23], 7);
constraint int_eq(cost[24], 12);
constraint int_eq(cost[25], 144);
constraint int_eq(cost[26], 144);
constraint int_eq(cost[27], 144);
constraint int_eq(cost[28], 144);
constraint int_eq(cost[30], 7);
constraint int_le(0, cost[1]);
constraint int_le(0, cost[2]);
constraint int_le(0, cost[3]);
constraint int_le(0, cost[4]);
constraint int_le(0, cost[5]);
constraint int_le(0, cost[6]);
constraint int_le(0, cost[7]);
constraint int_le(0, cost[8]);
constraint int_le(0, cost[9]);
constraint int_le(0, cost[10]);
constraint int_le(0, cost[11]);
constraint int_le(0, cost[12]);
constraint int_le(0, cost[13]);
constraint int_le(0, cost[14]);
constraint int_le(0, cost[15]);
constraint int_le(0, cost[16]);
constraint int_le(0, cost[17]);
constraint int_le(0, cost[18]);
constraint int_le(0, cost[19]);
constraint int_le(0, cost[20]);
constraint int_le(0, cost[21]);
constraint int_le(0, cost[22]);
constraint int_le(0, cost[23]);
constraint int_le(0, cost[24]);
constraint int_le(0, cost[25]);
constraint int_le(0, cost[26]);
constraint int_le(0, cost[27]);
constraint int_le(0, cost[28]);
constraint int_le(0, cost[29]);
constraint int_le(0, cost[30]);
constraint int_le(0, x[1]);
constraint int_le(0, x[2]);
constraint int_le(0, x[3]);
constraint int_le(0, x[4]);
constraint int_le(0, x[5]);
constraint int_le(0, x[6]);
constraint int_le(0, x[7]);
constraint int_le(0, x[8]);
constraint int_le(0, x[9]);
constraint int_le(0, x[10]);
constraint int_le(0, x[11]);
constraint int_le(0, x[12]);
constraint int_le(0, x[13]);
constraint int_le(0, x[14]);
constraint int_le(0, x[15]);
constraint int_le(0, x[16]);
constraint int_le(0, x[17]);
constraint int_le(0, x[18]);
constraint int_le(0, x[19]);
constraint int_le(0, x[20]);
constraint int_le(0, x[21]);
constraint int_le(0, x[22]);
constraint int_le(0, x[23]);
constraint int_le(0, x[24]);
constraint int_le(0, x[25]);
constraint int_le(0, x[26]);
constraint int_le(0, x[27]);
constraint int_le(0, x[28]);
constraint int_le(0, x[29]);
constraint int_le(0, x[30]);
constraint int_lin_eq([1, 1, 1, 1, 1], [x[1], x[7], x[13], x[19], x[25]], 0);
constraint int_lin_eq([1, 1, 1, 1, 1], [x[2], x[8], x[14], x[20], x[26]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1], [x[3], x[9], x[15], x[21], x[27]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1], [x[4], x[10], x[16], x[22], x[28]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1], [x[5], x[11], x[17], x[23], x[29]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1], [x[6], x[12], x[18], x[24], x[30]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[1], x[2], x[3], x[4], x[5], x[6]], 1);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[7], x[8], x[9], x[10], x[11], x[12]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[13], x[14], x[15], x[16], x[17], x[18]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[19], x[20], x[21], x[22], x[23], x[24]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[25], x[26], x[27], x[28], x[29], x[30]], 11);
constraint int_lin_eq([-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [INT____00031, INT____00001, INT____00002, INT____00003, INT____00004, INT____00005, INT____00006, INT____00007, INT____00008, INT____00009, INT____00010, INT____00011, INT____00012, INT____00013, INT____00014, INT____00015, INT____00016, INT____00017, INT____00018, INT____00019, INT____00020, INT____00021, INT____00022, INT____00023, INT____00024, INT____00025, INT____00026, INT____00027, INT____00028, INT____00029, INT____00030], 0) :: defines_var(INT____00031);
constraint int_times(x[1], cost[1], INT____00001) :: defines_var(INT____00001);
constraint int_times(x[2], cost[2], INT____00002) :: defines_var(INT____00002);
constraint int_times(x[3], cost[3], INT____00003) :: defines_var(INT____00003);
constraint int_times(x[4], cost[4], INT____00004) :: defines_var(INT____00004);
constraint int_times(x[5], cost[5], INT____00005) :: defines_var(INT____00005);
constraint int_times(x[6], cost[6], INT____00006) :: defines_var(INT____00006);
constraint int_times(x[7], cost[7], INT____00007) :: defines_var(INT____00007);
constraint int_times(x[8], cost[8], INT____00008) :: defines_var(INT____00008);
constraint int_times(x[9], cost[9], INT____00009) :: defines_var(INT____00009);
constraint int_times(x[10], cost[10], INT____00010) :: defines_var(INT____00010);
constraint int_times(x[11], cost[11], INT____00011) :: defines_var(INT____00011);
constraint int_times(x[12], cost[12], INT____00012) :: defines_var(INT____00012);
constraint int_times(x[13], cost[13], INT____00013) :: defines_var(INT____00013);
constraint int_times(x[14], cost[14], INT____00014) :: defines_var(INT____00014);
constraint int_times(x[15], cost[15], INT____00015) :: defines_var(INT____00015);
constraint int_times(x[16], cost[16], INT____00016) :: defines_var(INT____00016);
constraint int_times(x[17], cost[17], INT____00017) :: defines_var(INT____00017);
constraint int_times(x[18], cost[18], INT____00018) :: defines_var(INT____00018);
constraint int_times(x[19], cost[19], INT____00019) :: defines_var(INT____00019);
constraint int_times(x[20], cost[20], INT____00020) :: defines_var(INT____00020);
constraint int_times(x[21], cost[21], INT____00021) :: defines_var(INT____00021);
constraint int_times(x[22], cost[22], INT____00022) :: defines_var(INT____00022);
constraint int_times(x[23], cost[23], INT____00023) :: defines_var(INT____00023);
constraint int_times(x[24], cost[24], INT____00024) :: defines_var(INT____00024);
constraint int_times(x[25], cost[25], INT____00025) :: defines_var(INT____00025);
constraint int_times(x[26], cost[26], INT____00026) :: defines_var(INT____00026);
constraint int_times(x[27], cost[27], INT____00027) :: defines_var(INT____00027);
constraint int_times(x[28], cost[28], INT____00028) :: defines_var(INT____00028);
constraint int_times(x[29], cost[29], INT____00029) :: defines_var(INT____00029);
constraint int_times(x[30], cost[30], INT____00030) :: defines_var(INT____00030);
solve minimize INT____00031;