版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上计算机理论基础实验报告实验题目 :从NFA到DFA的转化姓 名 :院(系) : 专业班级 :学 号 : 指导教师 : 设计日期 :2013年 11月1日 1、 实验目的:1. 了解NFA和DFA的概念2. NFA和DFA之间的联系3. 从NFA到DFA的转化程序编写2、 实验原理1.NFANFA(nondeterministic finite-state automata)即非确定有限自动机, 一个非确定的有限自动机NFA M是一个五元式: NFA M=(S, , , S0, F)其中 S有限状态集 输入符号加上,即自动机的每个结点所射出的弧可以是中一个字符或是. S
2、0初态集 F终态集 转换函数 S× 2S (2S -S的幂集S的子集构成的集合)2.DFADFA(deterministic finite-state automata)即确定有限自动机,一个确定的有限自动机DFA M是一个五元式: M=(S, ,, S0, Z) 其中: S 有限状态集 输入字母表 映射函数(也称状态转换函数) S×S (s,a)=S , S, S S, a S0 初始状态 S0 S Z终止状态集 ZÍS3. NFA和DFA之间的联系在非确定的有限自动机NFA中,由于某些状态的转移需从若干个可能的后续状态中进行选择,故一个NFA对符号串的识别就必
3、然是一个试探的过程。这种不确定性给识别过程带来的反复,无疑会影响到FA的工作效率。而DFA则是确定的,将NFA转化为DFA将大大提高工作效率,因此将NFA转化为DFA是有其一定必要的。三、实验设计 通过本课程设计教学所要求达到的目的是:充分理解和掌握NFA,DFA以及NFA确定化过程的相关概念和知识,理解和掌握子集法的相关知识和应用,编程实现对输入NFA转换成DFA输出的功能。程序总框图如图1所示:总控模块NFA图结构状态转换表机构图操作初始化状态转换矩阵状态转换操作图1 程序总框图1、 子集构造法已证明:非确定的有限自动机与确定的有限自动机从功能上来说是等价的,也就是说,我们能够从:NFA
4、M DFA M使得 L(M)=L(M)为了使得NFA确定化,我们首先给出两个定义:定义1:集合I的-闭包:令I是一个状态集的子集,定义-closure(I)为:1)若sI,则s-closure(I);2)若sI,则从s出发经过任意条弧能够到达的任何 状态都属于-closure(I)。 状态集-closure(I)称为I的-闭包定义2:令I是NFA M的状态集的一个子集, a 定义: Ia=-closure(J) 其中J = (s,a)J是从状态子集I中的每个状态出发,经过标记为a的弧而达到的状态集合。Ia是状态子集,其元素为J中的状态,加上从J中每一个状态出发通过弧到达的状态。给定如图2所示的
5、NFA:bbaab0123 4图2与之等价的DFA如图3:bab0,12,443a图32 、程序设计2.1 常量定义#define MAX 10#define NumMaxChar 10#define NumMAXTN 10 #define INFINIT 327672.2 数据结构定义NFA图结构定义如下:typedef struct edge /边int dest;char cost;struct edge *link; /指向下一边*Edge; typedef struct vertex /顶点char data; /状态Edge adj; /边*Vertex; typedef stru
6、ct graph /图Vertex NodeTable;int NumVertex;int MaxNumVertex;int NumEdge;*Graph;状态转换表机构定义如下:typedef struct tablenode /转换表节点char newname; /新命名char chMAX; /顶点集合*TableNode; typedef struct tablequeue /转换表列TableNode TNMAX; /转换表节点数组char transword; /转换条件int NumTn; /添加的顶点数*TableQueue; typedef struct transmatr
7、ix /状态转换矩阵TableQueue TQ; /转换表列组int transnum; /转换表列数*TranMatrix;3.测试分析用正规表达式101(0|1)*011进行测试。首先在“请输入NFA的总状态数”后输入“9”,接着在“请依次输入NFA的状态名称:”后依次输入08,在“请输入NFA的边数:”后输入“10”,然后依次输入各起始状态、接受字符和到达状态,接受字符为2,依次为0、1,新状态依次命名为07,程序最后结果正确。程序运行截图如下:四、实验总结通过此次对从NFA到DFA的转化的设计,使我更好的理解了NFA确定化过程的相关知识,很好的理解了子集法的演算过程。经过多次试验,在正确输入相关数据的情况下,程序能正常运行,当错误操作或输入错误数据时,程序将应错误自动关闭。经过这次课程设计,也让我深刻的认识到实践才是最重要的。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- OIDC提供者配置动态注册安全性检测报告
- 2026年初中语文专题教研活动
- 2026年职业运动员身体素质
- 2026年高效数学课堂教学模式
- 2026年服装行业职业目标规划书
- 鹤壁能源化工职业学院《肿瘤放射治疗学》2026-2027学年第一学期期末试卷含解析
- 汽车控制器:软件定义汽车与电子电气架构升级驱动下的核心电子控制平台市场
- 厦门华天涉外职业技术学院《数字影视特效与合成》2026-2027学年第一学期期末试卷含解析
- 长春科技学院《大学语文-经典阅读》2026-2027学年第一学期期末试卷含解析
- 重庆科创职业学院《应用开发实践》2026-2027学年第一学期期末试卷含解析
- 2024届北京十一学校物理八年级第二学期期末考试模拟试题含解析
- 湖北省黄冈市2024年中考历史模拟试卷及答案
- 勇气大爆发二声部合唱五线谱
- 预防接种妈妈班课堂小结
- 中建极端恶劣天气综合应急预案应急方案
- 投标报名信息表
- 地理教育测量与评价
- 小学体育-单手肩上投篮教学设计学情分析教材分析课后反思
- 框剪结构18层住宅楼工程施工组织设计方案范本
- 招标投标法及招标实务
- 基础营养学(能量+三大产能营养素)课件
评论
0/150
提交评论