如何使用Java解决数独难题网格大小400 * 400

时间:2017-04-25 06:42:52

标签: java multithreading algorithm

我正在研究一个java项目来解决一个400 * 400网格大小的数独。我已经使用了回溯递归来解决它,但它没有给我解决方案的复杂性。我想知道是否有任何其他算法可以处理这种类型的数独网格。请帮忙。

1 个答案:

答案 0 :(得分:0)

正如@RealSkeptic在评论中指出的那样。数独是NP完全的。这意味着可以在多项式边界内检查实例,具体取决于输入大小。由于您使用多线程标记了您的问题,我建议进行以下分解。

  1. 生成合适的候选解决方案
  2. 检查每位候选人
  3. 两个可以快速完成所有意图和目的。一个是挑战。

    我会尝试某种形式的[constaint programming] [1]来减少每个单元格可以拥有的选项数量。然后散列出过程以尝试每种情况,基本上是并行回溯。

    [1] https://en.wikipedia.org/wiki/Constraint_programming