java 实现nfa的化简_DFA与NFA的等价性,DFA化简

等价性

对于每个NFA M存在一个DFA M’,使得L(M)=L(M’)--------等价性证明,NFA的确定化

f4331f67b6c2fd8bff2b12fcfd97fed4.png

假定NFA M=,我们对M的状态转换图进行以下改造:

9f4ffee64942e89d9afb90ff5b65b3ce.png

解决初始状态唯一性:引进新的初态结点X和终态结点Y,X,Y∉S,从X到S 0中任意状态结点连一条ε箭弧, 从F中任意状态结点连一条ε箭弧到Y

4fd0660554fa42ca8b494f910532854d.png

简化弧上的标记:对M的状态转换图进一步施行替换,其中k是新引入的状态

0015e26ed624409df1b7e06ffd355957.png

bc5b0d0c840b6ce1bf7c2d78c000f21a.png

逐步把这个图转变为每条弧只标记为Σ上的一个字符或ε,最后得到一个NFA M’,显然L(M’)=L(M)

91d758b76ddeefabf55a94e2020467f4.png

395ff2e240610891e2c6949501c752d3.png

cc5efeed32d90dcdd0af0703c271f023.png

111e4ed206c50fc41fa4a26e8511028f.png

把表看成状态转换矩阵,子集视为状态,转换表唯一刻划了一个确定的有限自动机M,初态是ε-closure({X}),终态是含有原终态Y的子集,不难看出,这个DFA M与M’等价对于每个NFA M存在一个DFA M ’ ,使得 L(M)=L(M’),NFA和DFA等价

8f5f0fef6b1ced71ff0cfe356a22813c.png

3433f3dc33ab1bfb47c6a52fa4074a18.png

确定有限自动机的化简

对于给定的DFA M,寻找一个状态数比M少的DFAM’,使得L(M)=L(M’),假设s和t为M的两个状态,称s和t等价:如果从状态s出发能读出某个字α而停止于终态,那么同样,从t出发也能读出α而停止于终,两个状态不等价,则称它们是可区别的态;反之亦然

基本思想

把M的状态集划分为一些不相交的子集,使得任何两个不同子集的状态是可区别的,而同一子集的任何两个状态是等价的, 最后,让每个子集选出一个代表,同时消去其他状态。

对DFA的状态集合S进行第一次划分,正确的分法是:终态和非终态

f9bac4bfff227fd388ab50f8a1a9d1d6.png {0} {1} {2} {3, 4, 5, 6}

bc0bd4300f9846701c99be3b3e63c76a.png

98f6e88f83095d64c9acf77e8fd5a28c.png

3923f101b825a1301403d66259fa37ac.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eclipse查看git地址_gitamp;github的入门实战

一、Git概述(1)定义Git是目前世界上最先进的分布式版本控制系统。(2)能干什么?解决冲突、管理权限、代码备份、协同开发、版本还原、历史追查、版本记录、分支管理、代码审查(3)集中管理型版本管…

使用Apache Kafka作为消息系统的发布-订阅通信中的微服务,并通过集成测试进行了验证...

发布-订阅消息系统在任何企业体系结构中都起着重要作用,因为它可以实现可靠的集成而无需紧密耦合应用程序。 在解耦的系统之间共享数据的能力并不是一个容易解决的问题。 考虑一个企业,其中具有使用不同语言和平台独立构建的多个应用程序。 它需要以响应…

LINUX系统无线网频繁断开_Ubuntu系统安装amp;amp;解决WiFi不可用

写系统安装的文章太多太多了,我为何还要写哪? 因为文章太多太多了,乍一看各种操作猛如虎,实际上可能对你没有一点的帮助。好多文章只是讲解了如何安装ubuntu系统,对于安装后遇到的问题只字不提,笔者决定写一…

return两个返回值_LeetCode 第四题 寻找两个有序数组的中位数

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 [1, 3]nums2 [2]​则中位数是 2.0示例 2:nums1 [1, 2]nums2 [3, 4]​则中…

intellij 使用_使用IntelliJ书签

intellij 使用这是有关IntelliJ的精美书签功能的快速帖子。 IntelliJ使您可以为单行代码添加书签。 将某行添加为书签后,您可以使用多种方法直接跳回该行。 因此,最好在您经常使用的代码位置添加书签。 要创建一个新书签,只需在代码编辑器中…

[即将举行的网络研讨会]对Kubernetes进行故障排除:您需要具备的7个关键组件

如果您没有听说过,那么容器正在吞噬整个世界。 这种转变正在改变我们在开发,交付和维护应用程序方面所知的一切,尤其是在解决错误方面。 有这么多动人的东西,让您难以发现潜伏在基于Kubernetes的应用程序中的关键问题。 传统的故…

php能打开.shp文件吗,shp文件是什么格式的

