git-subtree-dir: software/minizinc git-subtree-split: 4f10c82056ffcb1041d7ffef29d77a7eef92cf76
1063 lines
11 KiB
MiniZinc
1063 lines
11 KiB
MiniZinc
/***
|
|
!Test
|
|
check_against: []
|
|
expected:
|
|
- !Result
|
|
solution: !Solution
|
|
a:
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- - 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 4
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
col_sums:
|
|
- 2
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 5
|
|
- 2
|
|
- 3
|
|
- 1
|
|
- 4
|
|
- 2
|
|
row_sums:
|
|
- 3
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 2
|
|
- 2
|
|
- 1
|
|
- !Result
|
|
solution: !Solution
|
|
a:
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
col_sums:
|
|
- 2
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 5
|
|
- 2
|
|
- 3
|
|
- 1
|
|
- 4
|
|
- 2
|
|
row_sums:
|
|
- 3
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 2
|
|
- 2
|
|
- 1
|
|
- !Result
|
|
solution: !Solution
|
|
a:
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 4
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
col_sums:
|
|
- 2
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 5
|
|
- 2
|
|
- 3
|
|
- 1
|
|
- 4
|
|
- 2
|
|
row_sums:
|
|
- 3
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 2
|
|
- 2
|
|
- 1
|
|
- !Result
|
|
solution: !Solution
|
|
a:
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 4
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
col_sums:
|
|
- 2
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 5
|
|
- 2
|
|
- 3
|
|
- 1
|
|
- 4
|
|
- 2
|
|
row_sums:
|
|
- 3
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 2
|
|
- 2
|
|
- 1
|
|
- !Result
|
|
solution: !Solution
|
|
a:
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- - 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 4
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
col_sums:
|
|
- 2
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 5
|
|
- 2
|
|
- 3
|
|
- 1
|
|
- 4
|
|
- 2
|
|
row_sums:
|
|
- 3
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 2
|
|
- 2
|
|
- 1
|
|
- !Result
|
|
solution: !Solution
|
|
a:
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- - 0
|
|
- 1
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 2
|
|
- 0
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 3
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- - 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
- 0
|
|
col_sums:
|
|
- 2
|
|
- 1
|
|
- 0
|
|
- 0
|
|
- 5
|
|
- 2
|
|
- 3
|
|
- 1
|
|
- 4
|
|
- 2
|
|
row_sums:
|
|
- 3
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 2
|
|
- 2
|
|
- 1
|
|
extra_files: []
|
|
markers: []
|
|
options:
|
|
all_solutions: false
|
|
solvers:
|
|
- gecode
|
|
- cbc
|
|
- chuffed
|
|
type: solve
|
|
|
|
***/
|
|
|
|
% Example battleships problem for battleships.mzn.
|
|
%
|
|
include "battleships.mzn.model";
|
|
|
|
n = 10;
|
|
|
|
a = array2d(ROW, COL,
|
|
[| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
| 0, _, _, _, _, _, _, _, _, _, _, 0
|
|
| 0, _, _, _, _, _, _, _, _, _, _, 0
|
|
| 0, _, _, _, _, _, _, _, _, _, _, 0
|
|
| 0, _, _, _, _, _, _, _, _, _, _, 0
|
|
| 0, _, _, _, _, _, _, _, _, _, _, 0
|
|
| 0, _, _, _, _, _, _, _, _, _, _, 0
|
|
| 0, _, _, _, _, _, _, _, _, _, _, 0
|
|
| 0, _, _, _, _, _, _, _, 0, _, 0, 0
|
|
| 0, _, _, _, _, _, _, _, _, 0, _, 0
|
|
| 0, _, _, _, _, _, _, _, _, _, _, 0
|
|
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
|]
|
|
);
|
|
|
|
constraint a[8, 10] > 0;
|
|
|
|
row_sums = [3, 2, 3, 4, 0, 1, 2, 2, 2, 1];
|
|
|
|
col_sums = [2, 1, 0, 0, 5, 2, 3, 1, 4, 2];
|
|
|
|
n_classes = 4;
|
|
|
|
class_sizes = [4, 3, 2, 1];
|
|
|