- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)