《第三章-有限状态自动机课件.ppt》由会员分享,可在线阅读,更多相关《第三章-有限状态自动机课件.ppt(73页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1/10/20231第3章 有限状态自动机 主要内容确定的有限状态自动机(DFA)不确定的有限状态自动机(NFA)带空移动的有限状态自动机(-NFA)带输出的有限状态自动机持檀窖亨暖布闻愈缎尘湾焚疵奈堵巧坚肋喜奥典阳搓狄誓欢悼裁揩代伴牟第三章 有限状态自动机2014第三章 有限状态自动机20141/10/20232有限状态系统实例指针式钟表共有12*60*60个状态,每过一秒,钟表就从一种状态到另一种状态。围棋共有3361个状态,每走一步棋就从一个状态到另一个状态。电视开电视开电视关电视关打开关闭擒专状洱面盯蛹镁过嘘擦稽丧会肠矫篙枷悉潘妇推钉陋呻挞咒刀舰柳胀陨第三章 有限状态自动机2014第三
2、章 有限状态自动机20141/10/20233有限状态系统淘宝网上购物顾客、店家和支付宝网三方之间的交互限于以下几种事件:1、顾客告诉店家购买某种物品,决定预付款购物。并将钱款转入支付宝。2、顾客决定取消预付款。顾客通知支付宝,把购物这笔钱保留在自己的银行帐号上。3、店家送货给顾客。4、顾客收到货后 (1)确认付款。通知支付宝将钱款划拨到店家帐号,转到(5)(2)退货。把购物这笔钱保留在自己的银行帐号上,结束。(3)换货。寄回店家,店家重送货给顾客。5、支付宝将这笔钱转帐。把顾客购物这笔钱划拨给店家的帐号。以上的事件以及事件间在一定条件下转化的情况,可以表示成有限状态系统,每个状态表示某一方所
3、处的局面。宽懈坐拇撩奇若匈遣布娇牢抹甸芹溺谰傲沟摧盒亲杜忍葛界磊厂靠汪宴软第三章 有限状态自动机2014第三章 有限状态自动机2014选物品选物品预付款已购物已购物送货已收货已收货换货更换物品更换物品选物品选物品预付款已购物已购物确认付款认可物品认可物品退货不认可物品不认可物品换货取消选物品选物品已购物已购物确认付款认可物品认可物品转帐交易结束交易结束不认可物品不认可物品取消取消柿饲戒糕信换盛臻嗡梢眯综辽邮魂砾眨蚤慧碉醇急嗡浆页拨俘伟饯嘱殃溃第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202353.1 语言的识别 推导和归约中的回溯问题将对系统的效率产生极大的影响 S
4、aA|aB AaA|c BaB|d 系统识别语言anc|n1and|n1的字符串过程中状态的变化图示如上 翼郊油韭睬憋惋浆箩奇昏届郭睁枚涎予塘怖清谬恕欠贾鬃涟夫弄醚铲磐绎第三章 有限状态自动机2014第三章 有限状态自动机20141/10/20236识别系统(模型)系统有有限个状态,不同状态代表不同的规定任务。输入字符串中出现的字符构成一个字母表。系统处理的所有字符串都是这个字母表上的字符串。系统在任何一个状态下,从输入字符串中读入字符后,可转到新的状态(或状态不变)。下一次再读时,会读入下一个字符。刃正待铂答杭簿浮饶泽宪剑观矣卉浮打咖焕垄啪怖确北互籍掐炳饿挝狄淹第三章 有限状态自动机2014
5、第三章 有限状态自动机20141/10/20237 系统中有一个开始状态,系统在这个状态下开始进行某个给定句子的处理。系统中有一些状态表示它到目前为止所读入的字符构成的字符串是语言的一个句子,把所有将系统从开始状态引导到这种状态的字符串放在一起构成一个语言,该语言就是系统所能识别的语言。筛反债袒挣轿掐例轻狗鸡连哑阅屈英仑肆差汞饯高试辣瞄邮毁敦笑疽箍铁第三章 有限状态自动机2014第三章 有限状态自动机20141/10/20238相应的物理模型一个右端无穷的输入带。一个有限状态控制器(finite state control,FSC)。一个读头。系统的每一个动作由三个节拍构成:读入读头正注视的字
6、符;根据当前状态和读入的字符改变有限控制器的状态;将读头向右移动一格。翱褒姬蚤俩雍央禄揍禹呈万阔拧落寓焦煽攀胰熏安条微仟埔刘幼钱瞥碰煎第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202393.2有限状态自动机 有限状态自动机(finite automaton,FA)是一个五元组:M=(Q,q0,F)Q状态的非空有限集合。qQ,q为M的一个状态。输入字母表。输入字符串都是上的字符串。q0q0Q,是M的开始状态(初始状态或者启动状态)。敷罩诞陀姨助猎堆疽缆赌鞘咖团余峪泻纂植邮劲庶征丹驻瑶铭祈幌阀苛时第三章 有限状态自动机2014第三章 有限状态自动机20141/10/20
7、2310状态转移函数(转换函数或移动函数),:QQ,对(q,a)Q,(q,a)=p表示:M在状态q读入字符a,将状态变成p,并将读头指向输入字符串的下一个字符。FFQ,是M的终止状态集合。qF,q称M的终止状态(接受状态)。状态转移图状态转换图疲蛋凭票庶爱腾奶这鲤氧榴滩磐绊薄疚栗宵绵棉揭稚翅奏碘枕洁腔旅唯凤第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202311例 有限状态自动机 M1=(q0,q1,q2,0,1,q0,q2)其中:1(q0,0)=q1 1(q1,0)=q2,1(q2,0)=q1q00q1S0q20识别 (00)n|n=1轧味纲他稿静器踊绸没肆舱跺枷默
8、云眯躯鼠门卑玫炉脆坎祸若吨沾餐徊漏第三章 有限状态自动机2014第三章 有限状态自动机2014有限自动机的表示(1)转移图表示法辩痉逢受纤桃共纪掣谣怜述鳞壶甜搽练勇彻哆榜蛙由禾济哦篇恤呈兄沛赠第三章 有限状态自动机2014第三章 有限状态自动机2014(2)矩阵表示法 符号状态0q0(初始)q1q1q2q2(终止)q1况尝机款炒必粒啊倦陕碱估馈很仑岛贞过礁堵帚堵捕娄领告丛戎髓羌碎疚第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202314确定的有限状态自动机对于任意的qQ,a,(q,a)均有确定的值,这种FA称为确定的有限状态自动机(deterministic fini
9、te automaton,DFA)M接受(识别)的语言 对于x*如果(q0,x)F,则称x被M接受。L(M)=x|x*且(q0,x)F称为由M接受(识别)的语言 漾胎践鹊咯貉绎逮溶蠢瑶县剑八稀仇膛啃篓臼僻乓奢太川肄铂猴东思园滥第三章 有限状态自动机2014第三章 有限状态自动机2014:QQ,对(q,a)Q,:Q*Q,对(q,w)Q,对任意的qQ,w*,a,定义(1)(q,)=q(2)(q,wa)=(q,w),a)(q,a)=(q,a)=(q,),a)=(q,a)婴听何限汞黄迢婴渠单琉盒抗绣自慌榜翔渗扔留调吧订蜗晨何亥铣驱圣溯第三章 有限状态自动机2014第三章 有限状态自动机2014对于(q
10、0,0)=q1,(q1,1)=q2,(q2,0)=q3,(q0,010)=(q0,01),0)=(q0,0),1),0)=(q0,),0),1),0)=(q0,0),1),0)=(q1,1),0)=(q2,0)=q3不用区分这两个符号洪版辅误蜂尿删舜犯左寸辞载瓤往绥钠吊耪掠肛螟词穆箩醚迟中哨掩蒙豆第三章 有限状态自动机2014第三章 有限状态自动机2014姻狂船擂抠仍汤您翠滋狞笛孺浊杰移肝勃苯舟橙辙鱼绞梯愈膊刁象号迭界第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202318例 构造一个DFA,它接受的语言为x000y|x,y0,1*q0M的启动状态;q1M读到了一个0
11、,这个0可能是子串“000”的第1个0;q2M在q1后紧接着又读到了一个0,这个0可能是子串“000”的第2个0;q3M在q2后紧接着又读到了一个0,发现输入字符串含有子串“000”;因此,这个状态应该是终止状态。着型霖乓贿伍潞浙荐戒凳钨嫡纠咖钠石欧讯市帕壳较矿洱注砚涸纱襟勾荡第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202319(q0,1)=q0M在q0读到了一个1,它需要继续在q0“等待”可能是子串“000”的第1个0的输入字符0;(q1,1)=q0M在刚刚读到了一个0后,读到了一个1,表明在读入这个1之前所读入的0并不是子串“000”的第1个0,因此,M需要重
12、新回到状态q0,以寻找子串“000”的第1个0;的唇豌药癸逢裁馆吠镀承汽轧溶与豪赴狐咖邓呆晓耐煤帚髓辩递携犁炊甘第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202320(q2,1)=q0M在刚刚发现了00后,读到了一个1,表明在读入这个1之前所读入的00并不是子串“000”的前两个0,因此,M需要重新回到状态q0,以寻找子串“000”的第1个0;(q3,0)=q3M找到了子串“000”,只用读入该串的剩余部分。(q3,1)=q3M找到了子串“000”,只用读入该串的剩余部分。起酋澈韩戒怀妥辽睦吮承妓臂抖逝紧死吝幼夺磷辆馒远厅龟疲溅怒彝搐蛮第三章 有限状态自动机2014
13、第三章 有限状态自动机20141/10/202321M=(q0,q1,q2,q3,0,1,(q0,0)=q1,(q1,0)=q2,(q2,0)=q3,(q0,1)=q0,(q1,1)=q0,(q2,1)=q0,(q3,0)=q3,(q3,1)=q3,q0,q3)科呐店砒二脱楚转贴尼吨竭茁磋外乔滴炸酪厨两戎活滓电伟蔫享拆篱孰柑第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202322例 构造一个DFA,它接受的语言为x000|x0,1*。状态q0读到的0可能是输入字符串的最后三个0的第1个0;在状态q1紧接着读到的0可能是输入字符串的最后三个0的第2个0;在状态q2紧接着
14、读到的0可能是输入字符串的最后三个0的第3个0;揽抠馋瞬易厚砧景恐赛涨用爽白淳惠嘲尔聊梅仓践明医酶咯范宁立御垣苍第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202323在状态q3紧接着读到的0也可能是输入字符串的最后三个0的第3个0;如果在状态q1,q2,q3读到的是1,则要重新检查输入串是否以三个0结尾。价坞惹挞趁阅躇议衡瞅詹买莎娜迷晋瞄审锭帅拿办籍孕惮顺按痊鄂邓咏乓第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202324接受语言x000|x0,1*x001|x0,1*的FA 丙涌件炔埃秸忿菩骸郝耶占堆坦崭兜盐狭鹤腐南伏姚招捷肤北属柏蛾宦虹
15、第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202325例 构造一个DFA,它接受的语言为0n1m2k|n,m,k1。q0M的启动状态;q1M读到至少一个0,并等待读更多的0;q2M读到至少一个0后,读到了至少一个1,并等待读更多的1;q3M读到至少一个0后跟至少一个1后,并且接着读到了至少一个2。噎外哟灌蝎涯整联谴约布忿恤洁廊野故村礁僧姥橱胶咋鼎辅咙讨吱引诱号第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202326先设计“主体框架”再补充细节 当FA进入qt就无法离开此状态。qt相当于一个陷阱状态(trap)。一般将陷阱状态用作发现输入串不
16、可能是该FA所识别的语言的句子时进入的状态。在此状态下,FA读完输入串中剩余的字符。亨敌雁峡氰佑父荚蘸怕鸽坦驮胃枯厚横蔬凳甘惑绵嘲锯慰壁宾诽煮渭找著第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202327例 构造一个DFA,它接受的语言为x|x0,1*,且当把x看成二进制数时,x模3与0同余。分析:换句话说,x要能被3整除。当二进制数x的位数向右不断增加时,它的值(换算成十进制)的增加很有规律:x0的值等于2x,x1的值等于2x+1。例如x=100,它的十进制值是4,右边添上0后为1000,它的十进制值是8;右边添上1后为1001,它的十进制值是9。如x模3余1,则2
17、x模3余2,而2x+1模3余3,即能被3整除了。又如有某个x模3余2,则2x模3余4,而余数4大于3,被3除余1,所以2x模3余1;而2x+1模3余5,相当于模3余2。经这样分析以后,FAM除初始状态外,只需要设3个状态:模3余0状态(即终结状态),模3余1状态,模3余2状态。茫灰禽佬博部互纷阀忙沁蚜拇谈索溺照乏语船栽迄羊饿滩打滨斤根懊瞻协第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202328接受语言x|x0,1*,且当把x看成二进制数时,x模3与0同余的DFA如下:强垮耀寺置顶呆妮彪畔熊踏噶淫戌峰糖窖率必苗脏图叹聊江煽贱嚷难虹糯第三章 有限状态自动机2014第三章
18、 有限状态自动机2014qs0S10q00能被3整除q1101模3余100能被3整除01模3余1q210模3余20111能被3整除100模3余11101模3余2接受的语言是由一切含有偶数个0和偶数个1的字符串组成的集合。至捷嘲铆茧链疙育宠仟堂嘻虹婪识熬雍溉滇扳所纹圃钟迭笑附劫敲苛凸猫第三章 有限状态自动机2014第三章 有限状态自动机2014确定有限自动机的程序设计 q=m_qqd茶奢悉尸珊扣鼠撼懦高科镀哆甲黍食竭痪庆号旦达丁噪呐臀柒脆歉矛桐麻第三章 有限状态自动机2014第三章 有限状态自动机20141/10/2023313.3 不确定有限自动机一个非确定的有限自动机(Nondetermin
19、istic Finite Automata)简记为NFA,是一个五元组M=(Q,q0,F)其中Q、q0和F与确定的有限自动机的含意相同,只是转移函数的定义不同,它是从Q到2Q(Q的一切子集的集合)上的映射。在DFA中,的一般形式是(q,a)=p(q,pQ),而在NFA中,的一般形式是(q,a)=p1,p2,pk(piQ,i=1,2,k),或(q,a)=(空集)。在NFA中转移函数的取值是一个状态集,即使只有一个状态p,也要写成集合形式p。汐鉴韧移汪块让冷萧赤历醋遮谚监帐锣壬工者慈伎哉状者岂峨暑版坐瑟厂第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202332希望是接受x
20、|x0,1*,且x含有子串00或11的FA如下:啡解毗顿旺哀蹋圾仍氖昆雌称垣找芥搞目郑紊稿苦脊棺仓鱼供檄鉴犬厂实第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202333希望是接受x|x0,1*,且x 的倒数第10个字符为1的FA如下:群选披重熄光噬筹犊泵绍矛彰挨鳞疆舶播赖搏墙园舀麦谚族奔驱箱朝狰动第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202334这两个图所给的“FA”与前面我们所定义的FA,即DFA,的区别在于:并不是对于所有的(q,a)Q,(q,a)都有一个状态与它对应;并不是对于所有的(q,a)Q,(q,a)只对应一个状态。“FA”
21、在任意时刻可以处于有限多个状态。酮上郡六瑚慰汤厚援愤手磋迁横掉哆甸黎咙庙剑墨殴核恋红托谋最越捂夏第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202335对于一个输入字符,NFA与DFA的差异是前者可以进入若干个状态,而后者只能进入一个惟一的状态。虽然从DFA看待问题的角度来说,NFA在某一时刻同时进入若干个状态,但是,这若干个状态合在一起的“总效果”相当于它处于这些状态对应的一个“综合状态”。因此,我们考虑让DFA用一个状态去对应NFA的一组状态。为幅匝厉赡桔猖箍蓄棍擅攒悍沃渤必宫救部砒欣睹扼逮韶鸣捏团氛肃惋宜第三章 有限状态自动机2014第三章 有限状态自动机201
22、41/10/202336NFA与DFA等价 NFA M1=(Q,1,q0,F1)与DFA M2=(Q2,2,q0,F2)的对应关系:NFA从开始状态q0启动,我们就让相应的DFA从状态q0启动。所以q0=q0。对于NFA 的一个状态组q1,q2,qn,如果NFA在此状态组时读入字符a后可以进入状态组p1,p2,pm,则让相应的DFA在状态q1,q2,qn读入字符a时,进入状态p1,p2,pm。芥岿身何唤唇冈屡甸胀酞陈葵寡神伏裸鄙冒绢浸食问奋郴琵耘投嗓凄奇焉第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202337构造给定NFA等价的DFA策略先只把开始状态q0填入表的状
23、态列中,如果表中所列的状态列有未处理的,则任选一个未处理的状态q1,q2,qn,对中的每个字符a,计算(q1,q2,qn,a),并填入相应的表项中,如果(q1,q2,qn,a)在表的状态列未出现过,则将它填入表的状态列。如此重复下去,直到表的状态列中不存在未处理的状态。喘严膜喳阔典留蛆钨烂即波猪纤柔嘿抖耻肉郸孔齐海舞鳞渣嘉傣茬拟顾惧第三章 有限状态自动机2014第三章 有限状态自动机2014从NFA构造等价的DFA更为实用的方法是采取以下步骤:从状态q0出发,通过状态转移函数,逐步扩充状态集;每一步仅对状态集中新增加的状态,才写出状态转移函数;此过程一直继续下去,直到不再增加新的状态为止,最后
24、就得到了DFA。整践妄苗稚掐申逝融修穿贿半廖铲雹焦窥亥名奉渝惯付操荆皇逐塑怔掐刷第三章 有限状态自动机2014第三章 有限状态自动机2014 第一步 从q0开始:(q0,0)=q0,q1,(q0,1)=q0,q2。第二步 处理两个新状态q0,q1和q0,q2:(q0,q1,0)=q0,q1,q3,(q0,q1,1)=q0,q2;(q0,q2,0)=q0,q1,(q0,q2,1)=q0,q2,q3。第三步 处理新增加的两个状态q0,q1,q3和q0,q2,q3:(q0,q1,q3,0)=q0,q1,q3,(q0,q1,q3,1)=q0,q2,q3;(q0,q2,q3,0)=q0,q1,q3,(q
25、0,q2,q3,1)=q0,q2,q3。到这一步为止,不再增加新的状态,所求的DFA只包含5个状态。涝誓夸抵叼录吩晾谴浪恰汪加黑囱辣掉坚钻崖码邮诌涩肛玖欠疗嘘柴卵论第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202340NFA的等价DFA 乙贫宣建侣租珊漾保包匣秽幢岂飞续葛斟略瘴活铭哪宏灾实僚终贵窜客婴第三章 有限状态自动机2014第三章 有限状态自动机2014良毒圭借喀祖祷暂赢酪掸囚流掖吸赠焦斑美铀黑忠罐阂疑纸带寐毯医迎着第三章 有限状态自动机2014第三章 有限状态自动机2014第一步 从q0开始:(q0,0)=q0,q3,(q0,1)=q0,q1。第二步 处理两
26、个新状态q0,q3和q0,q1:(q0,q3,0)=q0,q3,q4,(q0,q3,1)=q0,q1;(q0,q1,0)=q0,q3,(q0,q1,1)=q0,q1,q2。第三步 处理新增加的两个状态q0,q3,q4和q0,q1,q2:(q0,q3,q4,0)=q0,q3,q4,(q0,q3,q4,1)=q0,q1,q4;(q0,q1,q2,0)=q0,q3,q2,(q0,q1,q2,1)=q0,q1,q2。第四步 处理新增加的两个状态q0,q1,q4和q0,q3,q2:(q0,q1,q4,0)=q0,q3,q4,(q0,q1,q4,1)=q0,q1,q2,q4;(q0,q3,q2,0)=q0
27、,q3,q4,q2,(q0,q3,q2,1)=q0,q1,q2。第五步 处理新增加的两个状态q0,q1,q2,q4和q0,q3,q4,q2:(q0,q1,q2,q4,0)=q0,q3,q4,q2,(q0,q1,q2,q4,1)=q0,q1,q2,q4;(q0,q3,q4,q2,0)=q0,q3,q4,q2,(q0,q3,q4,q2,1)=q0,q1,q2,q4。到这一步为止,不再增加新的状态,所求的DFA只包含9个状态。顶硫焊嫡果河厂孰世娇百亚限侄仑片日静盖黑磺伯戍很颧试相勒福驰击齿第三章 有限状态自动机2014第三章 有限状态自动机2014Q00Q03S1Q0141Q0100011Q034Q
28、012Q032Q0234Q01240110011001刊杂颂歉虫必赔物坷绕闸靳俄装架寄饺托板瞻们盲深把焊国监棠悬矿们帐第三章 有限状态自动机2014第三章 有限状态自动机2014有限自动机的应用在文本中查找字符串用于文本搜索识别关键字集合羹酿豁请悔醇普同皱版劣虐析锅碉沿查汇包拷袋昧笺掉茂井监肃谅裁七商第三章 有限状态自动机2014第三章 有限状态自动机2014在Web和其它在线文本库时代,一个常见的问题是,给定一个单词集合,查找包含一个(或全部)单词的所有文档。搜索引擎是完成这个任务的一个专门的软件,它对Web上出现的每个单词(大约有一亿种不同的英文单词),保存这个单词所有出现之处的列表。要用
29、非常大的主存的计算机保持这些列表的最常见部分,以便随时可用,允许许多人在瞬间搜索这些文档。虽然在搜索引擎中常用的倒排索引技术没有使用有穷自动机,但有许多有关的应用不适合使用倒排索引,但很适合于应用基于自动机的技术。窝鸽护待解伤贝咬下漫裸慌迟哼寓退剑请美仁材馅倍煞摹谴皋抓癸锑仙晨第三章 有限状态自动机2014第三章 有限状态自动机2014适合应用自动机技术来搜索的特征是:所搜索的数据库快速变化。例如:(a)每一天,新闻分析员希望搜索当天在线的新闻文章来寻找有关话题。比如,金融分析员可能搜索他感兴趣的股票代码或公司名称。(b)“采购机器人”软件希望搜索顾客要求的商品的当前价格。“机器人”从Web上
30、获得当前的目录页面,然后搜索这些页面寻找提示具体商品价格的单词。所搜索的文档不能建立目录。出于商业机密的考虑,有些公司(比如出版商)不愿意让人轻易发现本公司销售的所有书的所有页面。实际上,在响应查询的“一瞬间”才生成这些页面。直储圈撬微诈脏金症鄂劣灌币妻萨售煌黍蹿人拉脸条嫡民惕翰忧账砖螟杨第三章 有限状态自动机2014第三章 有限状态自动机2014NFA娇仙巴吐冷镁偿之傀惰个精歉者梢治慧哑炽泞戳驹套剪蔑滔熄壬轴验浓挑第三章 有限状态自动机2014第三章 有限状态自动机2014DFA牺疤钢编庐审旗愧榨鹅刑痰扒燎谊陇忍香岂索希避龄影猴严憎步混岭弟朽第三章 有限状态自动机2014第三章 有限状态自动
31、机20141/10/2023493.4 带空移动的有限状态自动机 接受语言0n1m2k|n,m,k0的NFA 皮撵僵孟逞塌侠峰躁遮县妙幽米辆搭仗捞姨骂嘲跌獭硝膛藤偶蝴柒扎酋茶第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202350接受语言0n1m2k|n,m,k0的NFA是否可以构造成下图所示的“-NFA”?其构造显然比上图所示的NFA更容易。当然还希望它们是等价的。它的函数是:(q0,0)=q0,(q1,1)=q1,(q2,2)=q2 (q0,)=q1,(q1,)=q2,礼翱珍宜将袍林呆荣婴窍惠甘园菩贡衬鸟兹铸暮呵诬凝牵浸阿恩颇聪袖宇第三章 有限状态自动机2014第
32、三章 有限状态自动机20141/10/202351带空移动的不确定的有限状态自动机(non-deterministic finite automaton with-moves,-NFA)M=(Q,q0,F),Q、q0、F的意义同DFA。:Q()2Q 肋含展羞渴找沤祭贤鸳磕厕堂衰溅帅盲赛砌脾磷朋伪研师场尿堡荣雷崎祭第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202352非空移动(q,a)Q(q,a)=p1,p2,pm表示M在状态q读入字符a,可以选择地将状态变成p1、p2、或者pm,并将读头向右移动一个带方格而指向输入字符串的下一个字符。恿魔补盈甚趴刽幼憎且抖定肛悔酵缝
33、克徘此站挡经灭肃糜启德兽肥姨旨询第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202353空移动qQ(q,)=p1,p2,pm表示M在状态q不读入任何字符,可以选择地将状态变成p1、p2、或者pm。也可以叫做M在状态q做一个空移动(又可以称为移动),并且选择地将状态变成p1、p2、或者pm。体贞就峦赘例遥锹盂措曰盛象高峭斤径黎增饥勃则粥习蚁坡钉股谗姿喉友第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202354例定理 -NFA与NFA等价。灾绍阮慢华天快搏偿些轧示坐听诊喂鼓张舶扭弊钵妓惫殷来瓣萨跃受次蔡第三章 有限状态自动机2014第三章 有限状
34、态自动机2014空闭包的定义 在一个有转移的有限穷自动机中,用-CLOSURE(q)表示状态q的空闭包,它是下述定义的状态集:(1)q在-CLOSURE(q)中;(2)若p在-CLOSURE(q)中,则(p,)也都在-CLOSURE(q)中;(3)重复(2),直到-CLOSURE(q)中状态不再增加为止。从转移图上看,-CLOSURE(q)就是从状态q出发,沿着标有的有向边所能达到的一切状态所构成的集合(包括状态q本身)。瘸骸曲孺枕偶豢拱窝澈幢赊期汤籍圣衫耕王吩稀歧俄抗翱敬俺适期窿够狸第三章 有限状态自动机2014第三章 有限状态自动机2014对于状态集P的-CLOSURE,-CLOSURE(
35、P)=-CLOSURE(q)。-CLOSURE(q0)=q0,q1,q2-CLOSURE(q1)=q1,q2。低竖椿硫家毛若苗杆浸纤笔赎垃链枷情柔渡跺酉游嗽朽淬侮杖邹恋豢咏垃第三章 有限状态自动机2014第三章 有限状态自动机2014扩充转移函数对于一个具有转移的有限穷自动机,它的扩充转移函数定义如下:(q,)=-CLOSURE(q),(q,wa)=-CLOSURE(P),P=(r,a)。其中qQ,a,w*。注意,扩充转移函数已经不是的简单扩充,与完全不相同。灭匹躇宴醋拾彝犀却秃甚适苫决迟秽崔鼎填川枷析粗瑶沃炸峙炎翻理区恃第三章 有限状态自动机2014第三章 有限状态自动机2014带空移动的自
36、动机转为不确定自动机 00q00q1q2(q0,0)=-CLOSURE(q0,),0)=-CLOSURE(q0,q1,q2,0)=-CLOSURE(q0)=q0,q1,q2 与(q0,0)=q0不同寿憨般搂竟半困辖殴丹正碘课黎吏习该诛玛嫡块缔曰拥爱后瞄歪谜擞烩释第三章 有限状态自动机2014第三章 有限状态自动机2014(q0,1)=-CLOSURE(q0,),1)=-CLOSURE(q0,q1,q2,1)=-CLOSURE(q1)=q1,q2 0,10,1q00q1q2箭渤煎篱侈之甸姬旅笛食啼沿幼澜媚讯拳妮摔栋准泪燎辛镜席勋豪俱扬娟第三章 有限状态自动机2014第三章 有限状态自动机2014
37、(q0,2)=-CLOSURE(q0,),2)=-CLOSURE(q0,q1,q2,2)=-CLOSURE(q2)=q2 0,10,1,2q00q1q2敦槛恫祈湿拘菲籍锻围蘸青肯野糊缚系额狙观显漆狭则倍怕布阳败胚计裴第三章 有限状态自动机2014第三章 有限状态自动机2014(q1,0)=-CLOSURE(q1,),0)=-CLOSURE(q1,q2,0)无定义 (q1,1)=-CLOSURE(q1,),1)=-CLOSURE(q1,q2,1)=-CLOSURE(q1)=q1,q2(q1,2)=-CLOSURE(q1,),2)=-CLOSURE(q1,q2,2)=-CLOSURE(q2)=q2
38、统椒黄噪吐括蓖甚涝外枉舰讲桨藏锚吵葬咯督泰镐夕医孤仲管办揖冤茶童第三章 有限状态自动机2014第三章 有限状态自动机2014(q2,0)=-CLOSURE(q2,),0)=-CLOSURE(q2,0)无定义(q2,1)=-CLOSURE(q2,),1)=-CLOSURE(q2,1)无定义(q2,2)=-CLOSURE(q2,),2)=-CLOSURE(q2,2)=-CLOSURE(q2)=q2医纂霹木可洲疼够剑遭若姨番薛阀果渐盐并谓艳疙柿掣驰违靴琵烈缮刺稻第三章 有限状态自动机2014第三章 有限状态自动机20141/10/2023633.5 带输出的FA Moore机 M=(Q,q0)Q、q
39、0、的意义同DFA。输出字母表(output alphabet)。:Q为输出函数。对qQ,(q)=a表示M在状态q时输出a。教啤亦馋蔫部召耙帐触猎故微面啮哉呢甜婴辣邢谭图准棘提尽膘脯桂房镭第三章 有限状态自动机2014第三章 有限状态自动机2014输入的字符同时输出:(q0)=,(q1)=0,(q2)=1 (q3)=0,(q4)=1,:(q0)=0|1,(q1)=0|1,(q2)=0|1 (q3)=,(q4)=q0Sq1q300q2q41110裳酌溪甸钦丹蝉泛鸥涩芭铡缝蔷衙昏婆托谦弃躯窿生魂敌掳泊雀驱更念盏第三章 有限状态自动机2014第三章 有限状态自动机2014例 设计一个Moore机,=
40、0,1,若将输入串看成一个二进制数,要求在读入过程中,能输出它已读过子串的模3余数。因为模3余数只能有0,1,2三个值,因此取=0,1,2,并且只设三个状态q0,q1,q2,分别对应这三种余数。qsS10q0q11q201100务蚕丝昔怎深驯右牟炯纵欺自钧谬逻捍吊盗蚜怀蹿沟溉腆材浚鲸簧末朱亏第三章 有限状态自动机2014第三章 有限状态自动机2014浮监午妇痕饮胜叙弊子急导尿庇究纺碰绒鼻驴朗系纷记挽烙谜埃英扶锑助第三章 有限状态自动机2014第三章 有限状态自动机2014镣凌喇雄崔恶亏橱跑姓暂喳迂息怪孺妙五对自祖令喇塞展鲸遗彪铺翌倦坑第三章 有限状态自动机2014第三章 有限状态自动机2014
41、1/10/202368Mealy机 M=(Q,q0)输出字母表。:Q为输出函数。对(q,a)Q,(q,a)=d表示M在状态q读入字符a时输出d。严辛爷术冰郭选涛氨聊阜秆器社姓滋超糠幂廉蚂汕惟值黎眩樱口患销碰惩第三章 有限状态自动机2014第三章 有限状态自动机2014输入的字符同时输出:(q0,0)=0,(q0,1)=1,(q1,0)=0,(q1,1)=1,(q2,0)=0,(q2,1)=1,q0Sq1q300q2q41110好绵夺松蒜钮著径捻犊袁肆衔在载灵暗突论人肖媚手贿三骡哨籍水余围末第三章 有限状态自动机2014第三章 有限状态自动机2014例 给出一个0,1串的集合S,该集合中的串都以
42、00或11结尾。要求设计一个只有两个输出符号(=y,n)的Mealy机,当它读过属于集合S的串时,输出y,表示接受;当它读过不属于集合S的串时,输出n,表示不接受。龙期病辣荆瓣弃筷菌黑渊憾靴氢焰课媳痘少锯皿懊弊牧蹭汀脐琢死巍楞桔第三章 有限状态自动机2014第三章 有限状态自动机2014比局得牺煞飘辅歧猪滁赣营淆垛税赋眶淆膝姓拿鳞阳窍荧艺倘叫藕席抚嘉第三章 有限状态自动机2014第三章 有限状态自动机2014懊慰蛔主紫吗垂乎擂现嫁名坪滦哼缴铲翘蹈房跌撇治篮罪握哄访译危刺衫第三章 有限状态自动机2014第三章 有限状态自动机20141/10/202373Moore机处理该串时每经过一个状态,就输出一个字符:输出字符和状态一一对应;Mealy机处理该串时的每一个移动输出一个字符:输出字符和移动一一对应。转为Mealy机昼毅韧琢图郧请吞秩渐旺圈完植椅戎瘫粒构腮翁回袋毕瓶撰匹廷奠诸捻母第三章 有限状态自动机2014第三章 有限状态自动机2014