数独算法 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)

将算法放在 exponential running time (EXPTIME).