数独算法 X 的时间复杂度是多少?
What is a time complexity for Algorithm X for sudoku?
我发现 here a statement that Algorithm X 数独的时间复杂度为 O(N^3),其中 N 是棋盘大小。
这可能是合乎逻辑的,因为对于数独游戏,要计算的二进制矩阵有 N^3 行。但是 这使得数独问题可以在多项式时间内解决 ,并且数独被认为是 NP 问题,这意味着(据我所知)
不可能总是在多项式时间内求解
可以在多项式时间内验证一个解
那么数独算法 X 的时间复杂度是多少,
是否可以在多项式时间内解决数独问题?
谢谢!
Mathematics of Sudoku 很好地解释了这一点:
The general problem of solving Sudoku puzzles on n^2×n^2 grids of n×n
blocks is known to be NP-complete.
因此,解决数独的任何算法的运行时复杂度至少是 n 的指数级。对于普通的数独 (n = 3) 这意味着 O(N^3) 是完全合理的。
有关 运行 时间的完整分析,请参阅:https://11011110.github.io/blog/2008/01/10/analyzing-algorithm-x.html
据说
even the stupidest version of Algorithm X, one that avoids any chance to backtrack and always chooses its pivots in such a way as to maximize its running time, takes at most O(3n/3)
我发现 here a statement that Algorithm X 数独的时间复杂度为 O(N^3),其中 N 是棋盘大小。
这可能是合乎逻辑的,因为对于数独游戏,要计算的二进制矩阵有 N^3 行。但是 这使得数独问题可以在多项式时间内解决 ,并且数独被认为是 NP 问题,这意味着(据我所知)
不可能总是在多项式时间内求解
可以在多项式时间内验证一个解
那么数独算法 X 的时间复杂度是多少, 是否可以在多项式时间内解决数独问题?
谢谢!
Mathematics of Sudoku 很好地解释了这一点:
The general problem of solving Sudoku puzzles on n^2×n^2 grids of n×n blocks is known to be NP-complete.
因此,解决数独的任何算法的运行时复杂度至少是 n 的指数级。对于普通的数独 (n = 3) 这意味着 O(N^3) 是完全合理的。
有关 运行 时间的完整分析,请参阅:https://11011110.github.io/blog/2008/01/10/analyzing-algorithm-x.html
据说
even the stupidest version of Algorithm X, one that avoids any chance to backtrack and always chooses its pivots in such a way as to maximize its running time, takes at most O(3n/3)