【问题标题】:Push down automata design for language L = {w ∈ {a, b}∗ | (w = w^R) and number of a’s = number of b’s}语言 L = {w ∈ {a, b}∗ | 的下推自动机设计(w = w^R) 和 a 的数量 = b 的数量}
【发布时间】:2019-05-07 21:58:35
【问题描述】:

w = w^R 表示 w 的倒数与 w 相同

我正在尝试为 L = {w ∈ {a, b}∗ | 创建一个下推自动机(w = w^R) 和 a 的数量 = b 的数量}。

我有相同数量的 a 和 b 的 PDA 和回文的 PDA。尝试将它们结合起来是正确的一步吗?

【问题讨论】:

  • 对我来说这听起来不像是一种上下文无关的语言。我很确定它失败了pumping lemma
  • 请注意,上下文无关语言不会在交集下关闭,因此您拥有“相等 a 和 b”和“w=w^R”的 PDA 并不意味着存在 PDA对于“等于 a 和 b 的 and w=w^R”。
  • @user2357112我认为你是对的。我尝试了证明,如果您发现任何问题,请告诉我。
  • @Patrick87:是的,看起来不错。 (直到现在我才看到你的消息,因为我的用户名和“我”之间缺少空格意味着我没有被 ping 通。)

标签: computer-science automata


【解决方案1】:

我们将使用上下文无关语言的泵引理证明这种语言是非上下文无关的。假设语言是上下文无关的。然后,根据上下文无关语言的引理,该语言中的任何单词 w 都可以写成 w = uvxyz,其中以下成立:

  1. |vxy|
  2. |vy| > 0
  3. 对于任何自然数 k,u(v^k)x(y^k)z 也在语言中

考虑语言中的字符串 (a^p)(b^1.5p)(a^p)(b^1.5p)(a^p)向前作为向后)。子字符串 vxy 有多种情况:

  1. vxy 完全由第一段的 a 组成。抽水会导致字符串不能是回文,因为 a 的第一段和最后一段不再具有相同的长度。
  2. vxy 由前两个段中的 a 和 b 组成。 Pumping 会改变前两个片段,但不会改变最后两个片段,因此它不会产生回文。
  3. vxy 由第二段中的 b 组成。抽出这会导致字符串不能是回文。
  4. vxy 由第二段的 b 和中间的 a 组成。同样,这不能产生回文,因为左边的 b 比右边的少。
  5. vxy 仅由中间的 a 组成。抽水的结果很可能是回文,但现在不可能有​​相同数量的 a 和 b。

所有剩余的案例都与已经涵盖的案例完全对称。这意味着对 vxy 没有选择,因此抽水会为我们提供语言中的字符串。这是一个矛盾,所以我们关于语言是上下文无关的假设是错误的。

我们依赖 |vxy|

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 2020-01-02
    • 2020-07-03
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 2013-01-09
    • 2018-07-18
    • 1970-01-01
    相关资源
    最近更新 更多