我很好奇是否有人知道如何编写程序以在给定有限自动化的情况下生成正则表达式,或者是否已经存在任何程序(最好在 c 中)。
为了让事情变得不那么复杂,我想将状态数限制在 4 个左右,假设 FA 是最小形式,并且 FA 只有一个 FinalState 和一个 StartState。
我已经考虑了一段时间,我认为要做的第一件事就是为 FA 创建一个转换表。
所以FA可能看起来像这样:
NumberOfStates 4
StartState 1
FinalState 4
StateNumber NextStateA NextStateB
1 2 4
2 3 2
3 4 4
这将生成正则表达式: b + (ab*a(a + b))
我已经绞尽脑汁好几个小时了,但我不知道如何去做。非常感谢任何想法。