【问题标题】:Prove that all P problems except {} and {a,b}* are complete证明除了 {} 和 {a,b}* 之外的所有 P 问题都是完备的
【发布时间】:2016-07-21 01:28:49
【问题描述】:

很容易说{}{a,b}*不是P完整的,因为P中的其他问题不能归结为这些因为{}不能接受任何东西,{a,b}* 不能拒绝任何东西。因此,使用归约函数无法完成正确的映射。 但我坚持证明 P 中的所有其他问题都是 P-complete

【问题讨论】:

  • 问题中是否缺少某些上下文? P 是一类决策问题,但{}{a, b}* 看起来不像决策问题。 (您可能还会发现 cs.stackexchange 是解决这个问题的更好场所,因为它似乎与编程无关)。
  • 只是一个建议:cs.stackexchange.com 可能更适合这个问题(因此更容易得到答案)
  • @PaulHankin {}{a,b}* 是我相信的语言的接受者。第一个拒绝每个输入。第二个接受每个输入,假设语言仅由符号 a 和 b 组成。

标签: algorithm complexity-theory reduction np-complete


【解决方案1】:

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

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

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

一般来说,当您谈论完整性的概念时,您必须确保为您的归约提供的计算资源少于您正在使用的求解器类别,或者您可以做一些奇怪的事情,就像这里描述的那样减少基本上没用。

【讨论】:

    猜你喜欢
    • 2020-07-31
    • 2012-06-25
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多