【问题标题】:Is it necessary for NP problems to be decision problems ?NP问题有必要成为决策问题吗?
【发布时间】:2013-01-25 18:54:02
【问题描述】:

斯坦福大学的 Tim Roughgarden 教授在教授 MOOC 时说,NP 类问题的解决方案必须是多项式长度。但是wikipedia article 说 NP 问题是决策问题。那么什么类型的问题基本上属于 NP 类?并且没有必要说这些问题的解决方案具有多项式长度输出(因为决策问题必须输出 0 或 1)?

【问题讨论】:

  • 有一个 cs-theory 堆栈交换站点。
  • @igon CSTheory 用于研究级问题,cs.SE 用于此类问题。

标签: algorithm np-complete np


【解决方案1】:

NP的标准定义是它只是一类决策问题。决策问题总是产生是/否的答案,因此具有恒定大小的输出。

【讨论】:

    【解决方案2】:

    s没有观看视频/课程,但我猜他说的是证书/验证,而不是解决方案。大不同。

    【讨论】:

    • 你指的是什么证书或验证?
    • @NikunjBanka:有一个使用可以在多项式时间内验证的证书的 NP 定义。您是否尝试在网络上搜索这些术语?
    【解决方案3】:

    他可能在谈论证人和验证人。

    对于 NP 中的每个问题,都有一个验证器(读取算法/图灵机)可以在多项式时间内验证“是”声明。

    这个想法是,在时间有限的情况下,您有某种信息(证人)来帮助您完成此任务。

    例如,在旅行商问题中:

    TSP = {(G, k) if G has a hamiltonian cycle of cost <= k}
    

    对于给定的输入(G, k),只需要判断问题实例是否在TSP中即可。这是一个是/否的答案。

    现在,如果有人走过来说:这个问题实例在 TSP 中,你将要求提供证明。然后另一个人可能会给你一系列城市。然后,您可以简单地检查该顺序中的城市是否形成哈密顿循环以及循环的总成本是否为 ≤ k

    您可以在多项式时间内执行此过程 - 假设见证的长度是多项式。

    使用此城市序列,您因此能够正确确定问题实例确实在 TSP 中。

    这就是验证者的想法:他们采用长度为多项式的证明对象/见证来检查多项式时间,确定某个问题实例在语言中。

    【讨论】:

    • For every NP-complete 虽然正确,但您可能指的是 NP 问题,但对于 NP-Complete 的声明显然也是正确的(因为它是 NP 的子集)
    猜你喜欢
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2023-03-03
    • 2011-07-18
    相关资源
    最近更新 更多