这篇文章的目的主要是为相关研究提供关键词。
无约束的N-ook问题
计算N×M(N <= M)棋盘上N个菜鸟的所有可能排列,以使没有菜鸟互相攻击。
解决方案很简单:C(M,N)N!
约束N-ook问题
您不能在国际象棋棋盘的某些地方放一个车子。
例如,如果国际象棋棋盘以0-1矩阵表示,则其中0是您不能放车的地方。所以矩阵的解决方案
1 1 1
1 1 1
0 1 1
是4:
R . . | R . . | . R . | . . R
. R . | . . R | R . . | R . .
. . R | . R . | . . R | . R .
相关问题
可以轻松解决N-Queen问题中的回溯算法。但是,现在我想解决N = 28附近的问题。即使wiki说
,此解决方案也无法一一计算。27×27板是已被完全枚举的最高阶板。
加速的机会
到目前为止,我还想过一些机会来加快算法的速度。
=====无约束子矩阵的框架=====
这是分而治之的方法。例如上面的矩阵
1 1 1
1 1 1
0 1 1
可以分为
A B
1 1 1 | 0 1 1
1 1 1 |
,解等于sol(A)* sol(B),其中sol(A)= 2!可以立即进行计算(阶乘比回溯要快得多)。
=============重新排列=============
有时重排可以帮助划分子问题。例如矩阵
1 1 1
1 0 1
1 1 1
等同于
1 1 1
1 1 1
0 1 1
问题
答案 0 :(得分:4)
rook多项式, rook系数,限制排列和永久是关键字。
来自Algorithm for Finding the Coefficients of Rook Polynomials的定理3.1
n个对象与限制板B的排列数量等于B的permanent。
这是我们在问题中定义的B,即0-1矩阵,其中1可以,而0则限制为新秀。 因此,现在我们需要有效地计算矩阵的永久性。
幸运的是,从此code golf开始,Ton Hospel将Glynn formula与Gray code和Ryser formula一起使用,在测试仪的系统上达到约57秒,n = 36,这对于提问者的情况已经足够了。