构造对应于正则表达式的有限状态自动机。我的解决方案是否正确

时间:2012-04-26 05:17:39

标签: regex finite-automata

我在画中画了我的答案,这些是对的吗?

(4c)对于字母{0,1}构造对应于以下每个正则表达式的有限状态自动机:

(i)0

4ci

(ii)1 | 0

4cii

(iii)0 *(1 | 0)

4ciii

1 个答案:

答案 0 :(得分:2)

前两个是正确的,虽然第一个可以写成(取决于你的惯例)

(0) -- 0 --> ((1))

最后一个也是正确的,但可以简化为(只要你出现ε,就有可能有一种压缩边缘和状态的方法来移除它)

  +- 0 -+
  |     |
  v     |
 (0) ---+
 / \ 
1   0
 \ / 
  v
((1))

(请原谅我的ascii图表。我为每个州使用(..),为最终状态使用((..))。)

请注意,0*基本上是从状态到自身的循环,因为在读取0之后剩余的正则表达式匹配是相同的(只要我们不在最后一个字符串)。