正在进行安全检测...

发布时间:1714282780   来源:文档文库   
字号:
- -- 编译原理实验报告( E01214055 鲁庆河
1. 实验名称:
不确定有穷状态自动机的确定化

2. 实验目的:
a 输入:非确定有穷状态自动机NFA b 输出:确定化的有穷状态自动机DFA
3. 实验原理:
a NFA确定化为DFA 同一个字符串α可以由多条通路产生,而在实际应用中,作为描述控制过程的自动机,通常都是确定有限自动机DFA因此这就需要将不确定有限自动机转换成等价的确定有限自动机,这个过程称为不确定有限自动机的确定化,NFA确定化为DFA
b NFA的确定化算法 ----- 子集法:

NFA的全部初态为S1S2Sn,则令DFA的初态为:
S[S1S2Sn] 其中方括号用来表示若干个状态构成的某一状态。
DFA的状态集K中有一状态为[SiSi+1Sj],若对某符号a∈∑,在NFA中有F{ SiSi+1Sj }a={ SiSi+1Sk },则令F{ SiSi+1Sj }a={ SiSi+1Sk }DFA的一个转换函数。若[ SiSi+1Sk ]不在K中,则将其作为新的状态加入到K中。

重复第2步,直到K中不再有新的状态加入为止。
上面得到的所有状态构成DFA的状态集K,转换函数构成DFAFDFA的字母表仍然是NFA的字母表 DFA中凡是含有NFA终态的状态都是DFA的终态。
c closureI)函数,move(I,a函数的
假设INFA M状态集K的一个子集(即IK,则定义ε-closureI)为: 1. QI,则Qε-closureI
2. QI,则从Q出发经过任意条ε弧而能到达的任何状态Q,则QclosureI 3. 状态集ε-closureI)称为状态I的ε闭包。
假设NFA M( K,,F,S,Z ,IKa∈∑,则定义IaclosureJ,其中J是所有从closureI)出发,经过一条a而到达的状态集。 NFA确定化的实质是以原有状态集上的子集作为DFA上的一个状态,将原状态间的转换为该子集间的转换,从而把不确定有限自动机确定化。经过确定化后,状态数可能增加,而且可能出现一些等价状态,这时就需要简化。

4. 实验思路:(数据结构及变量设计等
- . -word资料-
-
--




5. 实验小结:
在写此次试验之初,数据结构设计是这样的,K,E,S,Z都用一位字符数组存储,F用下面的链表存储,但是最终在写move函数时查找J集合麻烦,加之数据结构算法的实现基本功不够,在同学的指点下就从新定义了数据结构。

- . -word资料-

本文来源:https://www.2haoxitong.net/k/doc/1dc19d08a3c7aa00b52acfc789eb172dec6399d7.html

《正在进行安全检测....doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

相关推荐