形式语言与自动机的关系
形式语言与自动机的关系研究
新疆师范大学数理信息学院数学03-6班
摘要:
形式语言的直观意义,自动机的直观意义,形式语言的定义,
形式语言的特征,语法的分类,自动机的定义,自动机的分
类,各种自动机的定义,形式语言和自动的的关系,自动机
的对语言的例子
基本关键词:
形式语言的定义;自动机的定义;形式语言和自动机的关系
1,形式语言的直观意义
直观地讲,形式语言是用来 精确描述语言和它结构的手段。它一重写规则α→β的
α, β均为字符串。形式来表示,其中,重写规则就是在包含α的字符穿中遇见规则左边 的
α时,α部分重新写为右边的β。这样一个初设的字符串 通过 不断地运用重写规
则,就可以到另一个字符串。通过选择不同的规则并且以各种不同的顺序来运用最这些规
则,如果指
定一个初始符,某规则以其为左部,一组规则就可以构成一个语法。
2,形式语言的定义
形式语法是一个四元组G=(N, V, P, S), 其中N 是非终结符的有限集合,有时也称变量,它们相当于各种句法范畴。V 是终结符的有限集合,若语法生成的是自然语言,这些终端语符就相当于这种语言中具体的词,终端 语符集 这种语言的词库,P 是以重写规则的有限集合,基本形式P {α→β},即" α改写为β" ,其中箭头表示指令,一条规则就是一个机械性的操作程序,用来演算它联系着的两侧语符集或语符序列之间的关系,而S 是一个特定的初始符;
3,语法的分类
乔姆斯在他的著名【文章】中根据重写规则将语法分成四类:正则语法,上下文有关语法,上下文无关语法;有这些语法生成的语言是正则语言,,上下文有关语言,上下文无关语言,递归数集合。
a 如果P 中的规则,满足如下的形式:A →Bx 或,A →x ,其中,A,B 是非终结符,x 是终结符,则G 称为正则语法(简称为FSG )。
b 如果P 中的规则,满足如下的形式:A →α, 其中,A 是非终结符, α是由N 和V 中字符所组成的字符串(或可表示为α∈(N V )*, *意味着它右边的字符可以重复0到任何 多次),则G 称为上下文无关语法(简称为CFG )。
d 如果P 中的规则,满足如下的形式:αA β→αγβ, 其中,A 是非终结符, α, β, γ, 是字符串,且γ至少包含一个字符,则G 称为上下有无关语法(简称为CSG )。
d 如果P 中的规则,满足如下的形式:其中,α,β是字符串,则G 称为无限制重写系统。
对于以上任何一种语法,两个字符串之间一次派生关系⇒可定义为:
如果x →y 是P 中的规则,αx β⇒αy β。
字符串α,β有多次派生关系⇒则是说,通过多次应用一次派生关系,从α可派生出*
β,并记为α⇒β: *
α=α0, β=αn ,而对i =0,.... n -1, αi ⇒αi +n 。
给定以语法,其语言定义为所有合法终结字符串的集合。合法终结字符串是指由初始符S 出发,运用重写规则而派生得终结字符串,即,
L (G )={α∈V ; S ⇒α**}
*例子:假设G=(N, V, P, S), N={S, A} , V={0, 1}, P={S →A 1, A →A 0, A →0} 则 ,L (G ) ={0m ≥1}是正则语法,在V={0, 1}上它所对应的正则表达式是001。 m
形式语言的特征:
⑴ 高度抽象化(采用形式化的手段,专用符号,数学公式来描述语言的,结构关系,这种关系是抽象的)。
⑵是一套演绎系统(形式语言本身的目的就是要用有限的规则来推导语言中无限的句子)。 ⑶具有算法的特点
4,自动机的直观意义
,如果说语法时用来精确描述语言的和它的结构,那么自动机便是用来机械地刻画对输入字符串的处理过程。最初,自动机(automation )得得提出时用来解决一个数学上的难题,后来又被试图模仿人的感觉和思维。自动机有非常简的部件和操作组成:输入/输出带时用来存放输入字符串以及输出字符(它们可以时同一带,也可以是不同一条带),读/写头用来阅读输入/输出带上目前所处理的字符及位置,在带上写下一个字符,并可以在带上向左或向右移动一个位置,让读/读写头做出相应的操作,改变自己的状态,并最终决定是否接受输入字符串为合法。当给定以字符串时,自动机通过自己的读/写头扫描,修改这一字符串,并改变自己的状态。如果自动机顺利地进入终止状态,且输入/输出带 满足一定的条件,我们称自动机接受这一字符串。这个过程称为识别。
5,自动机的定义
5.1定义:确定有限自动机是以个 七元组M =(Q , I , U , δ, σ, q , F ), 其中
Q ={s s 是自动机内部状态},且Q 是有限集合 I =α是输入字符},且I 是有限集合
U ={u u 是输出字符},且U 是有限集合
δ是 定义域为 Q ⨯I ,值域为Q 的状态转移函数 {
σ是 定义域为 Q ⨯I ,值域为U
q 为初始状态 的有限集合
F ⊆Q 为终止状态
给定一字符串 a =a 0a 1... a n 初始时,有限自动机M 处于状态q 0,从a 0开始,根据状态转移函数δ转移到另一状态q 1=δ(q 0, a 0) ,根据输出函数σ在一输出带上印出字符σ(q 0, a 0),并 将读/写头在输入/输出带上各向右移动一格。此时,M 便处于状态q 1,读字符a 1。重复以上步骤,一直到M 读完a n ,如果,M 处于某中移终止状态,即F 的一个元素,那么,我们就称M 接受字符串a ;否则,M 读完a n 但不处于任一终止状态,或者,在其过程中δ没有定义,我们称M 不接受字符串a 。
由M 定义的语言T (M )就是被M 接受的字符串全集
5.2定义:下推自动机是一个M =(Q , ∑, Γ, δ, q 0, Z 0, F ), 其中 Q =s s 是一个内部状态},且Q 是有限集合 {
∑={u u 是输入带上字符},且∑是有限集合
Γ={u u 是栈上字符},且 Γ是有限集合
q 0∈Q 为初始状态
Z 0∈Γ 为栈中一个特殊符号,表明栈底
F ∈Q 为终止状态集
δ是定义域为Q ⨯(∑ {ε})⨯Γ, 值域为Q ⨯∑* 的有穷子集的状态转移映照。
5.3定义:图灵机是一个七元组 M =(Q , Γ, ∑, δ, -, q 0, F ), 其中
Q =s s 是一个内部状},且Q 是有限集合 态
,且∑符∑={u u 是输入带上字}是有限集合 {
Γ=∑ {B }, B 表示空白字符;
δ是定义域为Q ⨯∑, 值域为Q ⨯∑⨯{R , L , S }转移函数,R, L 和 S 分别指右移一格,左移一格以及停止不动;
— 属于Q-I 的空格元素
q 0为初始状态;
F ∈Q 为终止状态集
给定字符串a ,存放域 它的输入/输出带上,开始时,M 处于状态q 0,它的读/写头扫描着a 的最左字符。根据转移函数δ的定义,即对于目前状态及正扫描着的字符,M 改变当前状态,读/写头扫描的字符,以及读/写头的位置。重复这个步骤直至M 进入某一终止状态;或者,在其过程中δ没有定义,即M 停止工作。前者称之为M 接受字符串a ,后者称之为M 不接受字符串a 。
严格地讲,我们对于M 的每个情况,定义格局为(q ,a ,i ),这里,q ∈Q ,a 是字符串,i 是整个数,表示读/写头相对于a 左端的距离。图灵机M 通过如下转移动作引起格局变化;
假设(q , A 1A 2.... A n , i ), 1≤i ≤n +1是当前M 的格局,如(p , A , R )=δ(q , A i ), 1≤i ≤n , 则
(q , A 1A 2.... A n , i )M (q , A 1A 2.... A i -1AA i +1.... A n , i +1)
即M 的读/写头在i 位置上原来的A i 就消失了,并且读/写头向右移动一格,从i 变化为i +1。
如果(p , A , L )=δ(q , A i ), 2≤i ≤n , 则 ,
(q , A 1A 2... A n , i -M (q , A 1A 2... A i +1AA i -1... A n , i -1)
即M 的读/写头在i 位置上原来的A i 就消失了 ,并且读/写头向左移动一格(从i 变化为i-1);
当i=n+1,即M 的读/写头超出原字符串的右端,注释空白符时,如果(P , A , R )=δ(q , B ), 则,
(q , A 1A 2... A n , n +1)M (q , A 1A . 2.. A n A , n +2)如果(p , A , l )=δ(q , B ), 则
(q , A 1A 2... A n , n +1)M (q , A 1A 2... A n A , n )。
对两个格局X,Y ,如果XMY ,称Y 是由通过一次动作而得。如果,Y 是由X 通过次**
_
数动作而得,则记为
由图灵机M 接受的 语言则定义为:T (M )={a a ∈∑*, (q 0, d , 1)
5.4定义:线性带线自动机是一个七元组M =(Q , Γ, ∑, δ, -, q 0, F ), 其中
Q ={s s 是自动机的内部状态},且,Q 是有限集合 ∑={u u 是输入带上字符},且∑
Γ=∑ {B }, B 表示空白字符; 是有限集合
δ是定义域为Q ⨯∑, 值域为Q ⨯∑⨯{R , L , S }转移函数,R, L 和 S 分别指右移一格,左移一格以及停止不动;
— 属于Q-I 的空格元素;
q 0为初始状态;
F ∈Q 为终止状态集
和一般的图灵机不同的是∑含有两个特定符号,⊄, $,分别是输入字符左右两端的标志,他们的作用是组织读/写头移出左右两界。其他部分和图灵机略有不同。 形式语言与自动机的关系
形式语言学也称代数语言学,它研究一般的抽象符号系统,运用形式模型对语言即人工语言,自然语言进行精确描述和它结构的手段,而自动机是用来机械地刻画对输入的语符序列进行检验和识别的处理过程。从识别能力的角度上,有限自动机,下推自动机,带线自动机和图灵机分别等于正则语言,上下文无关语言,上下文有关语言,和递归可数集合。更确切地说,如果G =(N , V , P , S )是正则语言,则,存在有限自动机M =(Q , I , U , δ, σ, q , F ),使得T (M )=L (G ); 反之也然,对下推自动机,带线自动机,图灵机和上下文无关语言,上下文有关语言,和递归可数集合等其他三种情况,这种等价关系也成立。
例子:下面看自动机的对语言的识别过程;
自动机M =Q , Γ, (∑, δ, -, q F ),Γ={#, a , b , B }, Q ={q , q }; 0, 01
∑={a , b },其中,# 做出语符,F ={q 0};δ={(b , q 0)→(L , q 0), (a , q 0)→(#, q 10), (#, q 1)→(L , q 0})};如果输入序列baaab ,自动机的识别过程如下;
a) 当M 在 q 0 时,读入字符b ,纸带上向左移,控制器还处于状态q 0
b) 读写头读入字符a ,输出语符 #,纸带没有移动,控制器处于状态q 1
c) 读写头在状态 q 1 读 # 时,纸带向左移,控制器处于状态q 0
d) 读写头读入字符a ,输出语符 #,纸带没有移动,控制器处于状态q 1
e) 读写头在状态 q 1 读 # 时,纸带向左移,控制器处于状态q 0
f) 读写头读入字符a ,输出语符 #,纸带没有移动,控制器处于状态q 1
g) 读写头在状态 q 1 读 # 时,纸带向左移,控制器处于状态q 0
h) 读写头读入字符b ,纸带上向左移,控制器还处于状态q 0
i) 停下
当识别完语符列baaab 后,自动机正好停止在终止状态q 0,所以语符列baaab 被此自动
机所接受,因此baaab 是一个语句。
6, 结束语,
形式语言和自动机是在计算语言学中研究语言的句法分析和它的结构,形式语言算是机器语言 ,它用机器语言来对各种人工语言,自然语言进行形式化描述和分析的手段,而自动机是对它们来进行检验和识别的过程,自动机是一种理论化的机器,因为它只是抽象分析的工具,并不具备实际的物质形态,它是科学家定义的演算机器,用来表达某种不需要人力干涉的机械性的演算过程
参考书:
[1]计算机语言学导, 翁富良 , 王野羽 著 , 中国社会出版社
:
[2]计算语言学, 刘颖著, 清华大学出版社
:
[3]形式语言于自动机理论的参考书, 蒋宗礼著清华大学出版社
[4]形式语言 , 王兵山 , 吴兵著 , 国防科技大学出版社: