woaidongmao

文章均收录自他人博客,但不喜标题前加-[转贴],因其丑陋,见谅!~
随笔 - 1469, 文章 - 0, 评论 - 661, 引用 - 0
数据加载中……

有限自动机的最小化算法

最小有限自动机,是指满足下述条件的确定有限自动机

⑴ 没有无用状态(无用状态已删除);⑵ 没有等价状态(等价状态已合并)。

Ⅰ.删除无用状态算法

【定义】无用状态是指自动机从开始态出发,对任何符号串都不能到达的状态。

【判别算法】 构造有用状态集 Qus

⑴ 设 q0 为开始态,则 令 q0∈Qus ;

⑵ 若 qi∈Qus 且有 d(qi,a)= qj 则令 qj∈Qus ;

⑶ 重复执行⑵,直到Qus不再增大为止。

⑷ 从状态集Q中,删除不在Qus中的所有状态。

Ⅱ. 合并等价状态算法

【原理】两个状态i,j等价,当且仅当满足下面两个条件:

① 必须同是结束态,或同不是结束态;

② 对所有字母表上符号,状态i,j必变换到等价状态。

Ⅱ. 合并等价状态算法

划分不等价状态集

⑴ 初始,把状态集Q化分成两个不等价子集:

Q1(结束状态集), Q2(非结束状态集);

⑵ 把每个Qi再划分成不同的子集,条件是:

对同一Qi中两个状态i和j,若对字母表中的某个符号,变换到已划分的不同的状态集中,则i和j应分离:

如 d(i,a)∈Qm , d(j,a)∈Qn 且 m≠n

⑶ 重复步骤⑵,直到再不能划分为止;

⑷ 合并最终划分的每个子集中的各状态(合而为一)。

 

posted on 2009-11-05 23:42 肥仔 阅读(2352) 评论(0)  编辑 收藏 引用 所属分类: 状态机 & 自动机 & 形式语言