最大化董事会得分

Maximize board score

棋盘是一个简单的 31 x 31 棋盘格。

我试过运行一个程序,一次把一个棋子放在任何地方,会给出最高分,但由于每次放置都会影响其他棋子的分数,结果显然是不均匀的接近最优。

找到(或至少接近)得分最高的棋盘状态的最佳方法是什么?

好的解决方案似乎具有一种有趣的结构。这是一个值为 879.25 的解决方案:

0000000000000001000000000000000
0000000000000011100000000000000
0000000000000001000000000000000
0000000000001001001000000000000
0000000000011111111100000000000
0000000000001001001000000000000
0000000000000000000000000000000
0000000011111111111111100000000
0000000111111111111111110000000
0000000000000000000000000000000
0000000000000000000000000000000
0000111111111111111111111110000
0001111111111111111111111111000
0000000000000000000000000000000
0000000000000000000000000000000
1111111111111111111111111111111
0111111111111111111111111111110
0000000000000000000000000000000
0000000000000000000000000000000
0000111111111111111111111110000
0000011111111111111111111100000
0000000000000000000000000000000
0000000000000000000000000000000
0000000011111111111111100000000
0000000001111111111111000000000
0000000000000000000000000000000
0000000000001001001000000000000
0000000000001111111000000000000
0000000000000011000000000000000
0000000000000001000000000000000
0000000000000001000000000000000

我通过模拟退火找到了这个解,以及它的 7 次旋转和反射。

如果你 "guess" 中间的那一堆行如上,你会在所述一堆行的上方和下方得到可管理的小子问题。例如,您可以通过动态规划找到这些子问题的最优解。