【发布时间】:2012-12-16 23:30:36
【问题描述】:
{WW} - 可判定但不是上下文无关
{WW^R} - 上下文无关,但不是常规
Σ* - 正则语言
如何确定它们属于哪个类?
【问题讨论】:
标签: automation context-free-grammar regular-language turing-machines pushdown-automaton
{WW} - 可判定但不是上下文无关
{WW^R} - 上下文无关,但不是常规
Σ* - 正则语言
如何确定它们属于哪个类?
【问题讨论】:
标签: automation context-free-grammar regular-language turing-machines pushdown-automaton
我的回答可能对你有帮助:
L1 = {ww | w ∈ {a, b}* }
不是上下文无关语言,因为(下推自动机)PDA 是不可能的(甚至是 Non-Deterministic-PDA )。为什么?假设您首先将w 推入堆栈。要将第二个w 与第一个w 匹配,您必须以相反的顺序推送第一个w(或者您需要将第二个w 与堆栈内容以相反的顺序匹配),这是堆栈无法实现的(我们可以' t 以相反的顺序读取输入)。虽然它是可判定的,因为它可以为 L1 绘制一个Turing Machine,它总是在有限步数之后减半。
L3 = {wwR | w ∈ {a, b}* }
语言 L3 是一种非确定性上下文无关语言,因为 n-PDA 是可能的,但对于 L3 来说有限自动是不可能的。您还可以使用 Pumping Lemma for Regular Languages 来证明这一点。
Σ*- 正则语言(RL)
Σ* 是正则表达式 (RE) 例如
如果Σ = {a, b} then RE is (a + b)* RE 仅适用于 RL。
my question 中的示例可能对您更有帮助。
【讨论】: