当前位置: 首页 > news >正文

Hopcroft算法划分解释

//基于等价类的思想
split(S){foreach(character c)if(c can split s)split s into T1, ..., Tk
}hopcroft()split all nodes into N, Awhile(set is still changes)split(s)

 根据状态是否为终结状态划分为终结状态A,和非终结状态N

对这两个大集合,分别进行hopcroft等价类判断,并进行划分

可以举例子来看一下

针对这个DFA图,首先将其切分为 N 和 A, N 是 q0, A 是 {q1, q2, q3}。

N无法再分,可以对A进行划分。

针对字符b,q1,q2,q3都将转到该集合

针对字符c,q1,q2,q3都将转到该集合,所以不需要对A进行划分。

因此最终得到的最小化DFA为

再举一个例子

N : {q0, q1, q2, q4}

A : {q3, q5}

针对N,字符e可以将q2,q4划分出去,q0和q1在接收e时仍在集合内部,但是q2和q4就会转移到q3,q5,因此得到{q0,q1},{q2,q4},{q3,q5}

针对{q0,q1},字符e可以将q1划分出去,q0仍在集合内,q1会转移到{q2,q4},因此可以划分为{q0},{q1}

针对{q2,q4},无法再分

针对{q3,q5},无法再分


http://www.mrgr.cn/news/40556.html

相关文章:

  • Acwing 组合计数
  • 第十九章(自定义类型:结构体)
  • 今日指数项目项目集成RabbitMQ与CaffienCatch
  • 【漏洞复现】泛微OA E-Office do_excel.php 任意文件写入漏洞
  • 编码能力提升计划 - 华为OD统一考试(E卷)
  • C++入门基础 (超详解)
  • Trilium Notes笔记本地化部署与简单使用指南打造个人知识库
  • Spring Boot与足球青训后台系统的协同
  • IPv4与TCP数据包结构解析
  • 计算机视觉(CV)技术的优势和挑战
  • 2024北京市赛 A.不要玩弄字符串
  • 【DCGAN 生成漫画头像】
  • 拥抱可持续创新,数据驱动未来——The Open Group 2024生态系统架构·可持续发展年度大会盛情邀约
  • ubuntu 24.04如何分配内存
  • 对个人来说,炒股有赚钱的吗,个人炒股真能赚到钱吗
  • TIM(Timer)定时器的原理
  • C语言进阶【8】--联合体和枚举(联合体和枚举这么好用,你不想了解一下吗?)
  • 为啥数据需转换成tensor才能参与后续建模训练
  • 基于JAVA+SpringBoot+Vue的社区养老服务平台
  • 力扣10.1