📅  最后修改于: 2020-11-26 10:20:42             🧑  作者: Mango
有两种定义PDA可接受性的方法。
在最终状态可接受性中,当在读取整个字符串后PDA处于最终状态时,PDA接受字符串。从起始状态开始,我们可以进行最终以任何堆栈值结束的移动。只要我们最终处于最终状态,堆栈值就无关紧要。
对于PDA(Q,∑,S,δ,q 0 ,I,F),最终状态F集合接受的语言是-
L(PDA)= {w | (q 0 ,w,I)⊢*(q,ε,x),q∈F}
对于任何输入堆栈字符串x 。
在此,当在读取整个字符串后PDA清空了其堆栈时,PDA会接受一个字符串。
对于PDA(Q,∑,S,δ,q 0 ,I,F),空堆栈接受的语言为-
L(PDA)= {w | (q 0 ,w,I)⊢*(q,ε,ε),q∈Q}
构造一个接受L = {0 n 1 n | n≥0}
该语言接受L = {ε,01,0011,000111,………………………………..}
在此,在此示例中, “ a”和“ b”的数量必须相同。
最初,我们在空堆栈中放入一个特殊符号“ $” 。
然后在状态q 2处,如果遇到输入0且top为Null,则将0压入堆栈。这可能会重复。并且如果遇到输入1且top为0,则将其弹出0。
然后在状态q 3处,如果遇到输入1且top为0,则将其弹出0。这也可能会迭代。如果遇到输入1且top为0,则会弹出top元素。
如果在栈顶遇到特殊符号“ $”,则会弹出特殊符号,最后进入接受状态q 4 。
构造一个PDA,接受L = {ww R | w =(a + b)*}
解
最初,我们在空堆栈中放入一个特殊符号“ $”。在状态q 2处,正在读取w 。在状态q 3中,匹配输入时弹出0或1。如果给出任何其他输入,则PDA将进入无效状态。当到达特殊符号“ $”时,我们进入接受状态q 4 。