首页 > 其他分享 >NFA确定化为DFA 并最小化DFA

NFA确定化为DFA 并最小化DFA

时间:2023-02-06 17:02:18浏览次数:35  
标签:状态 NFA 集合 确定 最小化 自动机 DFA


把 NFA 确定化为 DFA 的算法实现

1)转换思路

由非确定的有限自动机出发构造与之等价的确定的有限自动机的办法是确定的有限自动机的状态对应于非确定的有限自动机的状态集合,即要使转换后的DFA的每一个状态对应NFA的一组状态。该DFA使用它的状态去记录在NFA读入一个输入符号后可能到达的所有状态,也就是说,在读入符号串a1a2a3…an之后,该DFA处在这样一个状态,该状态表示这个NFA的状态的一个子集T,而T是从NFA的开始状态沿着某个标记为a1a2a3…an的路径可以到达的那些状态。

2)消除空转移

消除N—>ε形式的产生式,即消除空转移。状态集合I的a弧转换Ia:定义为一状态集,是指从状态集I出发先经过a弧后再经过若干条ε弧而能到达的状态的集合。可以写作:Ia= ε-closure(J),J=move(I,a),其中,J是从I中任一状态出发经过一条a弧到达的状态集合记为move(I,a)。

s 表示NFA的状态,T 表示NFA的状态集合,a表示一个input symbol

ε-transition(ε转换)就是说input symbol为ε时的transition(转换) 

3)数据流程图

NFA确定化为DFA 并最小化DFA_输入符号

 

 

 

 

 

 

 

 

 

 

实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

5. 把 NFA 确定化为 DFA 的算法实现

实现NFA例题为:

NFA M=({S,P,Z},{0,1},f,{s,p},{z})

其中

f(s,0)={p}        f(z,0)={p}          f(p,1)={z}

f(z,1)={p}        f(s,1)={s,z}

根据例题输入NFA各边的信息得出DFA结果如下图

NFA确定化为DFA 并最小化DFA_输入符号_02

 


标签:状态,NFA,集合,确定,最小化,自动机,DFA
From: https://blog.51cto.com/u_15955908/6039832

相关文章

  • DFA算法实现自管理敏感词
    工具类:SensitiveWordUtilimportjava.util.*;publicclassSensitiveWordUtil{publicstaticMap<String,Object>dictionaryMap=newHashMap<>();/**......
  • 最小化最大值(即在一组最大值中求最小值)问题
    用二分法,在一个范围内取中间数看有没有满足求最大值的条件(因为是先求最大值,再在最大值中求最小值),一次二分可以否定掉一半的范围,一次次缩减范围,锁定我们要求的数。假设我......
  • m基于自适应遗传优化的IEEE-6建设费用和网络损耗费用最小化电网规划算法matlab仿真
    1.算法描述电力工业是当今世界各国经济的重要组成部分,随着世界经济的不断发展,电网的建设和中长期规划和经济发展之间的矛盾变得越来越突出,对电力系统的需求也变得越来越大......
  • m基于自适应遗传优化的IEEE-6建设费用和网络损耗费用最小化电网规划算法matlab仿真
    1.算法描述        电力工业是当今世界各国经济的重要组成部分,随着世界经济的不断发展,电网的建设和中长期规划和经济发展之间的矛盾变得越来越突出,对电力系统的需......
  • CFG 和 DFA 的交集为 CFG
    起因是我队友问了我一个问题:我后面看了一下那题,等价的题意是求一个CFG和DFA交集,能识别的最短串的长度。虽然编译原理没学过,但是我在可计算理论上有学到过:有个结论是......
  • Debian11.6 最小化安装后设置
    一,Debian安装与启用sudo命令刚安装好的Debian默认还没有sudo功能。1.先进入root用户,调用下面的命令后,输入密码$su2.安装sudo#apt-getinstallsudo3.修改/e......
  • Pytest插件pytest-rerunfailures失败重跑
    Pytest插件pytest-rerunfailures失败重跑安装pipinstallpytest-rerunfailuresdochttps://github.com/pytest-dev/pytest-rerunfailureshttps://pypi.org/project/......
  • Servlet22 - BeanFactory
    BeanFactory-IOC-DI依赖/耦合软件系统中,层与层间存在依赖关系,称为耦合设计原则:高内聚低耦合--层内组成代码高度聚集,层间关系低耦合(理想情况-零耦合)如何实现低......
  • BeanFactory的总结
    BeanFactoryBeanFactory是Spring容器中的一个基本类也是很重要的一个类是Spring容器中的一个基本类也是很重要的一个类,在BeanFactory中可以创建和管理Spring容器中的Bean,它......
  • BeanFactory的总结
    BeanFactoryBeanFactory是Spring容器中的一个基本类也是很重要的一个类是Spring容器中的一个基本类也是很重要的一个类,在BeanFactory中可以创建和管理Spring容器中的Bean,......