【问题标题】:construct a PDA for the following language为以下语言构建一个 PDA
【发布时间】:2021-05-28 00:01:50
【问题描述】:

我正在研究自动机,我遇到了与 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、11111001、1100、01、10 不执行 属于 L。为简单起见,在 PDA 的构造中假设输入由符号对组成 其中第一个属于 x,第二个属于 y。因此输入字母为 Σ = {00, 01, 10, 11}。

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

【问题讨论】:

    标签: pushdown-automaton automata-theory


    【解决方案1】:

    提示 1:由于字符串是 xyxyxy... 形式的字符串,因此即使 x 和 y 部分相同,在 x 部分中的 1 之前,您总是会在 x 部分中遇到 1。 .

    提示 2:您将 x 部分中的 1s 与 y 部分中的 1s 匹配。在 x 中推送 1s,在 y 中弹出 1s。

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

    【讨论】:

      猜你喜欢
      • 2016-02-15
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      相关资源
      最近更新 更多