我正在解决N皇后问题,而当N = 8时我面临一个问题。当N = 8时,算法陷入无限循环。不幸的是,由于我已签署一项保证书,因此我无法与您共享代码,但我希望我能说清楚。让我们进行以下配置:
. 0 1 2 3 4 5
0 - - - - - Q
1 - - - Q - -
2 - Q - - - -
3 - - - - Q -
4 - - Q - - -
5 - - - - - Q
我的代码将随机抽取一行,计算每个单元格上的威胁,然后将女王移动到最小威胁单元格。在这种情况下,行1、2、3和4不能更改,因为女王/王后位于威胁最小的单元中。第0行和第1行可以移到最左侧,但它们仍将彼此对待。这会使算法陷入无限循环。
答案 0 :(得分:0)
在没有发布任何代码或详细算法的情况下,您确实没有一个 solid 堆栈溢出问题。但是,我正在处理我们可以提供帮助的部分:您采用通用方法探索搜索空间的一般方法。如果回溯实施不当,这似乎是一个问题。
我看到两个问题:
我希望这会有所帮助。