我正在试图构建非上下文的下推自动机的愚人差事自由语言L = {a ^(n)b ^(n)c ^(n)| n> = 1}并考虑两种方法。对于L = {a ^(n)b ^(n)c ^(n)| n> = 1}的PushDown自动机(PDA)
第一种方法: -
我认为,每一个“A”的字符串我会推3“”进栈和字符串中的每一个“B”,我会弹出2 'a'现在对于字符串中的每个'c',我仍然会在堆栈中有'a'。
问题与第一种方法: -产生的语言成为这样的L = {A ^(P)b ^(M)C ^(n)的| P> = 1和无法确定如何m和n可以定义}
第二种方法: -
我们知道,L = {A ^(n)的b ^( m)c ^(m)d ^(n)| n> = 0}是一种上下文无关语言,L = {wxw | w∈(a,b)*}也是上下文无关的语言。所以,我认为L = {a ^(n)b ^(m)b ^(m)c ^(n)| N> = 1且m =地板(第(n + 1)/ 2)}
问题的第二种方法: -不知道,如果我们可以计算出地板(N + 1/2)在PDA不会干扰堆栈的元素。
请帮助确定如何在第一种方法中定义m和n,以及如何在PDA中找到floor((n + 1)/ 2)。
如果需要,JFLAP文件可用于两者。
首先我想再次指出“傻瓜的差事“,第二我知道PDA不存在,所以请完整阅读问题描述。 – NeoR
也许我需要通过添加JFlap图像来更新问题 – NeoR
@NeoR您可能会考虑更改标题以反映您的实际问题,并将您的实际问题放在问题主体的顶部附近,并在其下面进行任何解释或激励讨论。 – Patrick87