我无法解决下一个练习:
认为如果是上下文无关的并且是规则的,则(即右商)与上下文无关。
我知道应该存在一个接受L的PDA 和接受R的DFA 。我现在正在尝试将这些自动机结合到接受正确商数的PDA上。如果可以证明我证明了是无上下文关系的。但是我一直在建造这款PDA。
这是我取得的成就:
在组合的PDA中,状态是单独的自动机状态的笛卡尔积。边缘是DFA的边缘,但是只有将来可以达到L原始PDA最终状态的边缘。但是不知道如何正式写下来。
我无法解决下一个练习:
认为如果是上下文无关的并且是规则的,则(即右商)与上下文无关。
我知道应该存在一个接受L的PDA 和接受R的DFA 。我现在正在尝试将这些自动机结合到接受正确商数的PDA上。如果可以证明我证明了是无上下文关系的。但是我一直在建造这款PDA。
这是我取得的成就:
在组合的PDA中,状态是单独的自动机状态的笛卡尔积。边缘是DFA的边缘,但是只有将来可以达到L原始PDA最终状态的边缘。但是不知道如何正式写下来。
Answers:
我不确定您对笛卡尔积的看法。这会并行模拟两个自动机,这会给您带来交集。但是,您希望它标识中所有带有后缀的单词!在直觉上,就是这样。[R
假设我们的输入是。显然,我们不能检查所有可能的延续(对于成员资格),而只能检查有限数量的延续。Artem的评论在这里最有帮助;我们猜测后缀是什么,并对其运行两个自动机。 - [R X
令和分别为的PDA 和 NFA 。构造自动机如下。在输入,模拟。消耗之后,切换到和的修改后的交点,并保持的状态。现在,不确定地为每个过渡确定虚拟输入中的下一个符号。接受当且仅当两个部件达到同时最终状态,也就是如果甲ř大号ř 甲瓦特∈ Σ * 甲大号瓦特甲大号,ř甲大号甲ř 甲大号瓦特甲大号,- [R瓦特X 瓦特X ∈ 大号X ∈ ř具有延续,使得和。
您也可以使用形式语法。您看到如何并行导出两个语法吗?通常,尚不清楚如何适应因此您可以掌握后缀。使用Chomsky范式有帮助。
假设和均以Chomsky范式给出。修改,以使最右边的非终结符可区分,并将其起始符号新的起始符号。为非终端的区别版本引入新规则,该新规则导致语法在和中并行导出(非终端是成对的非终端);如果两个语法都在一个结束符号上一致,则删除复合非结束符。这样一来,在一个后缀当且仅当它可以在导出被删除和在,但它仍然。ģ ř ģ 大号ģ 大号ģ ř ģ 大号ģ 大号ģ ř瓦特∈ 大号/ ř
我建议使用Raphael的答案,该答案更容易理解,但是这里是一种替代方法,使用闭包属性代替自动机:
令为一门语言。我们要读一个字,不过问是否是在语言。因此,我们希望从创建一种新的语言,该语言具有 “已擦除”。我们可以使用同构来实现,但是可以从删除字母。解决方案:将字母分为两个,并为和使用不同的字母。
更正式地:
1)创建从词语的,与每个字母标记的0或1。 2)与正则语言相交它。这迫使所有的0来之前全1,第二部分来自。的确切含义留给读者。 3)将替换,将替换。 使用的闭包属性:同态图像,原图像,与常规语言的交集。优点:该证明适用于其他家庭(例如,用常规替换无上下文关系)。大号(甲× 0 )*(- [R × 1 )- [R × (一,0 )→ 一个(一,1 )→ ε