Earlier quoted context omitted.
I wrote a simple genetic algorithm in C, took about 30 minutes, but I suspect a break-it-down approach starting at small blocks and working up might work better. It did 13x13 really fast but I have a hunch it might not work very well for 17x17... ( Link: http://pastebin.com/m51149dd9 )
Out of curiosity, what's the lowest score you've seen on 17x17 so far?
1 0 1 0 2 0 2 1 0 2 1 3 3 2 3 3 1
3 3 0 3 1 2 3 0 0 1 1 1 2 2 2 0 1
3 2 3 2 2 0 1 0 3 0 3 3 1 1 0 2 1
0 3 1 2 1 1 2 3 1 0 3 0 0 3 2 0 2
0 1 1 3 3 3 1 0 1 1 2 2 3 2 0 2 0
3 1 2 2 3 1 0 1 0 3 0 2 0 3 0 1 2
1 1 1 2 0 2 3 2 3 3 0 0 1 2 0 0 3
2 2 0 0 3 1 0 1 3 1 3 0 1 2 1 3 2
0 0 2 0 0 2 0 3 1 2 1 2 1 3 3 1 3
3 2 2 1 0 3 0 1 1 0 3 1 2 0 3 2 3
1 3 3 0 1 3 2 2 1 3 0 2 2 0 1 3 0
2 3 2 1 2 1 1 2 0 0 1 0 3 0 2 3 3
1 0 3 3 2 2 1 0 2 3 2 1 0 0 3 1 2
0 2 1 1 0 3 3 2 0 2 2 3 0 3 1 1 0
2 1 3 2 3 0 0 3 2 2 1 3 2 1 1 0 0
0 2 0 1 1 0 3 3 2 3 3 2 3 0 2 1 1
2 0 0 3 1 2 2 3 3 0 0 1 1 1 3 2 0