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.

61 lines
1.0 KiB
MiniZinc

/***
!Test
expected:
- !Result
solution: !Solution
q: [2, 4, 6, 8, 3, 1, 7, 5]
- !Result
solution: !Solution
q: [2, 5, 7, 1, 3, 8, 6, 4]
- !Result
solution: !Solution
q: [2, 5, 7, 4, 1, 8, 6, 3]
- !Result
solution: !Solution
q: [2, 6, 1, 7, 4, 8, 3, 5]
- !Result
solution: !Solution
q: [2, 6, 8, 3, 1, 4, 7, 5]
- !Result
solution: !Solution
q: [2, 7, 3, 6, 8, 5, 1, 4]
- !Result
solution: !Solution
q: [2, 7, 5, 8, 1, 4, 6, 3]
- !Result
solution: !Solution
q: [2, 8, 6, 1, 3, 5, 7, 4]
***/
% n-queens example in Zinc using CP techniques
% By Reza Rafeh July 2005
% MiniZinc version
% Peter Stuckey September 30 2006
int: n = 8;
array [1..n] of var 1..n: q :: add_to_output;
constraint
alldifferent(q) % rows
/\
alldifferent(i in 1..n)(q[i] + i-1) % diagonals
/\
alldifferent(i in 1..n)(q[i] + n-i);
constraint q[1] = 2;
%constraint q[2] = 1;
include "alldifferent.mzn";
solve ::
int_search(
q,
first_fail,
indomain_min,
complete
)
satisfy;