【问题标题】:How reduction is used to prove hardness through contradiction?如何通过反证化简来证明硬度?
【发布时间】:2023-03-23 03:24:02
【问题描述】:

我不是参加计算复杂性课程的学生,只是对这个主题感兴趣。我遇到了这个部分:

假设我们有一个已经证明很难解决的问题, 我们有一个类似的新问题。我们可能会怀疑它也是 很难解决。我们通过矛盾来争论:假设新问题是 很容易解决。那么,如果我们能证明旧的每一个实例 问题可以很容易地通过将其转换为实例来解决 新问题和解决那些问题,我们有矛盾。这 确定新问题也很困难。

来源:Wikipedia

我似乎无法理解这意味着什么。你能用外行的术语(尽可能地)解释这个过程,这样的矛盾证明是如何工作的?

我们知道旧问题很难但我们能够将其简化为新问题并解决这意味着旧问题至少和新问题一样容易的矛盾吗?这整个想法让我感到困惑。谁能给我解释一下,谁在计算复杂性理论方面没有扎实的背景?

【问题讨论】:

    标签: complexity-theory reduction np np-complete computation


    【解决方案1】:

    假设我们知道任务 A 是一项艰巨的任务。现在假设我们得到了任务 B,并要求我们确定它是否难。假设我们找到了一种方法,可以有效地将任务 A 分解为几个部分,每个部分都变成了任务 B。也就是说,任务 A 可以通过执行少量任务 B 轻松执行。现在,任务 B 容易吗?如果是这样,那我也可以轻松完成任务A。但这将是一个矛盾,因为我知道任务 A 很难。因此,任务 B 也一定很困难。

    重要的是要注意,任务 A 的所有情况都必须减少到 B 才能成立。如果只是某些情况,那么 B 可能很容易,但通常仍然不能为 A 提供简单的解决方案,因此不一定存在矛盾。此外,如果将 A 归约到 B 需要很多时间(即归约本身很困难),那么如果 B 很容易,则不一定存在矛盾。

    【讨论】:

    • 说得很漂亮。谢谢。
    • 后续问题:如果任务 B 有可能实际上很简单,我们稍后会发现它确实很简单。这是否意味着现在任务 A 和任务 B 一样简单,这意味着整个 NP 子集自行折叠(如 NP 完备性)以形成一个大的 P 类?
    • 如果 B 变得容易,那么 A 也是如此,以及之前认为是艰巨的任务。这相当于表明 P=NP。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多