簡體   English   中英

L={a^ib^jc^kd^l | i=k and j=l} 我找不到給定語言的語法

[英]L={a^i b^j c^k d^l | i=k and j=l} i couldn't find the grammar of the given language

我試過了

S-A|B
A-aCcD|aAc|ac
B-bBd|bd
C-b
D-d

這僅適用於 output ac 和 bd,但我不能將 b 放在 a 和 c 之間。

考慮字符串 a^pb^pc^pd^p。 這個字符串肯定是在語言中。 如果語言是正則的,並且存在正則語法,那么它將滿足正則語言的泵引理的要求:即,上面給出的字符串可以寫成 uvx,其中 |uv| <= p, |v| > 0 並且對於所有自然數 n,u(v^n)x 也在該語言中。 v 包含的內容有七種情況:just a; 一個和乙; 只是 b; b和c; 只是 c; c 和 d; 或者只是d。 在任何情況下,抽取 v 都會改變一種符號的實例數,但不會改變相應符號的實例數(語言要求的頻率完全相同)。 所以,語言不能是正則的。

類似地,上下文無關語言的泵引理要求將上面給出的字符串寫為 uvxyz,其中 |vxy| <= p, |維| > 0 並且對於所有自然數 n,u(v^n)x(y^n)z 也是語言的字符串。 我們在這里得到與上面完全相同的情況,並得出完全相同的結論:語言不能是上下文無關的。

考慮到所有這些,我們還不如只針對不受限制的語法(可能會為這種語言獲得上下文相關的語法,但這不是要求的)。 我們希望 a 和 c 的數量相同,b 和 d 的數量相同,並且我們希望它們按字母順序排列。 我們可以這樣開始:

S -> ACS | BDS | T

這讓我們得到的字符串中,A 的個數與 C 相同,B 的個數與 D 相同,以 T 結尾。接下來,我們需要一些規則來允許以正確的順序放置符號 A、B、C 和 D:

BA -> AB
CA -> AC
DA -> AD
CB -> BC
DB -> BD
DC -> CD

最后,我們需要一種將非終端 A、B、C 和 D 轉換為終端 a、b、c 和 d 的方法,除非它們都按順序排列,否則它無法工作。 我們可以使用 T(以及即將介紹的其他一些符號)從右向左掃描,轉換為 go:

DT -> Td
CT -> Uc
BT -> Vb
AT -> Wa
T -> e

CU -> Uc
BU -> Vb
AU -> Wa
U -> e

BV -> Vb
AV -> Wa
V -> e

AW -> Wa
W -> e

非終結符 T、U、V 和 W 允許將 AD、AC、AB 和 A 分別轉換為 ad、ac、ab 和 a。 我們也可以隨時去掉這個標記符號。 消除所有非終結符得到一串終結符(即按照這個文法生成一個字符串)的唯一方法是從右向左掃,將遇到的所有符號轉換,最后使用 X -> e 規則中的一個需要消除標記。 這僅在符號按從右到左的降序轉換時才有效,因此它們必須按要求從左到右按升序排列。 因為 S 的產生式引入了 A、C 和 B、D 成對出現,所以該要求也得到滿足。

為什么 L = {a^ib^i, 0 <i<5} regular?< div><div id="text_translate"><p> 我正在嘗試理解常規語言。 我在這里找到了這個問題<a href="https://www.sanfoundry.com/automata-theory-multiple-choice-questions-answers/" rel="nofollow noreferrer">https://www.sanfoundry.com/automata-theory-multiple-choice-questions-answers/</a><br> 是L = {a^ib^i | 0&lt;i&lt;5} L = {a^ib^i | 0&lt;i&lt;5}常規?<br> <strong>答案是肯定的,但我不明白。</strong> 假設z = a^4^ b^4 ,z 屬於 L。我可以將 z 分解為u = a, v= a^3, w= b^4 。 我可以看到不屬於 L 的uv^2w = aa^6 b^4 = a^7 b^4 。通過抽取引理 L 是不規則的。</p><p> <strong>我是否以某種方式濫用了這個定理?</strong> </p></div></i<5}>

[英]Why is L = {a^ib^i , 0<i<5} regular?

暫無
暫無

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

相關問題 語言L = {a ^(n)b ^(m)c ^(k)的無上下文語法:m = | i-k |} L= {0^i1^j | 的最小泵送長度 i &gt;= j} 證明 L 是非正則的 展示給定任何常規語言L的算法,該算法確定L = L * L = {a * b *}被歸類為常規語言嗎? 如果語言 L 不是正則的,那么 L* 是正則的嗎? 是 L = {wxw| x, w ∈ {a,b}*} 正則語言? 為什么 L = {a^ib^i, 0 <i<5} regular?< div><div id="text_translate"><p> 我正在嘗試理解常規語言。 我在這里找到了這個問題<a href="https://www.sanfoundry.com/automata-theory-multiple-choice-questions-answers/" rel="nofollow noreferrer">https://www.sanfoundry.com/automata-theory-multiple-choice-questions-answers/</a><br> 是L = {a^ib^i | 0&lt;i&lt;5} L = {a^ib^i | 0&lt;i&lt;5}常規?<br> <strong>答案是肯定的,但我不明白。</strong> 假設z = a^4^ b^4 ,z 屬於 L。我可以將 z 分解為u = a, v= a^3, w= b^4 。 我可以看到不屬於 L 的uv^2w = aa^6 b^4 = a^7 b^4 。通過抽取引理 L 是不規則的。</p><p> <strong>我是否以某種方式濫用了這個定理?</strong> </p></div></i<5}> 如果 L1L2 正則語言,那么 L2L1 正則? 普通語言,L1和L2 如果 L 和 L 補碼是遞歸可枚舉的,那么為什么 L 不能是正則語言?
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM