如果我可以解决数独问题,可以解决旅行商问题(TSP)吗?如果是这样,怎么办?


23

我们说有一个程序,如果您提供任意大小的部分填充的数独,它会为您提供相应的完整数独。

您可以将此程序视为黑匣子,并用它来解决TSP吗?我的意思是,有一种方法可以将TSP问题表示为部分填充的Sudoku,以便如果我给您Sudoku的答案,您可以在多项式时间内告诉TSP解决方案?

如果是,怎么办?如何将TSP表示为部分填充的数独,并为结果解释相应的填充的数独。


1
本文的权利要求给予从数独,以哈密顿圈问题的建设性减少:sciencedirect.com/science/article/pii/S097286001630038X
cwindolf

@ C.Windolf问题正在寻找另一个方向。(实际上,有一个删除的答案犯了同样的错误,并引用了相同的论文。)
David Richerby

Answers:


32

对于9x9 Sudoku,不。它是有限的,因此可以在O(1)时间内求解。

但是,如果您有一个n2×n2 Sudoku 的求解器,该求解器适用于所有n和所有可能的部分电路板,并且在多项式时间内运行,那么可以,它可以用来在多项式时间内求解TSP,因为完成了n2×n2数独是NP完全的。

NP完全性的证明是通过将某些NP完全性问题R简化为Sudoku来实现的。然后因为R是NP完全的,所以可以从TSP减少到R(遵循NP完全性的定义);并将这些减少量链接在一起,便可以使用Sudoku求解器来求解TSP。


1
你能解释一下吗?是的,假设我有一般的数独求解器,它充当黑匣子。那么如何使用它呢?您如何将TSP表示为部分填充的数独
Chakrapani N Rao

2
@ChakrapaniNRao,请参阅更新的答案。是的,我知道这是一个黑匣子。要确定细节,请找到Sudoku的NP完全性证明,并了解减少的工作原理。
DW

8
n2×n2

8
@ChakrapaniNRao您正在询问如何使用问题Y的黑匣子解决问题X。这实际上是在要求简化。这就是“减少”的意思。而且,正如该答案所解释的那样,您的是/否问题的答案是是。
David Richerby

2
@SolomonUcko,嗯,不,不一定。问题提出:如果我们有Sudoku求解器,是否可以用它来求解TSP?答案是肯定的,我们可以。我解释一下。这将为您提供一种解决数独问题的方法,速度与数独解算器解决数独一样快。如果Sudoku求解器在多项式时间内运行,这将为您提供一种在多项式时间内求解TSP的方法。如果Sudoku求解器在次指数时间内运行,这将为您提供一种在次指数时间内求解TSP的方法。等等。
DW

26

确实有可能使用通用的Sudoku求解器来求解TSP的实例,并且如果该求解器需要多项式时间,那么整个过程也会一样(用复杂度术语来说,从TSP到Sudoku的多项式时间都减少了)。这是因为Sudoku是NP完全的,而TSP在NP中。但是,与该区域的通常情况一样,查看减少的细节并不是特别有启发性。如果你愿意,你可以通过使用拉丁方完成简单减少到数独拼凑它在这里,从三角均匀三方图表以拉丁方完成的减小在这里,从3SAT三角测量还原这里,并将TSP公式化为3SAT问题。但是,如果您想了解从Sudoku简化为TSP的想法,我认为您最好研究一下Cook的定理(表明SAT是NP完全的)和从3SAT进行一些简单的简化(例如到3维匹配)并且对TSP-Sudoku减少是一样的事情感到满意,但时间更长,更轻松。

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.