• 编译原理-DFA的化简(最小化)


    对于给定的DFA    M,寻找一个状态数比M小的DFA    M'使得L(M)=L(M')

    1.状态的等价性:

    假设s和t为M的两个状态

    ①若分别从状态s和状态t出发都能读出某个字α而停止于终态,则称s和t等价

    ②存在一个字α,使得s和t一个读出α停止于终态,另一个读出α停止于非终态,则称s和t可区别

    2.基本思想:

    ①把M的状态集分为一些不相交的子集,使任何两个不同子集状态是可区别的,而同一子集的任何两个状态是等价的

    ②让每个子集选出一个代表,同时消去其他状态

    3.划分

    ①把S划分为终态和非终态两个子集,形成基本划分∏

    ②假定某个时候∏已含m个子集,记为∏={I(1),I(2),…,I(m)},检查∏中的每个子集能否进一步划分:

        (a)假定s1和s2是I(i)={s1,s2,…sk}中的两个状态,它们经过a弧分别到达t1和t2,而t1和t2属于现行∏中的两个不同子集,则s1和s2不等价

        (b)一般地,对于某个I(i),若Ia(i)落于现行∏中N个不同的子集,则应把I(i)划分成N个不相交的组

    例:

  • 相关阅读:
    activeMQ
    读写xml
    PLSQL
    oracle语法
    cxf远程调用服务
    FastDFS在linux下的安装和整合nginx实现上传图片和url访问
    dubbo和zookeeper的应用
    solr和Lucene的配置方式和应用
    win10 下安装 MongoDB 数据库支持模块(python)
    nodeJs 对 Mysql 数据库的 curd
  • 原文地址:https://www.cnblogs.com/mznsndy/p/10741818.html
Copyright © 2020-2023  润新知