前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编译原理:DFA的最小化

编译原理:DFA的最小化

作者头像
灯珑LoGin
发布2023-10-18 10:45:05
5650
发布2023-10-18 10:45:05
举报
文章被收录于专栏:龙进的专栏龙进的专栏

书本上关于DFA最小化的方法的文字说明比较晦涩,因此在这里举个实例来说明.

题目:最小化下图所示的DFA

1.写出DFA的状态转换矩阵

2.初始状态划分

把所有状态按照”是否为终结状态”,划分为2个集合:

3.考察每个元素数量大于2的集合

判断这些集合的元素经过推导后,所到达的状态的集合,是否位于现存的任一集合的子集中.如果位于不同的子集,那么就要对这个集合进行拆分.

3.1 Round1

由于状态1,2经过a后,得到的状态6,7是集合[5,6,7]的子集.而状态3,4经过a后,得到的状态1,4是集合[1,2,3,4]的子集.因此对集合{1,2,3,4}进行切分,分为{1,2}和{3,4}两个集合.

在经过切分后,当前所有集合变为{1,2}{3,4}{5,6,7}

3.2 Round2

由于状态6,7经过a后,得到的状态4是集合{3,4}的子集.而状态5经过a后,得到的状态{7}是集合{5,6,7}的子集.因此对集合{5,6,7}进行切分,分为{5}和{6,7}两个集合.

在经过切分后,当前所有集合变为{1,2}{3,4}{5}{6,7}

3.3 Round3

由于状态3经过b后,得到的状态5是集合{5}的子集.而状态4经过b后,得到的状态{6}是集合{6,7}的子集.因此对集合{3,4}进行切分,分为{3}和{4}两个集合.

在经过切分后,当前所有集合变为{1,2}{3}{4}{5}{6,7}

再进行验证可发现,到这一步为止,不再有新的切分,因此切分完成.

4.重命名状态,画出新的转换矩阵及DFA

重命名:

新的转换矩阵,其中状态4,5为终结状态.

最小化后的DFA:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年2月20日2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.写出DFA的状态转换矩阵
  • 2.初始状态划分
  • 3.考察每个元素数量大于2的集合
    • 3.1 Round1
      • 3.2 Round2
        • 3.3 Round3
        • 4.重命名状态,画出新的转换矩阵及DFA
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档