【问题标题】:Understanding Poly-time Reduction/NP-complete了解多时间缩减/NP 完全
【发布时间】:2020-04-25 18:30:52
【问题描述】:

您好,当问题 X 可简化为 Y 时,我无法理解 X 和 Y 的关系。

在图片的问题中,我特别不明白为什么a和b不正确,如果X不比Y难,那么Y至少和X一样难(?),那么如果X是NP -完全,难道 Y 也至少是 NP 完全的吗?

谢谢

(问题来源:https://introcs.cs.princeton.edu/java/55intractability/

【问题讨论】:

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


    【解决方案1】:

    在这里进行类比推理可能会有所帮助。与其考虑问题和可简化性,不如谈谈人以及他们跑得有多快。

    让我们将 SO 定义为所有使用 Stack Overflow 的人,然后将某人定义为 SO-fast,前提是他们至少可以与使用 Stack Overflow 的任何人一样快。使用堆栈溢出。如果某人使用 Stack Overflow(他们在 SO 中),我们可以说某人是 SO-complete 并且至少可以与 Stack Overflow 上的任何人一样快(他们是SO-快)。

    现在,假设 X 的运行速度不会比 Y 快,并且 Y 是 SO-完全的。这是否意味着 X 绝对 SO 快?可能不是。我们都知道,X 无法超越在 Stack Overflow 上跑得和所有人一样快的人。也许这意味着 X 可以和 Y 一样快地运行,因此也是 SO-快,但 X 更有可能没有那么快。那么,类推,你明白为什么选项(a)不正确了吗?

    接下来,假设 X 的运行速度不会比 Y 快,并且 X 是 SO-完全的。这是否意味着 Y 是 SO 完整的?答案是不。我假设 Usain Bolt 不是 Stack Overflow 用户,但我可以向你保证,Usain Bolt 可以在 Stack Overflow 上跑赢任何人。这意味着 Usain Bolt 是 SO-fast,但不是 SO-complete。请记住,SO-完整性有两个组成部分:您必须速度快,但您还必须是 Stack Overflow 用户。知道您可以超越最快的 Stack Overflow 用户并不能说明您自己是否在 Stack Overflow 上。这是否解释了选项 (b) 不正确的原因?

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 2017-09-19
      • 1970-01-01
      相关资源
      最近更新 更多