- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
形式语言与自动机
Formal Languages and Automata Theory;第三章 有穷状态自动机;语言的识别;?;自动机系统的结构及功能特征分析:
1、字母表:系统处理的所有字符串由字母表上的字符组成;
2、控制器:系统每次从输入字符串读入一个字符,并根据当前状态和读入的字符,转入新的状态;新的状态和当前状态可以相同也可不同;为此,系统具有有穷个状态,并需要维护一个读指针。
3、几个特殊状态:
一个开始状态;系统从此开始处理句子;
一些称之为终止状态或接受状态,系统从开始状态至此状态为止,读入字符构成的字符串是语言的一个句子;系统到达这些状态读入的全部字符串构成系统所能识别的语言。;有穷状态自动机装置的物理模型: ;有穷状态自动机装置的组成:
1、一个具有一系列方格的输入字符串的带子:方格中存放字符,字符从输入带左端开始存放,输入带右端无穷;
2、一个有穷状态控制器 FSC:控制一个读头;每读入一个字符,读头右移一格,指向下一个待读入字符。;?;?;?;1;有穷状态自动机定义与表示;?;?;对于任意的 q ∈ Q, w ∈∑? , a ∈∑,有:
δ’( q, wa ) = δ( δ’( q, w ), a )
=δ( δ’( q, a1 a2 a3… an), a )
= δ( … δ( δ( q, a1 ), a2 ),…, an ), a ) ;说明 2:
由于 Q×∑是 Q×∑* 的真子集;对于任意输入字符 a,有
δ? ( q, a ) = δ? ( q, εa ) ε是单位元素
= δ( δ? ( q, ε), a ) 由补充定义第 2 条
=δ( q, a ) 由补充定义第 1 条;定义 3.3:
设 FA M = ( Q, ?, ?, q0, F ),x, y∈∑*,δ( q0, x ) = q , x q y 称为 M 的一个瞬时描述(ID), 表示:
xy 是 M 正在处理的一个字符串,其子串 x 引导 M 从 q0 启动,到达状态 q, M 的读头当前指向子串 y 的首字符。;如果 xqay 是 M 一个瞬时描述, 且 ?( q, a )= p ,则有:
xqay xapy
表示 M 在状态 q 时已处理完字符串 x;当前读入的字符为 a且转入状态 p, 然后将读头向右移动一格,指向字符串 y 的首字符。;FA M 的瞬时移动序列描述:;注:所有移动都在 M 中进行时,可省去 推导符中的 M,分别记为:;FA M 瞬时移动序列描述实例:;有穷状态自动机定义与表示(3);L = { x000 | x ∈{0,1}* } ∪ { x001 | x ∈{ 0,1 }*}
set (q0) = { x | x ∈ ∑*, x =ε 或者 x 以 1 结尾但不以 001 结尾 };
set (q1) = { x | x ∈ ∑*, x = 0 或者 x 以 10 结尾 }
set (q2) = { x | x ∈ ∑*, x = 00 或者 x 以 100 结尾 }
set (q3) = { x | x ∈ ∑*, x 仅以 000 结尾 }
set (q4) = { x | x ∈ ∑*, x 仅以 001 结尾 };有穷状态自动机定义与表示(4);定义 3-6:
设 M1,M2 是 FA。如果 L(M1)= L(M2),则称M1 与 M2 等价。;第三章 有穷状态自动机;定义 3-7:
确定的有限自动机 ,记作 DFA,为一个五元组 M = Q, ∑, δ, q0 , F ,其中,
Q,∑, q0,F 的意义与 FA 定义相同;
状态转移函数δ: Q × ∑ → Q 为单值映射函数,即,对 ?q ∈ Q 和 ?a ∈∑, δ(q, a) = p 有唯一映射值;M 在状态 q 下读入字符 a, 将状态 q 变成唯一状态 p,读头向右移动一个方格,指向输入字符串的下一个字符。 ;例1:
构造一DFM,使它接受语言 L={ x000y | x, y ∈{ 0, 1 }* }。;FA 的主框架分析 :
q0:M 的开始状态;
q1: M在 q0 后读入一个 0,其可能是子串 000 的第一个 0,记住;
q2 :M 在 q1 后又读入一个 0,其可能是子串 000 的第二个 0,记住;
q3:M 在q2后又读入一个 0,发现了子串 000 ,记住,此???
文档评论(0)