簡體   English   中英

是否存在{0 ^ i1 ^ j的無上下文語法,使得1 <= i <= j <= 2i}?

[英]Does there exist a context-free grammar for {0^i1^j such that 1 <= i <= j <=2i }?

我遇到了兩個完全不同的答案。

有人說:

是的,確實存在{0 i 1 j | 1≤i≤j≤2i} {0 i 1 j | 1≤i≤j≤2i} ,以下語法確保存在的1可以有一半或更少的0:

S -> 0S11 | 0S1 |  01

另一個:不,通過矛盾證明:

情況1:

假設您將i 0壓入堆棧。

彈出j 1s。

您無法確定j <= 2i。

情況2:

假設您將2i 0s壓入堆棧。

彈出j 1s。

您無法確定j> = i。

推入堆棧的任何其他不等於i或2i的值都是相對於這兩個值之一的值,因此適用相同的推理。


是不是正確? 非常感謝!

由於存在語法,您可以很清楚地檢查它是否與整個語言匹配,因此該語言必須是上下文無關的。 因此,矛盾證明是錯誤的。 但為什么?

證明假設機器必須是確定性的。 但是,您需要一個不確定的下推自動機來識別一些與上下文無關的語法。 因此,所有第二個證明(如果是正確的話)證明該語言不是確定性的上下文無關語言,但沒有表明它不是上下文無關的語言。

確實,如果讓機器不確定,則基本上將i推為0,然后對堆棧中的每個0不確定地彈出1或2 1。 如果字符串使用語言,則其中一種計算將接受。

暫無
暫無

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

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