斯坦福大学的Tim Roughgarden教授在教授MOOC时说,NP类问题的解决方案必须是多项式的。但是wikipedia article说NP问题是决策问题。那么什么类型的问题基本上在NP类?并且没有必要说这些问题的解决方案具有多项式长度输出(因为决策问题必然输出0或1)?
答案 0 :(得分:4)
他可能正在谈论证人和证人。
对于NP中的每个问题,都有一个验证者读取算法/图灵机 - 可以在多项式时间内验证“是” - 声明。
这个想法是,你有一些信息 - 证人 - 在时间限制的情况下帮助你做到这一点。
例如,在旅行商问题中:
TSP = {(G, k) if G has a hamiltonian cycle of cost <= k}
对于给定输入(G,k),您只需确定问题实例是否在 TSP 中。这是肯定/否定答案。
现在,如果有人出现并说:此问题实例位于 TSP 中,则需要提供证明。然后另一个人可能会给你一系列的城市。然后,您可以简单地检查该顺序中的城市是否形成哈密顿循环,以及循环的总成本是否≤k。
您可以在多项式时间内执行此过程 - 假定见证是多项式的长度。
使用这个城市序列,您就可以正确地确定问题实例确实存在于 TSP 中。
这就是验证者的想法:他们采用长度为多项式的证明对象/见证来检查多项式时间,某个问题实例在语言中。
答案 1 :(得分:2)
NP的标准定义是它只是一类决策问题。决策问题总是产生是/否答案,因此具有恒定大小的输出。
答案 2 :(得分:1)
s不要观看视频/课程,但我猜他在谈论证书/验证而不是解决方案。差异很大。