NP中两种语言的连接

时间:2014-11-12 18:01:30

标签: concatenation np

我很难理解为什么两个语言在NP中的字母串联,并不意味着每个语言本身都在NP中。我今天和我的教授谈到了这个问题,但我无法绕过它。你能帮我吗?

1 个答案:

答案 0 :(得分:0)

这是一个反例,如果A和B是语言而AB∈ NP ,那么A∈ NP 和B∈ NP 。首先,考虑集合1 *的所有子集。 1 *中有无数多个字符串,因此不可数许多1 *的子集。由于只有相当多的可判定语言,因此这些语言中至少有一种是不可判定的;让那个语言为A.对于B,选择1 *。

我的主张是AB是{1 n |形式的语言对于某些自然数k,n≥k}。为了看到这一点,让k为A中最短字符串的长度。然后AB中的任何字符串都具有1 k + m 1 r 的形式,其中1 k + m ∈A和1 r ∈B。这样的字符串必然属于{1 n | n≥k}。同样,如果我们从{1 n |获取任何字符串n≥k},我们可以看到它的形式为1 k + m = 1 k 1 m ,其中1 k ∈A和1 m ∈B。因此,AB = {1 n | n≥k}。

语言AB是常规的,因为它由正则表达式1 k 1 *给出,但A不在 NP 中,因为它不可判定且中的所有语言NP 是可判定的。

希望这有帮助!