计算自动机以$ l(a)/ l(b)$给出$ a,b $
-
29-09-2020 - |
题
我正试图弄清楚无限的语言改变答案。
显示以下语言是可解除的: $$ l={\ langle a,b \ rangle:\ text {$ a,b $是dfas,$ l(b)$是有限的,$ l(a) / l(b)= l(0 ^ * 1 ^ *)$} \}。$$
(我在谈论正确的分裂。)
我们知道如何检查DFA的语言是否有限,给出了两个DFA,我们知道如何检查他们的语言是否相等。我知道上述问题的算法使用DFA,因此有必要具有DFA来决定这些问题。
我试图弄清楚<跨度类=“math-container”> $ | l(b)|=idty $ 更改答案。据我所知,因为 $ | l(b)| <\ idty $ ,我们可以显式构造一个接受 $ l(a)/ l(b)$ ,而if如果 $ l(b)=infty $ 我们所知道的是关于存在的 $ dfa $ 接受 $ l(a)/ l(b)$ 。
但是,即使 $ l(b)$ 是无限的语言,因为有一个有限数量的DFA,其中一个接受 $ L(a)/ l(b)$ ,我肯定知道有一个图灵机决定语言 $ l $ 。 右?解决方案
你真正的要求是给定自动机 $ a,b $ ,我们可以构建一种自动机,他们的语言是左额字 $$ l(a)\ backslash l(b)={w:\存在x \ in \ sigma ^ * \ text {s.t. x \在l(a)\ text {和} xw \中l(b)\}。 $$ (问题有同于转到正确的商品,可以类似地处理。)
这里是这样的结构。假设 $ a,b $ 是dfas与状态 $ q_b $ ,初始状态 $ q_ {0a},q_ {0b} $ ,转换函数 $ \ delta_a,\ delta_b $ 和最终状态 $ f_a,f_b $ 。我们使用状态构建NFA $ q=(\ {0 \} \ times q_a \ times q_b)\ cup(\ {1 \} \ times q_b)$ ,初始状态 $ \ langle 0,q_ {0a},q_ {0b} \ rangle $ ,最终状态 $ \ {1 \} \ times f_b $ ,以及以下转换函数 $ \ delta $ :
- $ \ delta(\ langle 0,q_a,q_b \ rangle,\ epsilon)={\ langle 0,\ delta_a(q_a,\ sigma),\ delta_b(q_b ,\ sigma)\ rangle:\ sigma \ in \ sigma \} $ 为所有 $ q_a \ in q_a \ setminus f_a $ 和 $ q_b \在q_b $ 中。
- $ \ delta(\ langle 0,q_a,q_b \ rangle,\ epsilon)={\ langle 0,\ delta_a(q_a,\ sigma),\ delta_b(q_b ,\ sigma)\ rangle:\ sigma \ in \ sigma \} \ cup \ {\ langle 1,q_b \ rangle \} $ 对于所有 $ q_a \在f_a中$ 和 $ q_b \在q_b $ 中。
- $ \ delta(\ langle 1,q_b \ rangle,\ sigma)={\ langle 1,\ delta_b(q_b,\ sigma)\ rangle \} $ 对于所有 $ \ sigma \ in \ sigma $ 和 $ q_b \在q_b $ 中。
其他提示
这是一个问题的不同版本,其中有问题的语言是 $ l(a)\ setminus l(b)$ 。
这是一个用于决定 $ l $ :
的算法- 使用产品构造构建DFA $ C $ ,其语言是 $ l(a)\ setminus l( b)$ 。
- 使用产品施工再次构建DFA $ E $ ,其语言是 $ l(c)\ delta l (d)$ 。
- 检查(使用bfs / dfs)是否从其初始状态访问的 $ e $ 的某些最终状态。 如果从初始状态无法访问最终状态,则输出“是”。否则输出“否”。
正如您所看到的,沿途遇到的语言是有限的还是无限的,对于该算法来说绝对没有差异。