【发布时间】:2017-05-04 15:56:43
【问题描述】:
我一直在尝试在不使用 epsilon 转换的情况下将两个有限状态自动机的并集形式化。我想为新的自动机创建一个新的初始启动状态,并从这个新的启动状态通过复制这些转换从单独的自动机的启动状态创建到可达状态的转换。
给定一个 FSA
M1 = <Σ1, Q_1, q0_1, ->_1>
其中 Σ1 = 字母表,Q_1 是状态集,q0_1 是起始状态,->_1 是 M1 的转换。
给定另一个 FSA
M2 = <Σ2, Q_2, q0_2, ->_2>
其中 Σ2 是字母表,Q_2 是状态集,q0_2 是开始状态,->_2 是 M2 的转换。
现在我已将 FSA M+ = M1 ∪ M2 定义为 FSA:
M_+ = <Σ+, Q_+, q0_+, ->_+>
Σ+ = Σ1 ∪ Σ2 - alphabet of both
Q_+ = Q_1 ∪ Q_2 ∪ {q0_+},
q0+ is the new initial start state
->_+ = ->_1 ∪ ->_2 ∪ ->_C
我在定义 ->_C - 到 M1 和 M2 的可达状态的新转换时遇到了麻烦。我将 ->_C 的类型定义为:Q x 2^Σ x 2^Q。 它必须是一个集合,但是我不确定如何正式定义它。任何帮助将不胜感激。
【问题讨论】:
-
你想要一台机器 M+ 使得 L(M+) = L(M1) U L(M2),还是别的什么? stackoverflow.com/a/7798776/847269 会回答你的问题吗?
-
您好,感谢您的回复。我只想知道如何通过从以前的开始状态(q0_1 和 q0_2)复制它们的转换来定义从新开始状态到 M1 和 M2 状态的转换
标签: css discrete-mathematics finite-automata automata