如何在自动机上应用 Kleene star?
How to apply Kleene star on automata?
我知道如何将 Kleene star 应用于语言,但我不确定如何将其应用于 DFA 或 NFA。我很确定它需要是初始状态为最终状态的 epsilon NFA,最终状态可能需要 epsilon 转换到该初始状态?
有算法吗?这个接受以 0
开头并以 1
结尾的单词的 DFA 在应用 Kleene star 后会如何看待它?
在我看到的关于正则表达式和有穷自动机等价性的至少一个证明中,给出了一个结构来说明如何将具有与正则表达式 s 的语言相对应的语言的 NFA 转换为具有对应于表达式 s* 的语言。我认为构造是这样的:
- 新的初始状态 q0' 也在接受
- lambda/epsilon/empty 从 q0' 到前一个初始状态 q0
- lambda/epsilon/empty 从每个接受状态(q0' 除外)转换回 q0'
这允许:
- 要接受的空字符串,即使之前不是
- 接受原始 NFA 语言的任何字符串串联
我知道如何将 Kleene star 应用于语言,但我不确定如何将其应用于 DFA 或 NFA。我很确定它需要是初始状态为最终状态的 epsilon NFA,最终状态可能需要 epsilon 转换到该初始状态?
有算法吗?这个接受以 0
开头并以 1
结尾的单词的 DFA 在应用 Kleene star 后会如何看待它?
在我看到的关于正则表达式和有穷自动机等价性的至少一个证明中,给出了一个结构来说明如何将具有与正则表达式 s 的语言相对应的语言的 NFA 转换为具有对应于表达式 s* 的语言。我认为构造是这样的:
- 新的初始状态 q0' 也在接受
- lambda/epsilon/empty 从 q0' 到前一个初始状态 q0
- lambda/epsilon/empty 从每个接受状态(q0' 除外)转换回 q0'
这允许:
- 要接受的空字符串,即使之前不是
- 接受原始 NFA 语言的任何字符串串联