从A构造一个新的DFA B,其中L(B)= L(A)-{w | w∈E*}

时间:2019-08-29 15:45:26

标签: automata dfa

我对以下问题有点困难:

给定DFA A =(E = {a,b,c},Q,q0,F,l)(其中l是转移函数),建立一个新的DFA B,使L(B)= L( A)-{a}。

现在我知道Eb = Ea,但是如何在不知道A的接受状态的情况下定义B转换函数或接受状态?

谢谢。

1 个答案:

答案 0 :(得分:1)

首先,让我们构造一个称为C的DFA,它接受w。此DFA具有| w | + 2种状态:一种初始状态,一种失效状态,一种接受状态。

第二,让我们构造一个称为D的DFA,它接受除w之外的所有内容。只需将所有非接受状态更改为接受,反之亦然。

第三,让我们使用笛卡尔乘积机器构造在输入DFA A和D上使用交点作为运算符来构造B。此DFA将具有| Q |。总共x(| w | + 2)个状态。

B的语言是A和D同时接受的所有事物。 D接受不等于w的任何东西;因此,B根据需要接受L(A)中不为w的任何内容。

编辑:有关B最终外观的更多细节。

让A的状态为QA,D的状态为QD。设A的接受状态为FA,D的接受状态为FD。令dA为A的转移函数,dD为D的转移函数。通过上面的构造,我们具有:

  • Q = {{Qd中QA中y中x的(x,y)}
  • E =假定与A和D相同的字母。如果w在A的字母中仅包含符号,则只需使用A的字母即可。如果w包含不在A的字母中的符号,则w不在L(A)中,我们可以让B = A。
  • q0 =(q0,q0')
  • F = {{(x,y)in Q |在FA中为x,在FD中为y}
  • d((x,y),s)=(dA(x,s),dD(y,s))

关于D的外观:

  • QD = {q0',q1',…,q(| w | +1)'}
  • E =与A相同
  • q0'是初始状态
  • FD = QD \ {q(| w |)}
  • d(qi,s)= q(i + 1),如果s是w的第(i + 1)个符号,否则为q(| w | +1)
相关问题