上下文无关文法(CFG)

定义

计算理论学习笔记(二)
前面提到的0n1n0^n1^n可以用上下文无关文法表示如下:
S0S1ϵS\rarr 0S1\vert \epsilon.

设计CFG

CFG的设计很难对于多个简单CFG的合并或者语言本身是DFA都较容易设计。
计算理论学习笔记(二)
计算理论学习笔记(二)
有些很难的CFG是在一些基础的CFG上发展来的,所以需要记住一些常见的CFG的形式。
一些常见的CFG表示如图所求.
计算理论学习笔记(二)

乔姆斯基范式

计算理论学习笔记(二)
乔姆斯基范式有两个特点:一分为二;终级化.

将任意一个上下文无关文法转为乔姆斯基范式的步骤如下:

  1. 引入新的起始变元
  2. 删除ϵ\epsilon规则,相同的只替换一次,不循环替换
  3. 去掉单一规则
  4. 添加终结符规则
  5. 添加新变元,使得所有变量规则都是一分为二

具体可参考65页的例3.7.

乔姆斯基范式有一个很重要的性质,在后面证ACFGA_{CFG}图灵可判定及多项式时间内判定某个串是否可以派生,都要用到乔姆斯基范式。因为乔姆斯基范式派生任何长为n的串,只需要2n12n-1步。
计算理论学习笔记(二)
证明如图所求。
计算理论学习笔记(二)

下推自动机(PDA)

下推自动机相比NFA多了一个栈(可以压入与弹出)。可以进行简单的串的数量的统计。

定义

计算理论学习笔记(二)

常见的PDA

计算理论学习笔记(二)
计算理论学习笔记(二)
计算理论学习笔记(二)

泵引理

与正则语言相同,上下文无关语言也有泵引理。

定义

计算理论学习笔记(二)

用泵引理证明非上下文无关语言

计算理论学习笔记(二)
“抽进”+“抽出”
计算理论学习笔记(二)

注意:上下文 无关语言对并运算是封闭的,而对交,补,差都不是封闭的.

笔记教材及答案

github地址

相关文章:

  • 2021-08-19
  • 2021-11-12
  • 2022-01-19
  • 2021-10-16
  • 2021-10-16
  • 2022-01-21
  • 2021-06-10
  • 2021-05-11
猜你喜欢
  • 2022-12-23
  • 2021-08-22
  • 2022-01-07
  • 2021-09-27
  • 2021-10-08
  • 2022-01-08
  • 2021-04-17
相关资源
相似解决方案