Download
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
language ESSENCE 1.3.0
 
$ Problem Alien Tiles
$
$ Problem details available at http://www.csplib.org/Problems/prob027/
$
$ Essence model by Andrew Martin
$
$ Licenced under CC-BY-4.0 : http://creativecommons.org/licenses/by/4.0/
 
 
given gridSize : int(1..)
given colours : int(1..)
 
letting dGridSize be domain int(1..gridSize)
letting dColours be domain int(0..colours-1)
 
$ colours moves is always equal to no moves
find clickMatrix : matrix indexed by [dGridSize, dGridSize] of dColours
 
maximising (sum i,j : dGridSize . clickMatrix[i][j])
 
such that
    $ no way of reaching same state faster exists
    forAll simplerClickMatrix : matrix indexed by [dGridSize, dGridSize] of dColours .
 
        $ ensure not faster
        (sum i,j : dGridSize . clickMatrix[i][j]) <= (sum i,j : dGridSize . simplerClickMatrix[i][j])
        \/
         
        $ ensure not same (for each tile, check if sum of clicks effecting it %colours same as other clickmatrix)
        exists x,y : dGridSize .
 
            ((sum index : dGridSize . clickMatrix[index][y] + clickMatrix[x][index]) - clickMatrix[x][y]) % colours
            !=
            ((sum index : dGridSize . simplerClickMatrix[index][y] + simplerClickMatrix[x][index]) - simplerClickMatrix[x][y]) % colours