具有下推自动机和无限元素的无上下文和常规语言

时间:2016-11-27 00:39:50

标签: regular-language formal-languages context-free-language pushdown-automaton

我正在为我的理论课做我的硬件任务,并遇到了一个我甚至不知道从哪里开始的问题。我们正在介绍Push-Down自动机的部分。

  

"让L1成为无上下文的语言,L2是常规的。表明存在一种算法来确定L1和L2是否具有无限数量的共同元素。"

我不知道如何解决这个问题。我无法理解这个想法。我知道常规语言不允许含糊不清,我想知道这个问题是否需要考虑。同时它也在" Push-Down Automata"我假设它可能需要创建一个npda或pda。任何人都可以至少引导我朝着正确的方向前进。不是要求硬件解决,而是要求硬件帮助!

1 个答案:

答案 0 :(得分:0)

  1. 给定一个用于L1的PDA A1和一个用于L2的DFA A2,构造A3使用笛卡尔积分机构造识别L1和L2的交点,就像在两个DFA之间一样。正式构造有点乱,但基本上你有新的状态跟踪旧的组合并根据需要添加转换/堆栈更改。

  2. 使用标准结构从A3构建CFG G3。同样,证据很混乱,你最终会得到凌乱的语法,但这也可以做到。

  3. 从G3中删除无用的变量,空白和单位制作。如果您习惯于乔姆斯基师范式(CNF),这基本上就是一种类似的过程。

  4. 创建非终结符的依赖关系图。如果依赖图中存在循环,则G3的语言是无限的。

  5. 由于G3是L1和L2之间共同词汇的语法,如果L1和L2共有无限多个词,G3会产生无限多的词。