证明除{}和{a,b} *之外的所有P问题都已完成

时间:2016-07-21 01:28:49

标签: algorithm complexity-theory reduction np-complete

很容易说{}{a,b}*不是 P 完整,因为 P 中的其他问题无法减少这些因为{}无法接受任何内容而{a,b}*无法拒绝任何内容。因此,可以使用缩减功能来进行适当的映射。 但我坚持证明 P 中的所有其他问题都是 P-complete

1 个答案:

答案 0 :(得分:2)

在谈论 P - 完整性时必须小心,因为this means different things to different people基于您允许的减少类型。我假设你在谈论使用多项式时间减少。在这种情况下,选择除∅或{a, b}*以外的任何语言L∈ P 。现在选择您喜欢的 P 中的任何语言M.这是从M到L的愚蠢减少:

  • 给定一个输入字符串w,判断多项式时间内的M是否为w(这是可能的,因为M∈ P 。)
  • 如果w∈M,输出你想要的任何字符串w∈L(至少存在一个因为L是非空的。)
  • 否则,w∉M,所以输出你想要的任何字符串(至少有一个,因为L不是{a, b}*

这种减少需要多项式时间,因为每一步都需要多项式时间,因此它是从任意 P 语言到L的多项式时间减少。因此,L P - 关于多项式时间减少完成。

一般来说,当你谈到完整性的概念时,你必须确保减少的计算资源比你正在使用的求解器类少,或者你可以做一些奇怪的事情,比如这里描述的那些减少基本没用。