计算理论

Computational Theory

我对计算理论很陌生,我只是想弄清楚一个问题。以下陈述是否正确? L(M) = L(M1) ∩ L(M2),其中 M1 和 M2 是 DFA。

我在想 L(M1) = {} 且 L(M2) ≠ {} 的情况。 我得到 L(M) = L(M1) ∩ L(M2) = {}。但是,我不确定 L(M) 是否可以同时接受 L(M1) 和 L(M2)。我记得每一种语言都包含一个空集。

两个集合的交集是恰好包含两个集合中的那些元素的集合。正如您正确注意到的那样,空集与 non-empty 集的交集是空集。也就是说,如果其中一个集合(或两个集合)为空,则交集必须为空。为什么?因为空集合中根本没有元素,所以两个集合中不可能同时存在任何元素。

两个集合的交集总是交集中每个集合的子集。如果第一个集合的所有元素都属于第二个集合,则一个集合是另一个集合的子集。如果第一组为空,则第一组的 "all" 个元素属于第二组是微不足道的(或空洞的)真实的;没有元素可以作为反例。因此,空集是每个集合的子集,包括它自己。

两种语言交集的 DFA 不接受两种语言。如果您希望 DFA 接受 either 中的任何字符串,而不是 both 中的初始语言,则您要查找的操作是联合,不是交集。符号和交叉路口一样,只是倒过来像一个大字母U。