2013-02-22 46 views
2

我試圖把我的頭圍繞CGS的。令E^*爲'epsilon star',e爲空字符串,並且ww^r與w的反向相鄰。CFG和它的反向

我知道,建立一個CFG接受E^*是一個簡單的S -> 0S | 1S | e。接受{ww^r} such that w in E^*

甲CGG是一個簡單的S –> 0S0 | 1S1 | e

這是否意味着一個CFG接受{wxw^r} such that w, x in E^*是一種「組成」這兩個導致S –> 0S0 | 1S1 | e | B where B –> 0B | 1B | e

+0

[Why L = {wxw^R | w,x屬於{a,b}^+}是常規語言](http://stackoverflow.com/questions/14521300/why-l-wxwr-wx-belongs-to-ab-is-a-regular - 語言) – Patrick87 2013-02-22 16:40:39

+0

這個標題爲你提問是不正確的:CFG和其相反 – 2013-02-23 11:22:17

+0

@clever雖然你已經接受,但我做了一些答案的變化,並添加了一個鏈接。 – 2013-02-24 19:11:39

回答

2

是的,你的語法是正確的!

CFG到{wxw^r} such that w, x in E^*S –> 0S0 | 1S1 | e | B where B –> 0B | 1B | e是正確的語法。

但重要的是語言{wxw^r} such that w, x in E^*Regular Language所以它也可以寫Left-Linear and Right-Linear Grammars

一個右鍵班輪相當於語法這個語言是:

S --> 0B | 1A |^
B --> 0B | 1B | 0 
A --> 0A | 1A | 1 

而且左襯板相當於是:

S --> B0 | A1 |^
B --> B0 | B1 | 0 
A --> A0 | A1 | 1 

它的正則表達式爲:

0(0 + 1)* 0 + 1(0 + 1)* 1 +^

類似的語言,我described here in my answer with DFA

說明:語言結構相同但符號不同,也有^空字符串是不可能的。也有+(0 + 1)這裏是*

其DFA

DFA

此外,我還建議你查看DFA爲0(1 + 0)*0 + 1(1 + 0)*1。注意RE中的一個小變化^,但是DFA很不相同。

+0

恩,'wxw^r' - 其中'w^r'是'w'的反向 - 並不規則。您可以使用Myhill-Nerode定理或普通語言的抽象引理來輕鬆證明這一點。 – Patrick87 2013-02-22 16:33:02

+0

@ Patrick87你是認真的?請再想一想 – 2013-02-22 16:37:35

+0

哦等一下,你說得對。 :)忘了這一個。看看相關的問題,看起來我在那裏得到了正確的答案。哎呀。 – Patrick87 2013-02-22 16:39:25