1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
on-restart-benchmarks/tests/spec/examples/latin_squares_fd.mzn
Jip J. Dekker fad1b07018 Squashed 'software/minizinc/' content from commit 4f10c8205
git-subtree-dir: software/minizinc
git-subtree-split: 4f10c82056ffcb1041d7ffef29d77a7eef92cf76
2021-06-16 14:06:46 +10:00

364 lines
12 KiB
MiniZinc

/***
!Test
expected:
- !Result
solution: !Solution
x:
- - [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- - [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [1, 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, 1, 0, 0, 0, 0, 0, 0]
- - [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 0, 0, 0, 0, 0, 1, 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]
- - [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- - [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 0, 0, 1, 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, 1, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- - [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- - [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- - [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- !Result
solution: !Solution
x:
- - [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- - [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- - [1, 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, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 0, 0, 1, 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, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 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, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- - [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- - [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- - [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [1, 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, 1]
- [0, 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]
- [0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- !Result
solution: !Solution
x:
- - [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [1, 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, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- - [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [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, 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, 0, 0, 0, 0, 1]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- - [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 1, 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, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- - [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [1, 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, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- - [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- - [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- - [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- - [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- !Result
solution: !Solution
x:
- - [0, 1, 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, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [1, 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, 1]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [1, 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, 1]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 1, 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, 0, 0, 1, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- - [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- - [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [1, 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, 1]
- [0, 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]
- - [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 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, 1]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- - [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- - [1, 0, 0, 0, 0, 0, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0, 0, 0]
- [0, 0, 1, 0, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 0, 1, 0, 0, 0, 0]
- [0, 0, 0, 0, 0, 1, 0, 0, 0]
- [0, 0, 0, 0, 0, 0, 1, 0, 0]
- [0, 0, 0, 0, 0, 0, 0, 1, 0]
- [0, 0, 0, 0, 0, 0, 0, 0, 1]
***/
% latin_squares_fd.mzn
% vim: ft=zinc ts=4 sw=4 et tw=0
% Author: Peter Stuckey
% Edited: Ralph Becket
%
% Latin squares FD only.
int: size = 9;
set of int: range = 1..size;
array[range, range, range] of var 0..1: x;
constraint forall (i, j in range) ((sum (k in range) (x[i,j,k]) = 1));
constraint forall (i, k in range) ((sum (j in range) (x[i,j,k]) = 1));
constraint forall (j, k in range) ((sum (i in range) (x[i,j,k]) = 1));
solve satisfy;
output [ if j = 1 /\ k = 1 then "\n" else "" endif ++
if fix(x[i,j,k]) = 1 then show(k) else "" endif
| i, j, k in range ] ++ ["\n"];