用Java语言实现NFA到DFA的等价变换-Read.DOC

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用Java语言实现NFA到DFA的等价变换-Read

用Java语言实现NFA到DFA的等价变换 姓名:桂日培 单位:湖北工业大学计算机学院02计算机1班 学号:0212002123 时间:2005年10月31日 一、实验目的 1、理解什么是NFA和什么是DFA; 2、掌握NFA和DFA之间的等价变换; 3、了解程序设计语言Java的语言机制。 二、实验小组(按姓氏拼音排序):陈超、桂日培 三、术语解释 1、DFA 确定的有穷自动机(DFA)M是一五元组 M=(Q,∑,δ,q0,Z), 其中: Q是一有穷状态集; ∑是有穷输入字母表; δ是从Q×∑(Q的映射函数,称为状态变迁函数,定义式δ(q1,a)=q2表示在q1状态下读入字母a后,转到状态q2; q0∈Q是唯一的初态; Z包含于Q是终态集。 2、NFA 如果δ(q1,a)的值不唯一,而是一个状态子集的话,那么这样的FA是不确定的,称为不确定的有穷自动机(NFA)。NFA和DFA定义的主要差别是它们的映射函数不一样,NFA的δ函数定义为: δ:Q×∑(ρ 其中:ρ∈2Q,即ρ是Q的任意子集,2Q是Q的幂集。 四、实验步骤与内容 1、实验环境: 操作系统:Microsoft Windows XP 编译平台:Borland JBuilder 2006 Enterprise 2、步骤与内容: (1)启动JBuilder,新建一个名为:NFA_To_DFA的工程,模板为默认类型(Default project)。 (2)打开新建的工程。 (3)在工程里添加一个名为NfaDemo的Java文件。 (4)打开NfaDemo文件,编辑源代码。 (5)按“Ctrl+F9”对源文件进行编译。 (6)按“Ctrl+Shift+F9”对目标文件进行连接。 (7)点击工具栏上的“Run(Run “NfaDemo.java” using defaults”运行。 运行情况如下(以《程序设计语言编译方法》大连理工大学出版社(第三版)29页2.6(3为例)): D:\Borland\JBuilder2006\jdk1.5\bin\javaw -classpath E:\Java工程\NFA_to_DFA\classes;D:\Borland\JBuilder2006\jdk1.5\lib\dt.jar;D:\Borland\JBuilder2006\jdk1.5\lib\tools.jar;D:\Borland\JBuilder2006\jdk1.5\lib\htmlconverter.jar;D:\Borland\JBuilder2006\jdk1.5\lib\jconsole.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\javaws.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\sunjce_provider.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\localedata.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\sunpkcs11.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\dnsns.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\plugin.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\deploy.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\im\thaiim.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\im\indicim.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\charsets.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\jsse.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\rt.jar;D:\Borland\JBuilder2006\jdk1.5\jre\lib\jce.jar NfaDemo 请输入 NFA(Q,Σ,δ,q,F)的情况: 初态集q=1 终态集(格式如:E#或EF#)F=5# 请输入字母表(格式如:01#)Σ=01# 请输入变迁函数中变迁次数:6 请输入变换规则δ(格式如:A0B或AaB): 102# 202# 212# 213# 304# 415# 原来的NFA如下: 初始状态:q=[1] 终态集合:F=[5] 字母表:Σ=[0, 1] 变换规则如下δ: 1-0-2 2-0-2 2-1-

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档