pushdown-automaton相关内容

在C(DPDA)中编译确定性下推自动机时出错

我正在阅读有关如何实现DPDA的信息,并在以下Internet地址中找到了此代码: http://code. zhoubot.com/,此c文件实现了简单的下推自动机.自动机将读取它们的转换函数和输入的描述,在输入上执行其计算,然后打印其输出. 输入格式如下: e01:e0 $:000111:a:ad:aeeb $:b0eb0:b10ce:c10ce:ce $ de 输入用分号“:"分隔,第 ..
发布时间:2020-07-04 20:20:54 其他开发

(a ^ n b ^ n)^ m c ^ m的下推自动机

我一直在为该自动机构建转换功能. 我想我应该为每个a堆叠一个1,然后为每个b堆叠它 c的数量等于ab对的数量,所以我认为我应该为遇到的每个b堆叠一个0.问题是:如何将1拆开并同时加0? 解决方案 不要在每次遇到b时将0推入堆栈.相反,每次遇到b且堆栈为空或堆栈顶部为0时,将0推入堆栈. 因此,将您的命名法用于aabbabcc: read a push 1 read ..
发布时间:2020-07-04 20:20:48 其他开发

下推式自动机如何知道如何阅读回文?

例如,PDA如何知道如何以L = {a,b} *读取回文? 在{a,b} *上接受回文的PDA: 因此,根据我的PDA图纸: 它如何知道字符串的前半部分何时位于最后一个终端(字母字母)上,因此知道从状态0转到状态1(而且知道从栈中向后弹出字母) ,从而形成回文)? 解决方案 这是不确定的下推式自动机.您问题的答案是猜测,并且可以假定是正确猜测.如果可以沿 w 处理的任何路 ..
发布时间:2020-07-04 20:20:46 其他开发

NPDA具有确切的2个状态,可能需要3个转换到最终状态

比方说,我们要绘制一个接受N语言的NPDA的两个状态的过渡图.我们还要说这个NPDA将恰好具有2个状态.我的想法是在第一状态下进行所有操作,然后将第二状态用作最终结局.像这样: 但是我不确定lambda转换是否会导致q1,或者是否有更好的方法来执行此操作,这可能是更好的方法,因为我正在尝试自己教这一点.也许有人可以让我回到这里? 解决方案 您几乎明白了.您刚刚错过了n>=1要求,因为 ..

对于上下文无关的语法,我如何将其转换为等效的下推自动机?

对于Σ= {0,1,2}上的上下文无关文法G,使用起始变量S: S→0S0 | 1S1 | 2S2 | Y Y→22 如何将其转换为等效的下推式自动机 解决方案 下推式自动机可以将符号推入堆栈顶部并将其弹出.它还可以根据最上面的堆栈符号进行转换.我们需要考虑一种机制,该机制将允许我们通过操纵堆栈来接受正确的语言. 您的语法生成的语言具有以下特征: 它的中间是22 这 ..
发布时间:2020-07-04 20:20:35 其他开发

有限自动机,下推自动机和图灵机示例

我正在寻找有限自动机,下推自动机和图灵机任务示例(用于手动手动解决)的良好来源. 我正在四处搜寻,但没有发现任何特别之处,因此我想知道是否有人提供了一些很好的例子.预先感谢. 解决方案 您最好的选择是获取有关该主题的书,例如有关自动机问题集和解决方案的信息,请查看希望这会有所帮助! ..
发布时间:2020-07-04 20:20:31 其他开发

PDA接受包含比a多的a的字符串语言

使PDA识别以下语言:包含比a更大的a的字符串的语言. 我已经为这个问题苦苦挣扎了好几天了,我似乎已经完全陷入了精神障碍.任何人都可以为我如何解决此问题提供一些指导或指导? 解决方案 您的"a大于b"的问题可以通过PDA解决. 所有您需要做的是: 当输入为a且堆栈为空或顶部为a时,将a压入堆栈;如果b是顶部,则弹出b. 当输入为b且堆栈为空或顶部为b时,将b推入堆栈 ..
发布时间:2020-07-04 20:20:28 其他开发

使用Regex和Pushdown-Automata匹配嵌套括号的组

我正在研究一个可以匹配嵌套结构(在这种情况下为括号)以及任意运算符(在这种情况下为'|'字符)的c#正则表达式. 我已开始使用此处. 到目前为止我所拥有的: String pattern = @" (?# line 01) \( (?# line 02) (?> (?# line 03) \( (?) (?# line 04) | (?# line 05) \) ( ..
发布时间:2020-07-04 20:20:26 C#/.NET

如何实现在C#中下推自动机?

我想code本作的PDA。我怎么会做,在C#? A ^ NBC ^ N(N> = 0) 解决方案 算法:的 阅读一个字母在从输入一个时间,在循环中。 第1阶段: 如果读了这封信是“是”,然后递增计数器,并重复第1阶段。如果读了这封信是不是“a”,然后进入下一个部分。 第2阶段: 如果读了这封信是“B”,然后进入下一个阶段。如果读了这封信是不是“B ..
发布时间:2015-11-27 16:08:58 C#/.NET