【问题标题】:If a problem A ≤p B, then that B ≤p A, prove or disprove如果一个问题 A ≤p B,那么 B ≤p A,证明或反证
【发布时间】:2023-08-08 13:00:01
【问题描述】:

如何正式证明或反证如果一个问题 A ≤p B,那么 B ≤p A

我直觉上认为这应该被证伪,但我不知道该怎么做。

【问题讨论】:

  • 找一个反例。
  • 您对 2 个众所周知的问题有什么建议可以作为反例吗?
  • 我投票结束这个问题,因为它是一个计算机科学问题(计算理论),而不是一个计算机编程问题。

标签: computer-science proof np discrete


【解决方案1】:

考虑以下问题:给定一个判定器 M 和一个字符串 x,确定 M 是否接受 x。因为 M 是一个决策者,我们总是可以在 x 上运行 M 来得到我们的答案。其时间复杂度完全取决于 M 决定什么语言以及它是如何决定的。

现在,对于问题 (M, x),创建一个新问题,如下所示。让 M' 成为一个新的 TM:每当 M 停止接受时,M' 停止接受,而每当 M 停止拒绝时,M' 进入无限循环。我们的新问题是:给定 (M', x),M' 会在 x 处停止吗?

第一个问题的实例可以在多项式时间内转换为第二个问题的实例;第二个问题的解决方案可以在多项式时间内转换回第一个问题的实例。这意味着第一个问题可以多项式时间简化为第二个问题。事实上,如果我们有一个解决停机问题的 TM,我们可以使用这种结构来解决每个具有多项式开销的成员问题。

现在,停止问题多项式时间是否可以简化为确定任意决策器 M 是否接受某个字符串 x 的问题?显然不是。我们可以选择 M 作为接受偶数长度字符串的 TM。然后是决定“M 是否接受 x?”的时间复杂度。问题大小是线性的。如果停止问题是多项式时间可简化为这个,那么停止问题将在 P - 显然不是这种情况。

【讨论】: