如何确定这些语言属于哪个类?

时间:2012-12-16 23:30:36

标签: automation context-free-grammar regular-language turing-machines pushdown-automaton

{WW} - 可判定但不是上下文的 {WW ^ R} - 上下文自由,但不是常规的 Σ* - 常用语言
你怎么能确定他们属于哪个班级?

1 个答案:

答案 0 :(得分:1)

我的回答可能对您有所帮助:

  

L 1 = {ww | w∈{a,b} * }

不是上下文自由语言,因为(自动下推自动机)PDA是不可能的(甚至是非确定性-PDA)。为什么?假设你先在堆栈中推送w。要将第二个w与第一个w进行匹配,您必须以相反的顺序推送第一个w(您需要以与堆栈内容相反的顺序匹配第二个w)可能与堆栈(我们无法以相反的顺序读取输入)。虽然它的可判定性因为可以为L 1 绘制Turing Machine,它总是在有限步数之后的一半。

  

L 3 = {ww R | w∈{a,b} * }

语言L 3 是一种非确定性的上下文无关语言,因为n-PDA是可能的,但L 3 不可能有限自动化。你也可以使用Pumping Lemma for Regular Languages证明这一点。

  

Σ* - 常规语言(RL)

Σ*是正则表达式(RE),例如 如果Σ = {a, b} then RE is (a + b)* RE仅适用于RL。

my question中的示例可能对您更有帮助。