如何构建语言 L = { L1 \ L2 } 的 DFA
给出了 L1 和 L2 的 DFA,但是我怎样才能从另一个 DFA 中“减去”一个 DFA?相对补充http://en.wikipedia.org/wiki/Complement_(set_theory)和 DeMorgans Law 是否有可能?
我的解决方案:
如何构建语言 L = { L1 \ L2 } 的 DFA
给出了 L1 和 L2 的 DFA,但是我怎样才能从另一个 DFA 中“减去”一个 DFA?相对补充http://en.wikipedia.org/wiki/Complement_(set_theory)和 DeMorgans Law 是否有可能?
我的解决方案:
据我了解,可以通过使用修改后的产品自动机来获得所需的 DFA,如 和 的交集所使用的L1
,L2
但必须以不同的方式定义终端状态。(q_1,q_2)
当且仅当q_1
和q_2
分别是 和 中的终端状态时A(L1)
,不要将产品状态A(L2)
设为终端状态,而是将其定义为终端状态当且仅当q_1
是终端状态而q_2
不是终端状态。
我不太确定除了这个基本论点之外,结果是否可以通过德摩根定律的集合公式来应用。