编译原理实验NFA确定化为DFA

更新时间:2023-07-14 16:31:15 阅读: 评论:0

电梯销售
2016.11.02
不确定有穷状态自动机的确定化
一、实验名称
    不确定有穷状态自动机的确定化
二、实验目的
输入:非确定有穷状态自动机NFA
金子是怎么形成的
输出:确定化的有穷状态自动机DFA
三、实验原理
    1、NFA定义
    一个不确定的有穷自动机M是一个五元组,M=(K,E,f,S,Z)其中
a. K是一个有穷集,它的每个元素称为一个状态;
b. E是一个有穷字母表,它的每个元素称为一个输入符号;
c. f是一个从K×E*到K的子集的映像,即:K*E*->2k,其中2k表示K的幂集;
d. S包含于K,是一个非空初态集;
e. Z包含于K,是一个终态集。
2、DFA的定义
欧派家居怎么样一个确定的有穷自动机M是一个五元组,M=(K,E,f,S,Z)其中
a. K是一个有穷集,它的每个元素称为一个状态;
b. E是一个有穷字母表,它的每个元素称为一个输入符号;穿井得人
c. f是转换函数,是K×E->K上的映像,即,如f(ki,a)=kj(ki∈K,kj∈K)就意味着,当前状态为ki,输入字符为a时,将转换到下一状态kj,我们把kj称作ki的一个后继状态;
举手英文d. S∈K,是唯一的一个初态;
高压锅蒸米饭要几分钟
e. Z包含于K,是一个终态集,终态也称可接受状态或结束状态。
3、closure函数
状态集合I的ε—闭包,表示为ε—closure(I),定义为一状态集,是状态集I中的任何状态S经任意条ε弧而能到达的状态的集合。
4、move函数
    状态集合I的a弧转换,表示为move(I,a),定义为状态集合J,其中J是所有那些从I中的某一状态经过一条a弧而到达的状态的全体。
四、实验思路
    本次实验采用python完成。
    1、输入
    根据课本NFA的定义,输入五元组,依次输入状态集、输入符号、初态集、终态集以及
映像,将这些分别存入五个列表中。其中关于映像的输入格式:先输入状态一,再输入输入符号,最后输入状态二,一次输入一条弧。
    2、closure算法司马光教学设计
    定义closure函数形式为closure(a,f),其中,a为要做closure闭包的状态集合,f为NFA的映像的集合。具体思想为:
    a.设立一个最终返回结果的列表b,初值与列表a相等。设立一个空列表s,用于存放每次closure闭包新加入的状态。
    b.执行while循环,此循环判断条件为1,即会一直执行下去,直到遇到closure闭包没有新增状态的时候执行结束。
天涯情感社区

本文发布于:2023-07-14 16:31:15,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1096433.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:状态   输入   实验   列表   确定   集合
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图