我被困在PDA问题上。问题如下:
查找以下语言的下推自动机:L = {xcy:x,y∈(a + b)*,y不是x的反转,c是文字}
我已经构建了以下机器:http://i.imgur.com/EPeofGA.jpg
我的机器不接受 xc 形式的字符串(其中y是空字符串),或者 xcy,| y |形式的任何字符串。 < | x |,y不是x 的逆转。
当输入结束时我需要让机器从q1转换到q2,但是堆栈不是空的...但是从q1到q2添加空输入转换会导致我的机器接受所有形式的字符串 xcy ,无论y是否是x的逆转。
感谢任何见解。
答案 0 :(得分:0)
真正的脑筋急转弯,因为'纯'PDA无法明确匹配输入结束。
只有空输入转换可供您使用时,您需要将空输入转换(除了堆栈顶部的Z之外的任何东西)指向新的接受状态q3,该状态没有进一步的转换;每当有更多的输入被读取时,非确定性将使q3成为无关的副线,当q1在输入结束时仍然在堆栈中的东西时接受路径。
编辑: JFLAP中的此修改: