open_stacks_tiny.fzn
3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
array [1..2] of int: X_INTRODUCED_11_ = [1,-1];
array [1..3] of int: X_INTRODUCED_12_ = [1,0,1];
array [1..3] of int: X_INTRODUCED_16_ = [1,-1,-1];
array [1..3] of int: X_INTRODUCED_17_ = [0,0,0];
var 1..3: X_INTRODUCED_0_;
var 1..3: X_INTRODUCED_1_;
var 1..3: X_INTRODUCED_2_;
var 0..2: X_INTRODUCED_5_:: is_defined_var;
var 0..2: X_INTRODUCED_6_:: is_defined_var;
var 0..1: objective:: output_var;
var 0..1: X_INTRODUCED_13_ ::var_is_introduced :: is_defined_var;
var 0..1: X_INTRODUCED_20_ ::var_is_introduced :: is_defined_var;
var 0..1: X_INTRODUCED_24_ ::var_is_introduced :: is_defined_var;
var bool: X_INTRODUCED_28_ ::var_is_introduced :: is_defined_var;
var 0..1: X_INTRODUCED_29_ ::var_is_introduced :: is_defined_var;
var bool: X_INTRODUCED_30_ ::var_is_introduced :: is_defined_var;
var 0..1: X_INTRODUCED_31_ ::var_is_introduced :: is_defined_var;
var bool: X_INTRODUCED_32_ ::var_is_introduced :: is_defined_var;
var bool: X_INTRODUCED_33_ ::var_is_introduced :: is_defined_var;
var bool: X_INTRODUCED_34_ ::var_is_introduced :: is_defined_var;
var 0..1: X_INTRODUCED_35_ ::var_is_introduced :: is_defined_var;
var 0..1: X_INTRODUCED_42_ ::var_is_introduced :: is_defined_var;
array [1..3] of var int: s:: output_array([1..3]) = [X_INTRODUCED_0_,X_INTRODUCED_1_,X_INTRODUCED_2_];
array [1..8] of var int: o:: output_array([1..2,0..3]) = [0,X_INTRODUCED_13_,X_INTRODUCED_5_,X_INTRODUCED_6_,0,0,0,0];
constraint int_lin_ne(X_INTRODUCED_11_,[X_INTRODUCED_0_,X_INTRODUCED_1_],0);
constraint int_lin_ne(X_INTRODUCED_11_,[X_INTRODUCED_0_,X_INTRODUCED_2_],0);
constraint int_lin_ne(X_INTRODUCED_11_,[X_INTRODUCED_1_,X_INTRODUCED_2_],0);
constraint array_int_element(X_INTRODUCED_0_,X_INTRODUCED_12_,X_INTRODUCED_13_):: defines_var(X_INTRODUCED_13_);
constraint array_int_element(X_INTRODUCED_0_,X_INTRODUCED_17_,0);
constraint array_int_element(X_INTRODUCED_1_,X_INTRODUCED_12_,X_INTRODUCED_20_):: defines_var(X_INTRODUCED_20_);
constraint int_lin_eq(X_INTRODUCED_16_,[X_INTRODUCED_5_,X_INTRODUCED_13_,X_INTRODUCED_20_],0):: defines_var(X_INTRODUCED_5_);
constraint array_int_element(X_INTRODUCED_1_,X_INTRODUCED_17_,0);
constraint array_int_element(X_INTRODUCED_2_,X_INTRODUCED_12_,X_INTRODUCED_24_):: defines_var(X_INTRODUCED_24_);
constraint int_lin_eq(X_INTRODUCED_16_,[X_INTRODUCED_6_,X_INTRODUCED_5_,X_INTRODUCED_24_],0):: defines_var(X_INTRODUCED_6_);
constraint array_int_element(X_INTRODUCED_2_,X_INTRODUCED_17_,0);
constraint int_max(X_INTRODUCED_31_,X_INTRODUCED_29_,X_INTRODUCED_42_):: defines_var(X_INTRODUCED_42_);
constraint int_max(X_INTRODUCED_35_,X_INTRODUCED_42_,objective):: defines_var(objective);
constraint int_le_reif(1,X_INTRODUCED_13_,X_INTRODUCED_28_):: defines_var(X_INTRODUCED_28_);
constraint bool2int(X_INTRODUCED_28_,X_INTRODUCED_29_):: defines_var(X_INTRODUCED_29_);
constraint int_le_reif(1,X_INTRODUCED_5_,X_INTRODUCED_30_):: defines_var(X_INTRODUCED_30_);
constraint bool2int(X_INTRODUCED_30_,X_INTRODUCED_31_):: defines_var(X_INTRODUCED_31_);
constraint int_le_reif(1,X_INTRODUCED_6_,X_INTRODUCED_32_):: defines_var(X_INTRODUCED_32_);
constraint int_le_reif(X_INTRODUCED_5_,1,X_INTRODUCED_33_):: defines_var(X_INTRODUCED_33_);
constraint array_bool_and([X_INTRODUCED_32_,X_INTRODUCED_33_],X_INTRODUCED_34_):: defines_var(X_INTRODUCED_34_);
constraint bool2int(X_INTRODUCED_34_,X_INTRODUCED_35_):: defines_var(X_INTRODUCED_35_);
solve :: int_search(s,input_order,indomain_min,complete) minimize objective;