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 | language ESSENCE 1.2.0 $ prob110.essence: Peaceably Co-existing Armies of Queens $ Problem details available in: $ Models and Symmetry Breaking for `Peaceable Armies of Queens' $ B. M. Smith, K. E. Petrie, I. P. Gent. $ Proc. First International Conference on Integration of AI and OR Techniques $ in Constraint Programming for Combinatorial Optimization Problems (CPAIOR $ 2004), LNCS 3011, pp. 271-286, 2004. $ $ 26 July 2007 $ $ n: the side length of the board given n : int (1..) $ Index: square indicies can be between 1 and n on both axes $ Square: a square is a tuple made up of two elements, an x-index and a y-index letting Index be domain int (1..n), Square be domain tuple (Index,Index) $ black: the set of squares that contain a black queen $ white: the set of squares that contain a white queen find black, white : set of Square $ maximise the number of squares that contain queens maximising |black| + |white| such that $ there are an equal number of black and white queens on the board |black| = |white|, $ no row/column/diagonal has both black and white queens on it forAll (rb,cb) in black . forAll (rw,cw) in white . (rb != rw) /\ (cb != cw) /\ (|rw - rb| != |cw - cb|) |