什么是无上下文语言的补充?


11

我需要知道什么类别的CFL是封闭的,即什么集合是CFL的补充。我知道CFL不是在补码下关闭的,我知道P在补码下是关闭的。由于CFL PI可以说CFL的补语包含在P中(对吗?)。仍然存在一个问题,CFL的补语是P还是整个P的适当子集。对于如何显示CFL​​的补语是整个P(如果是这种情况),我将不胜感激。


2
我打算张贴此作为一个答案,但它不回答你的全部问题:任何CFL的补充是R(递归),因为递归语言在补运算下封闭,所有的节能灯R.
埃里克·

CFL没有在补码下关闭,并不表示CFL中的“ L”表示补码不在CFL中。这仅表示在CFL中存在“ L”,因此在CFL中不存在补码
SHREYANSHU THAKUR

@Eric询问者已经知道任何CFL的补语都是递归的。他们做出了强有力的声明,即任何CFL的补语都在P中
David Richerby

Answers:


17

根据“ CFL的补充”的定义,您可以通过两种方式来理解您的问题。

案例A: CFL的补语是所有不在CFL中的语言的类别。正式而言, 在这种情况下,比大得多,它甚至具有不位于语言,等等。但这也许不是您的意思。¯ Ç ˚F 大号 Př

CFL¯={LLCFL}.
CFL¯PR

情况B:将补语CFL类定义为 换句话说,所有语言的集合,这样的补语是上下文无关的。大号大号

coCFL={L¯LCFL},
LL

在这种情况下,您写的是有意义的: (通过CYK算法),还有(运行相同的算法,输出相反的答案),并且由于,那么应该立即使用,对吧?c ^ ö Ç ˚F 大号P Ç ˚F 大号Ç ö Ç ˚F 大号 Ç ö Ç ˚F 大号PCFLPcoCFLPCFLcoCFLcoCFLP


就我所知,CFK的定义是:当且仅当L的补语在CFK中时,语言L才在coCFK中。用LI的补码表示除L中的字符串以外的所有可能的字符串。我认为的问题是,补码不能定义为“运行相同的算法并反转答案”。例如:L =(x ^ iy ^ iz ^ i)不是CFL,但我不知道我可以运行哪种算法来获得(否定的)答案。
user432 2012年

1
因此,您要指的是情况B。请注意,CFL的补码可能不是CFL,但这并不意味着CYK算法不能在其上同样起作用。.我的意思是,我们在,它是CFL,并且不管是否在,都将得到每个的答案。与此相反的是,即使可能不是CFL ,是否在也是一个问题的答案。¯ 大号 X ‾ 大号 X 大号大号LL¯xL¯xLL
Ran G.

1
@ user432 coCFLCFL¯
拉斐尔

1
@RanG是您的注释标准吗?我期望¯ Ç ˚F 大号 =类的语言大号使得大号Ç ˚F 大号coCFL={L:L¯CFL}CFL¯=LLCFL
usul 2012年

1
实际上,让我根据您的建议更改表示法,这样会更有意义。
Ran G.

3

既包含CFL又包含coCFL的健壮类是LOGCFL,它包含可logspace缩减为上下文无关语言的所有语言。此类介于NL和AC1之间,并且具有一些自然的完整问题。也可以根据受限的AC1电路进行定义。LOGCFL在补码下关闭(这是用于显示NL = coNL的参数的扩展)。


-1

CFL的补充可能是CFL,但不一定是。CFL的补充既是递归(R)也是递归可枚举(RE)。为什么?所有CFL均为R和RE。R语言在补码形式下是封闭的(而RE则不是)。在这种情况下,CFL的补码是R,它本质上是RE。


询问者已经说过,他们知道任何CFP的补语都在P中。这比递归或RE 强大。就像问问者提到了一个不会走路的人,而您以他无法以声速奔跑的证据来回应。
David Richerby
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.