我对以下问题有点困难:
给定DFA A =(E = {a,b,c},Q,q0,F,l)(其中l是转移函数),建立一个新的DFA B,使L(B)= L( A)-{a}。
现在我知道Eb = Ea,但是如何在不知道A的接受状态的情况下定义B转换函数或接受状态?
谢谢。
答案 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的转移函数。通过上面的构造,我们具有:
关于D的外观: