如何用还原法通过反证法证明硬度?
How reduction is used to prove hardness through contradiction?
我不是学习计算复杂性课程的学生,只是对这门学科感兴趣。我遇到了这个部分:
Suppose we have a problem that we've proven is hard to solve,
and we have a similar new problem. We might suspect that it is also
hard to solve. We argue by contradiction: suppose the new problem is
easy to solve. Then, if we can show that every instance of the old
problem can be solved easily by transforming it into instances of the
new problem and solving those, we have a contradiction. This
establishes that the new problem is also hard.
来源:Wikipedia
我似乎无法理解这意味着什么。您能否用外行的术语(尽可能多地)解释这个过程,这样的反证法是如何工作的?
我们知道旧问题很难但我们能够将它简化为一个新问题并且解决这意味着旧问题至少和新问题一样容易,这是否矛盾?这整个想法让我感到困惑。谁能给我解释一下,我这个没有扎实的计算复杂性理论背景的人?
假设我们知道任务 A 是一项艰巨的任务。现在假设给我们任务 B 并要求确定它是否困难。假设我们找到了一种有效地将任务 A 分解为几个部分的方法,每个部分最终都是任务 B。也就是说,任务 A 可以通过执行少量任务 B 轻松完成。现在,任务 B 可以简单吗?如果是,那么我也可以轻松完成任务 A。不过,这将是一个矛盾,因为我知道任务 A 很难。因此,任务 B 也一定很难。
重要的是要注意,任务 A 的所有情况都必须归结为 B 才能成立。如果只是某些情况,那么 B 可能很容易,但总体上仍然不能为 A 提供简单的解决方案,因此不一定存在矛盾。此外,如果将 A 减少到 B 需要很多时间(即减少本身很难),那么如果 B 很容易,则不一定存在矛盾。
我不是学习计算复杂性课程的学生,只是对这门学科感兴趣。我遇到了这个部分:
Suppose we have a problem that we've proven is hard to solve, and we have a similar new problem. We might suspect that it is also hard to solve. We argue by contradiction: suppose the new problem is easy to solve. Then, if we can show that every instance of the old problem can be solved easily by transforming it into instances of the new problem and solving those, we have a contradiction. This establishes that the new problem is also hard.
来源:Wikipedia
我似乎无法理解这意味着什么。您能否用外行的术语(尽可能多地)解释这个过程,这样的反证法是如何工作的?
我们知道旧问题很难但我们能够将它简化为一个新问题并且解决这意味着旧问题至少和新问题一样容易,这是否矛盾?这整个想法让我感到困惑。谁能给我解释一下,我这个没有扎实的计算复杂性理论背景的人?
假设我们知道任务 A 是一项艰巨的任务。现在假设给我们任务 B 并要求确定它是否困难。假设我们找到了一种有效地将任务 A 分解为几个部分的方法,每个部分最终都是任务 B。也就是说,任务 A 可以通过执行少量任务 B 轻松完成。现在,任务 B 可以简单吗?如果是,那么我也可以轻松完成任务 A。不过,这将是一个矛盾,因为我知道任务 A 很难。因此,任务 B 也一定很难。
重要的是要注意,任务 A 的所有情况都必须归结为 B 才能成立。如果只是某些情况,那么 B 可能很容易,但总体上仍然不能为 A 提供简单的解决方案,因此不一定存在矛盾。此外,如果将 A 减少到 B 需要很多时间(即减少本身很难),那么如果 B 很容易,则不一定存在矛盾。