1
我試圖構造一個CFG喬姆斯基範式以儘可能少的生產儘可能接受含有唯一的字符串^ 21的語言。構建一個上下文無關文法喬姆斯基範式語言
我明白,我可以轉換
的S - > AAAAAAAAAAAAAAAAAAAAA A - >一個
但沒有任何其他的方式來縮短該語言然後將其轉換成Chomsky範式?
我試圖構造一個CFG喬姆斯基範式以儘可能少的生產儘可能接受含有唯一的字符串^ 21的語言。構建一個上下文無關文法喬姆斯基範式語言
我明白,我可以轉換
的S - > AAAAAAAAAAAAAAAAAAAAA A - >一個
但沒有任何其他的方式來縮短該語言然後將其轉換成Chomsky範式?
我們可以很容易地表明,我們至少需要六個符號承認我們可以在最好的雙生成的字符串與每個生產長度希望產生CNF一個CFG此語言,我們必須用2^0開始:
A_21 := ...
A_16 := A_16 A_16
A_8 := A_4 A_4
A_4 := A_2 A_2
A_2 := A_1 A_1
A_1 := a
然後我們可以顯示CNF中沒有語法,其中有六個生成我們目標語言的作品。我們從底層開始構建語法來開始論證。
A_1 := a
才能得到任何字符串。A_2 := A_1 A_1
得到任何字符串,長度大於1A_3
或跳過這一點,產生A_4
,或兩者兼而有之。我們在下面分別考慮這些情況。案例1:A_3
A_3 := A_2 A_1
。A_21 := X Y
之一。所以我們最多可以添加兩個。即使我們添加了現在可能的最大作品 - A_6
和A_12
- 我們無法根據需要生產A_21
(我們最多可以生產A_18 := A_6 A_12
。因此,添加A_3
無法讓我們在六種作品中生成我們的語言。案例2:。A_4
A_4 := A_2 A_2
A_21 := X Y
之一,所以我們最多可以添加兩個我們OPTIO ns目前是A_5
,A_6
和A_8
。 A_5
和A_6
將因爲我們針對上述案例1陳述的相同原因而失敗。然而,A_8
並不因此失敗,因此我們添加A_8 := A_4 A_4
。A_20, A_19, A_17
或A_13
。我們無法使用我們現有的作品製作任何這些作品。我們就此排除了語法與6所製作。如果您嘗試使用上述推理來查找7個作品的語法,您會發現幾個。由於我們知道CNF中有7種語法的文法,而6種都沒有,所以你就完成了。以下是7種生產語法中的一些:
S := A_18 A_3
A_18 := A_9 A_9
A_9 := A_6 A_3
A_6 := A_3 A_3
A_3 := A_2 A_1
A_2 := A_1 A_1
A_1 := a
S := A_17 A_4
A_17 := A_9 A_8
A_9 := A_8 A_1
A_8 := A_4 A_4
A_4 := A_2 A_2
A_2 := A_1 A_1
A_1 := a
S := A_16 A_5
A_16 := A_8 A_8
A_8 := A_4 A_4
A_5 := A_4 A_1
A_4 := A_2 A_2
A_2 := A_1 A_1
A_1 := a
S := A_15 A_6
A_15 := A_9 A_6
A_9 := A_6 A_3
A_6 := A_3 A_3
A_3 := A_2 A_1
A_2 := A_1 A_1
A_1 := a
S := A_14 A_7
A_14 := A_7 A_7
A_7 := A_4 A_3
A_4 := A_3 A_1
A_3 := A_2 A_1
A_2 := A_1 A_1
A_1 := a
S := A_13 A_8
A_13 := A_8 A_5
A_8 := A_5 A_3
A_5 := A_3 A_2
A_3 := A_2 A_1
A_2 := A_1 A_1
A_1 := a
S := A_12 A_9
A_12 := A_9 A_3
A_9 := A_6 A_3
A_6 := A_3 A_3
A_3 := A_2 A_1
A_2 := A_1 A_1
A_1 := a
S := A_11 A_10
A_11 := A_10 A_1
A_10 := A_8 A_2
A_8 := A_4 A_4
A_4 := A_2 A_2
A_2 := A_1 A_1
A_1 := a
還有很多。最難的部分是顯示沒有任何6個作品。
我想我想通了。做任何一個知道爲什麼這不起作用?的S - > AT \t \t \t \t 筆 - > DD \t \t \t \t \t d - > BB \t \t \t \t \t 乙 - > CA \t \t \t \t \t C-> EE \t \t \t \t \t È - > AA \t \t \t \t \t A - > a – Brittney
是的,您的答案完全可以接受:它有最少的製作數量。在我的術語中,它將是語法21 = 20 + 1; 20 = 10 + 10; 10 = 5 + 5; 5 = 4 + 1; 4 = 2 + 2; 2 = 1 + 1; 1 = 1。困難的部分是顯示沒有任何6個製作;見下文。 – Patrick87