繁体   English   中英

画出一个 FSA 来识别:(A∗ | AB+)。 (条形超出了其他运算符的范围,因此它等于:(A∗) | (AB+)。)使用尽可能少的状态

[英]Draw an FSA that recognizes: (A∗ | AB+). (The bar outscopes the other operators, so its equal to: (A∗) | (AB+).) Use as few states possible

我已经附上了我所拥有的。 我的问题是我不知道它是否正确,以及我是否使用了尽可能少的状态来回答这个问题。 非常感谢对我目前做错的任何帮助这是我目前所拥有的

我将首先创建两个 FSA,每个分支一个。

对于A* ,您只需要一个 state。

对于AB+ ,您需要三个状态。

然后你合并两者。 假设它不一定是确定性的,那么整个 FSA 最终也会有三个状态,其中两个是最终状态。

当您标记您的问题dfa时——确定性 FSA 总共需要 4 个状态:

启动 state:1; 最终状态:1,2,3,4

过渡:

1 - 一个 -> 2
2 - 一个 -> 4
2 - b -> 3
3 - b -> 3
4 - 一个 -> 4

这是一个识别 (a*|ab+) 的 DFA:

使用 graphviz 绘制的 FSM

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM