NP中的L-补体

时间:2014-11-10 11:47:09

标签: complexity-theory np

L成为语言s.t.对于每个自然n,L中n的长度为n的字数为{0,1}
字母表为L 让我们假设L是NP。为什么NP - 补码也在{{1}}?

2 个答案:

答案 0 :(得分:1)

如果先验地知道L具有在L中恰好有n个长度为n的单词的属性,那么您的声明如下。实际上,这适用于L中的任何多项式数量的单词。换句话说,如果我们允许在L中使用poly(n)已知a-priori存在poly(n)个单词,则该想法仍然有效。要看到这一点,请注意,要找到长度为n的所有字,L也是NP,因为它们有多项式数。

要查看{0,1} *中的s是否为L-补码,只需为长度为| s |的所有单词形成证书,并查看s是否为其中一个单词。如果s是其中一个单词,那么当然,s在L中,如果s不是单词之一,则s在L-补码中。

答案 1 :(得分:1)

由于L在NP中,因此它是可判定的(递归的),因此它的补码L'也是如此。现在,L'可能会也可能不会在NP中。但是我们得到的是,对于任何字符串长度n,恰好一个字符串属于L,这意味着对于任何字符串长度,除了一个字符串属于L'。

现在,NP的定义表明问题的所有“是”实例都可以使用非确定性TM在多项式时间内求解。因此,给定一个实例,我们不确定地取所有长度为n的单词,其中n是w的长度,看看它是否在L中。一旦我们得到单词(这样的单词肯定存在于正好一个长度为n的单词属于L),我们看看这个单词是否与x相同。如果它不相同(并且只有它不相同),则在L'中x,我们在多项式时间内得到这个答案,使L'成为NP问题。