为以下语言构建PDA



我正在研究自动机,我遇到了与PDA 有关的问题

为语言L=构造PDA{w=x1y1x2y2….xnyn |其中w属于{0,1}*,并且字符串y1y2…..yn与x1x2….xn相同,除了y中的1在0之后}例如,字符串100111属于L,因为x=101并且y=011。所以执行字符串0011、00、1111、100001等。但是,字符串0110、11111、001、1100、01、10不执行属于L。为了简单起见,在PDA的结构中,假设输入由成对的符号组成其中第一个属于x,第二个属于y。因此,输入字母表为∑={00,01,10,11}。

我意识到我必须从堆栈中推送/弹出,以确保x中的相同输入出现在y中,其中0在1的a之前,但问题是如何检查y中的0在1之前。非常感谢对解决方案的提示

提示1:由于字符串的形式为xyxyxy...,因此即使x和y部分相同,您也会在x部分遇到1,然后在y部分遇到1

提示2:您正在将x部分中的1s与y部分中的1s进行匹配。在x中按下1s,在y中弹出1s。

提示3:一旦你弹出,你就无法停止。(即,提示#2本身是不够的,考虑像100100这样的字符串。(

最新更新