找到数独难题的解决方案与证明该解决方案是唯一解决方案之间,有多少复杂性差异?


14

因此通常Sudoku是,但是这个问题扩展到谜题,并且。有许多多项式时间推导规则可以在寻找数独难题的解决方案方面取得进展。但是,有时可能需要猜测值和以下结论链以消除单元格的值或单元格的值的组合。但是,一旦找到有效的解决方案,就不能保证该解决方案是唯一的。一个有效的数独谜题应该只有一个有效的解决方案,但是在生成随机谜题时,这可能需要额外的计算才能进行验证。9×9ñ2×ñ2ñ>3

所以,我的问题是,如果我们允许一组多项式时间推导规则(例如,数独策略中描述的最常见的规则集)以及猜测值和遵循结论,那么确定存在多少困难呢?针对给定难题的独特解决方案,而不是就非唯一解决方案的数量仅找到一个解决方案?某些类别的拼图是否有渐近差异?

Answers:


14


谢谢,我不确定我是否能足够准确地提出我的问题,但这真是令人头疼。因此,即使我们找到一个解决方案,也知道是否还有另一个解决方案是NP-complete。干净整洁!谢谢您+1
user2566092 2015年

1

如果我对您的理解正确,那么您正在尝试检查软件生成的Sudoku难题,以查看它们是否有效。

如果只对“有效”感兴趣,那么Yuval Filmus已经为您指出了NP完整的证明。

但是,如果要找到一个人会喜欢解决的新数独难题的目的,那么问题就不会那么困难了。(由于猜谜无法使用“逻辑”解决,因此不得不猜测很多值是没有意思的!)因此,就我个人而言,我将猜测的数量限制为最多4个,并拒绝所有无法证明具有在您认为合理的范围内的独特解决方案。

进行上述操作,使用标准回溯访问所有可能的猜测(在您的限制范围内),并表明只有一种解决方案比NP完成容易得多。

此外,您可以根据谜题所需的推理规则的复杂性和所需的猜测次数来对谜题进行评分。


0

为了证明一个谜题是唯一的,必须将必须进行猜测的任何单元都分支。当进行搜索以简单地找到答案时,通常通过回溯来完成,其中解决方案是决策树中通向完整电路板的第一条路径。为了证明唯一性,您必须证明只有一条路径可以得出有效的解决方案。在这里,很难根据运行时间来定义事物。复杂性与当前的实际问题极为相关。如果您正在考虑的是最不可能发生的最坏情况,则可以将它们视为相同的复杂性。

在最坏的情况下,进行求解时,解决方案位于可以搜索的树的最终可能分支内。必须搜索整个树才能找到它,而唯一性的搜索也需要相同的搜索,并且要经过完全相同的路径。

然而,实际上并非如此,在几乎所有涉及搜索组合设计的案例中,搜索一个解决方案总是比搜索所有解决方案更快。

通常,这两个问题在指数运行时都已根深蒂固,即使不是更糟。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.