文法 Grammar
文法是形式化的语言规则, 因此文法是用于生成语言,而语言依托于词,或者说语言是词的组织,因此一个文法所能产生的语言依赖于词的集合,词
的拼接组成了句
,句
构成了语言,因此可以认为,词是句的子集,句是语言的子集,有些词
或者句
在一些条件(或无条件下)能被进一步替换,而描述这些替换规则的式子就称为产生式 production
,因此给出文法G
的定义
G
=
(
V
,
T
,
S
,
P
)
G=(V,T,S,P)
G=(V,T,S,P)
其中V
表示一个文法所使用的词
的集合
T
表示不能被进一步替换的词的集合,称为终结符 terminator
S
表示生成一个语言的初始词
P
表示产生式 production
的集合,表示词
或句
的替换规则
并且一个文法G
所能生成的语言L(G)
L
(
G
)
⊂
V
∗
,
∗
是
K
l
e
e
n
e
闭
包
,
即
字
符
拼
接
运
算
其
中
V
0
=
{
λ
}
V
i
表
示
进
行
i
次
拼
接
,
每
次
选
取
V
中
的
一
个
元
素
L(G)\subset V^*, *\ 是\ Kleene闭包,即字符拼接运算\\ 其中\ V^0=\{\lambda\}\\ V^i表示进行i次拼接,每次选取V中的一个元素
L(G)⊂V∗,∗ 是 Kleene闭包,即字符拼接运算其中 V0={λ}Vi表示进行i次拼接,每次选取V中的一个元素
当我们在讨论文法 Grammar
的时候,我们考虑的是语言的合法性,此时我们不关心语言的语义
,即我们在做语法分析
我们提到词
或句
在一些条件下能被进一步替换,乔姆斯基将文法依据特定的条件分为四类
文法类型 | 名称 | 对应的有限状态机 |
---|---|---|
0 | 无约束条件文法 | 图灵机 |
1 | 上下文有关文法 | 线性有界自动机 |
2 | 上下文无关文法 | 下推自动机 |
3 | 正则文法 | 有限状态自动机 |
下 面 使 用 大 写 字 母 表 示 非 终 结 符 , 小 写 字 母 表 示 词 和 句 ( i ) l A r → l w r o r S → λ ( i i ) A → w ( i i i ) A → a B ∣ a o r S → λ 下面使用大写字母表示非终结符,小写字母表示词和句\\ (i)\ lAr\rightarrow\ lwr\\ or\ S\rightarrow \lambda\\ (ii)\ A\rightarrow\ w\\ (iii)\ A\rightarrow\ aB\ |\ a\\ or\ S\rightarrow\lambda 下面使用大写字母表示非终结符,小写字母表示词和句(i) lAr→ lwror S→λ(ii) A→ w(iii) A→ aB ∣ aor S→λ
有限状态机 automaton
有限状态机的基本功能是描述状态转移的机器,因此需要一个状态转移方程,该方程需要一个基本的参数s
,即现态,加上输入i
,产生次态。同时可以考虑在发生状态转移时是否伴随有输出,是否存在停机状态,是否能存储输出
语言识别
如果一个有限状态机能识别一种语言,当且仅当该有限状态机能处理该语言并停机
确定性
表示有限状态机的状态转移方程是否是函数,若是函数,则是确定状态机,否则是非确定状态机,非确定状态机在发生状态转移时会在多个转移规则中选择一个
有限状态自动机
给出有限状态自动机的描述
M
=
(
S
,
I
,
f
,
F
)
M=(S,I,f,F)
M=(S,I,f,F)
其中S
表示状态集
I
表示输入的符号集
f
表示状态转移方程
F
表示终结状态集
该自动机无存储器,并且伴随状态转移无输出,且处理正则语言
正则表达式
形如下式的是正则表达式
(
i
)
∅
(
i
i
)
λ
(
i
i
i
)
x
∈
I
(
i
i
i
i
)
递
归
定
义
当
A
,
B
是
正
则
式
时
,
A
B
(
表
示
集
合
的
连
接
?
)
,
A
⋃
B
,
A
∗
(
K
l
e
e
n
e
∗
)
也
都
是
正
则
式
(i)\ \empty\\ (ii)\ \lambda\\ (iii)\ x\in I\\ (iiii)递归定义\ 当A,B是正则式时,\\ AB(表示集合的连接?),A\bigcup B,A^*(Kleene *)也都是正则式
(i) ∅(ii) λ(iii) x∈I(iiii)递归定义 当A,B是正则式时,AB(表示集合的连接?),A⋃B,A∗(Kleene∗)也都是正则式
正则集合
一个集合是正则集合当且仅当其所有元素都是正则式
Kleene定理
一个集合是正则的当且仅当它能被一个有限状态自动机识别
下推自动机
下推自动机在有限状态自动机的基础上加上了一个栈
用来存储信息
线性有界自动机
线性有界自动机以条带存储信息,并且该存储器条带是有限长度的
图灵机
最强大的计算模型图灵机,包含无限长的存储条带
几种自动机等价于文法类型的证明看不懂…
NP问题
可计算
一个问题如果能由图灵机计算,那么就叫做可计算问题
P
表示一个问题可在多项式时间被计算出来
NP
表示可以在多项式时间内判定一个解是否是该问题的解,显然P问题包含于NP问题
NPC
最大范围的NP问题,即所有的NP问题是其子集
NP=P
因为所有NP问题的是NPC问题的子集,如果能针对NPC问题找出一个多项式时间内的通解,那么即对所有的NP问题,都存在一个多项式时间内的解,即NP=P