shape文件由ESRI开发,一个ESRI的shape文件包括一个主文件,一个索引文件,和一个dBASE表。其中主文件的后缀就是【.shp】。本文操作环境:Windows7系统,Dell G3电脑。shape文件由ESRI开发,一个ESRI(Environmen…

成为Java流大师–第5部分:将联接的数据库表转换为流

是否可以将联接的数据库表转换为Java Stream? 答案是肯定的。 既然我们已经多次提出这个问题,我们决定写另一篇动手实验文章,解释如何执行更高级的Stream Joins。 因此,这里是第六篇中的第五篇,后面还有一个GitHub存储…

mysql数据库java链接,java链接MySQL数据库方法

第一步:安装MySQL这步我就很少说了,点击去看看怎么安装吧。html第二步:建立数据库安装好以后,咱们来建立一个数据库,一个表。(代码以下)。//建立数据库 test;//在数据库中建立表 user//插入一条数据create …

matlab虚线分格线,虚线实线网格线……一分钟看懂路面标志线,不再被扣分!

黄色实线黄色实线用来区分不同方向的车道,一般画在马路正中间,车道多的路面上就是双黄线,车道少的路面上则用单黄线。而无论单黄线还是双黄线,均严格禁止车辆跨越,因此压线行驶、超车或者掉头等都是不允许的。黄色虚线…

python 判断列表为空_Python 判断列表为空

原博文 2020-06-05 12:38 − https://mp.weixin.qq.com/s?__bizMzU2MDQwOTU0MA&mid2247483845&idx1&sndaf1d3661b4e6b6a15dbe40c7f9c0e14&chksmfc093f6ecb7eb678c22e3... 相关推荐 2019-09-28 21:13 − Python python是一种跨平台的计算机程序设计语言&#x…

clodeblocks debug断点调试_idea debug调试————简单常用,适合初学者

背景:在现在的开发中,如果不会debug,那么将会给我们的开发带来很大的困扰,如果仅仅是依靠日志信息去查问题,将会大大增加我们解决问题的难度,下面说一下idea开发工具下的简单debug。适用人群:ja…

bigdecimal判断等于0_vue2.0源码用到的工具函数,12个简易的复用函数,看看有多简单...

戎马:https://segmentfault.com/a/11900000196796381. 创建一个被冻结的空对象export const emptyObject Object.freeze({ }) 一旦创建不能给这个对象添加任何属性。2. 判断是否是 undefined 或 nullfunction isUndef (v) { return v undefined || v null}在源码…

告诉我们您想要什么,我们将做到:消费者驱动的合同测试消息传递

相当早以前,我们从REST(ful) Web API的角度讨论了消费者驱动的合同测试 ,尤其是将其投射到Java( JAX-RS 2.0规范)的角度。 可以公平地说,至少在公共API方面, REST仍在Web API领域占据…

宝塔面板php降级,宝塔面板6.8.8降级到5.9.1的方案教程

有朋友问起,6.8版本用的不习惯,而且缺少5.9版本的nginx过滤器,而且6.8版本许多功能阉割的厉害:服务器状态中的 连接管理、进程管理 也都被阉割,5.9版本是可以在面板中查看服务器进程管理的,如图&#xff1a…

c++矩阵连乘的动态规划算法并输出_「Javascript算法设计」× 动态规划与回溯算法...

目录:分而治之算法动态规划回溯算法分而治之算法分而治之算法是算法设计的一种方式,它将一个问题分成多个和原问题相似的小问题,递归解决小问题,再将解决方式合并以解决原来的问题(例如快速排序,二分搜索等…

背包问题九讲_背包问题

背包问题九讲我发现背包问题既棘手又有趣。 我敢肯定,如果您正在访问此页面,您已经知道了问题说明,但是只是为了完成本章: 问题: 给定一个最大容量为W和N的背包,每个背包都有自己的值和重量,将…

随机森林的特征 是放回抽样么_机器学习超详细实践攻略(10):随机森林算法详解及小白都能看懂的调参指南...

一、什么是随机森林前面我们已经介绍了决策树的基本原理和使用。但是决策树有一个很大的缺陷:因为决策树会非常细致地划分样本,如果决策树分得太多细致,会导致其在训练集上出现过拟合,而如果决策树粗略地划分样本,又不…

http端口_PhpStorm 修改默认端口号63342

PhpStorm 修改默认端口号63342​blog.csdn.net关键词PhpStorm phpStorm phpstorm 修改默认端口号63342 8080 80步骤1.打开Settings2. Build, Execution, Deployment→Deployment3.点击添加,选择In place起一个名字(可以随便起)在Web server U…

rds mysql 磁盘空间,RDS MySQL 空间问题的原因和解决

other_size- 系统文件和临时文件使用空间data_size- 数据文件使用空间binlog_size- Binlog 文件占用空间注:获取实例诊断报告的步骤请参考如何访问RDS 实例诊断报告。2. 解决RDS 实例支持单独升级磁盘空间,升级磁盘空间是解决空间问题的有效方式之一。下…