【问题标题】:what is the regular expression for the automaton?自动机的正则表达式是什么?
【发布时间】:2016-02-01 04:31:46
【问题描述】:

在这个自动机中如何找到正则表达式

【问题讨论】:

  • 我投票结束这个问题,因为它是关于计算机科学的简单应用并且与编程无关。

标签: finite-automata


【解决方案1】:

基本上有三种方法。 Hopcroft 和 Ullman 在书中给出了两个。

1) 递归计算所有状态 i,j 只经过 k 个中间状态的 R_ij。

2) 通过消除起始状态和单个最终状态之间的状态来计算正则表达式。这比第一种方法简单。

3) 分析并尝试了解 DFA 本身。

如果我们消除中间状态,我们就会跟随

a_02 = (aa+ba)*(ab+bb) :从状态 0 到 2 的正则表达式,不使用从状态 2 到 0 的箭头。 a_00 = (aa+ba)* :从状态 0 到 0 的正则表达式,不使用从状态 2 到 0 的箭头。

我们现在可以使用教科书中给出的表达式,但在这个阶段我们也可以分析自动机并提出解决方案。所以最后 R_02 变成了

((aa+ba)*(ab+bb)(a+b))*(aa+ba)*(ab+bb)

【讨论】:

    猜你喜欢
    • 2014-12-05
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2015-06-09
    相关资源
    最近更新 更多