nqueen没有回溯

时间:2013-02-28 12:07:16

标签: algorithm

n queen 问题可以在没有回溯的情况下解决吗?

我遇到了 n queen 问题的许多类型的答案,但所有这些都需要回溯。有没有办法解决它而没有回溯?

3 个答案:

答案 0 :(得分:5)

是。你可以通过生成所有可能的板,然后测试每个板来强制它。

虽然这种方法不能很好地扩展;)

请注意wikipedia article列出了许多解决方案,包括“迭代修复”。

答案 1 :(得分:1)

发展最佳解决方案的遗传算法不需要回溯,但这是一种处理问题的不同方式,而不是遍历状态空间图的算法,而您的问题似乎意味着

答案 2 :(得分:0)

是。维基百科提到了一些,包括一个基于决定因素(我现在很好奇,但没有追查)。让我复制粘贴一个verbatim

  

上述实例可通过以下公式获得。设(i,j)是n×n棋盘上第i列和第j行的平方,k是整数。

  1. 如果n是偶数且n≠6k + 2,则将皇后放在(i,2i)和(n / 2 + i,2i - 1)for i = 1,2,...,n / 2。
  2. 如果n是偶数且n≠6k,则将皇后放在(i,1 +(2i + n / 2 - 3(mod n)))和(n + 1 - i,n - (2i + n / 2 - 3(mod n)))i = 1,2,...,n / 2。
  3. 如果n为奇数,则使用上述模式之一(n - 1)并在(n,n)处添加一个女王。