帕里克定理
介绍 :
Parikh 在理论计算机科学中的定理说,如果只看上下文无关语言中每个终结符号的出现次数,而不考虑它们的顺序,那么该语言与常规语言没有区别。这对于确定具有给定终端数的字符串不被上下文无关语法接受是有用的。它于 1961 年由 Rohit Parikh 首次证明,并于 1966 年再版。
定理:
“ Parikh 's theorem ”指出上下文无关语言的 Parikh 图像是半线性的,或者等效地,每种上下文无关语言都具有与某些常规语言相同的 Parikh 图像。我们提出了一个非常简单的结构,给定上下文无关的语法,产生一个识别这种常规语言的有限自动机。
上下文无关语言的泵引理的强化形式被用于给出帕里克定理的简单证明。
1. Parikh 图片 –
- 如果 w 是某个 Σ 上的单词,我们用 Π Σ (w) 表示 w 在字母 Σ 上的 Parikh 图像。
- Π ∑ (w) 将 Σ 中的一个字符映射到它在 w 中的出现次数。
- 语言 L 在 Σ 上的 Parikh 图像是 {Π ∑ (w)|w ∈ L}。它用 Π ∑ (L) 表示。
例子 -
- Π {a,b,c} (bccba) = (1, 2, 2) 其中 (1, 2, 2) 代表 {(a, 1),(b, 2),(c, 2)}。
- Π {a,b,c} (cabaaabb) = (4, 3, 1)。
2. 推导——
让 ∑={a1,a2,…,ak} 是一个字母表。单词的 Parikh 向量定义为函数p: ∑* -> N k ,由 p(w) = (|w| a1, |w| a2, ..., |w| k)给出,其中 |w| ai表示字母 a i在单词 w 中出现的次数。
- 声明 1 –
令 L 为上下文无关语言。令 P(L) 为 L 中词的 Parikh 向量集合,即 P(L)={p(w) | w ∈ L} 。则 P(L) 是一个半线性集。
半线性集 = N k的 Presburger 可定义子集。
如果两种语言具有相同的 Parikh 向量集,则称它们是可交换等价的。 - 声明 2 –
如果 S 是任何半线性集合,则 Parikh 向量在 S 中的单词的语言在交换上等价于某些常规语言。因此,每一种上下文无关语言在交换上都等价于一些常规语言。
这两个等价的陈述可以概括为:上下文无关语言和常规语言在p下的图像是相同的,它等于半线性集的集合。
对于有界语言:
如果 L 是某些固定词 w1,....., wk 的 w1*……..wk* 的子集,则语言 L 是有界的。 Ginsburg 和 Spanier 给出了一个与 Parikh 定理类似的有界语言的充要条件。
Ginsburg-Spanier 定理说有界语言 L 是上下文无关的当且仅当 {(n1,…….,nk) | w1n1…… wknk ∈ L} 是一个分层的半线性集合。
例子 -
- 上下文无关语言 (CFL) L = {0 n 1 n | n>=1}
0 的数量 (N 0 ) = n
1 的数量 (N 1 ) = n
N 0 = N 1
令字符串w = '000111' 在这里,N 0 = 3 N 1 = 3。因此,N 0 = N 1因此,w ∈ L,并且该字符串满足上下文无关语言的属性之一。
Parikh 定理是关于计算给定字符串中每个输入符号的出现次数,这里我们计算 no。 0 和没有。 1 的。
可以为这个特定的字符串定义Parikh 矢量,编号为。字符串中的 0(|w| 0 ) 和 1(|w| 1 )。
P(w) = {|w| 0 , |w| 1 }
帕里克矢量:
P('000111') = {3, 3}
- 这是另一个例子。令,L = {0 n 1 n | n<3,n>=1}。 n 的可能值为 1 和 2。
对于 n = 1,字符串是 '01',对于 n = 2,字符串是 '0011'。
可以为这个特定的字符串定义Parikh 矢量,编号为。字符串中的 0(|w| 0 ) 和 1(|w| 1 )。
P(w) = {|w| 0 , |w| 1 }
所以,P('01') = {1, 1}
同样,P('0011') = {2, 2}
P(L) 是 L 中单词的 Parikh 向量集。
那么,这里 P(L) = { P('01') , P('0011') } = { {1,1}, {2,2} }
当我们得到给定语言的一组 Parikh 向量时,属于给定语言的字符串是有限的,我们可以很容易地为给定语言构造 DFA,即与某些常规语言交换等价。
一些推论:
- 每个 CFL 都与常规语言“字母等效” 。
例如:ψ({a n b n | n ≥ 0}) = ψ((ab) * )。 - CFL 的长度形成一个最终的周期集。
- CFL 的单字母字母表是常规的。
- 这对于确定具有给定终端数的字符串不被上下文无关语法接受是有用的。
意义:
该定理有多种解释。它表明单例字母表上的上下文无关语言必须是常规语言,并且某些上下文无关语言只能具有模棱两可的语法。这样的语言被称为固有歧义语言。从形式语法的角度来看,这意味着一些歧义的上下文无关语法不能转换为等价的明确上下文无关语法。