【问题标题】:Understanding Poly-time Reduction/NP-complete了解多时间缩减/NP 完全
【发布时间】:2020-04-25 18:30:52
【问题描述】:
【问题讨论】:
标签:
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) 不正确的原因?
希望这会有所帮助!