簡體   English   中英

給定的語言是有效的 CFG 嗎?

[英]Is the given language a valid CFG?

語言,L = { a^nb^na^n; n=1,2,3,..}

我想檢查給定的語言 L 是否是上下文無關的。

CFG 利用使用堆棧的 PDA。 因此,首先將每個“a”存儲到堆棧中。 然后每次出現“b”時彈出兩次。 這個邏輯正確嗎?

使用上下文無關語言的泵引理可以證明這種語言不是上下文無關的。 證明是反證法。 假設語言是上下文無關的。 那么語言中長度至少為 p 的詞可以寫成 uvxyz 和 |vxy| <= p, |維| > 0 並且其中 u(v^n)x(y^n)z 在所有整數 n 的語言中。 選擇語言中的字符串 a^pb^pa^p。 有五種情況需要考慮:

  1. vxy 僅由第一部分的 a 組成。 向上或向下抽水打破了第一部分中 a 的數量等於第二部分中 b 的數量的要求。

  2. vxy 僅由前兩部分的 a 和 b 組成。 泵送可能會保持第一部分中 a 的數量等於第二部分中 b 的數量的要求,但它肯定會打破第一部分和第三部分中 a 的數量相同的要求。

  3. vxy 僅包含來自第二部分的 b。 泵送失敗的原因與案例 1 相同。

  4. vxy 由第二部分和第三部分的 a 和 b 組成。 泵送失敗的原因與第二種情況類似。

  5. vxy 僅包含來自第三部分的 a。 泵送失敗的原因與第一種情況類似。

所以,沒有辦法重寫我們的字符串 a^nb^na^n 使其可以寫成 uvxyz 並滿足泵引理的要求。 這是矛盾的,所以語言不可能是正則的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM