context-free-grammar - 设计一个下推自动机来计算字符数

标签 context-free-grammar turing-machines pushdown-automaton

字母表:a、b、c 我正在尝试定义一个接受的 PDA

 a^n b^m c^p : n + p = 2k for some integer k, m = k, and n, m, p, k >= 0

我认为一些可以接受的字符串是:#abc#; #aabbcc#; #aaabbbccc#; #abbccc#; #aaabbc#等 a、b、c 的数量不一定相等。

从最右边的黑色空间开始下推自动机的头部。

通常我将我的 PDA 写在列中:

State:    Symbol Read:    Next State:    Head Instruction:    
s         #               r1             Left
r1        c               r2             #

等等...

最佳答案

我认为你描述的语言不是上下文无关的,因此不能 用 PDA 识别。问题是你需要强制执行约束 (n+p = 2m) 跨越任意长的子串,但不允许“泵送”(当 尝试使用上下文无关语言的泵引理构建证明。

关于context-free-grammar - 设计一个下推自动机来计算字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4173653/

相关文章:

grammar - 歧义语法

binary - 用于二进制数加法和比较的图灵机

c++ - 如何设计下推式自动机

stack - 是否有一种编程语言仅具有确定性下推自动机的功能,而仅此而已?

c++ - FSM 中的状态应该与上下文类型成为 friend 吗?

parsing - 不允许使用外括号的表达式语法

parsing - 真实世界的 LR(k > 1) 文法?

algorithm - 这是一个有歧义的语法吗?我该如何解决?

algorithm - 图灵机算法计算 0 并用二进制写出有多少个

language-agnostic - 我的简单图灵机