2010-04-11 78 views
4

我只是將一些想法放入不同的語言中(正如我正在審查期末考試一樣),我不能想到一個有效的下推自動機來處理語言A = {0^n 1^n 0^n | n> = 0}。這不是一個上下文無關的語言,我是否正確?語言A = {0^n 1^n 0^n}上下文是否免費?

+0

http://stackoverflow.com/questions/2617675/theory-of-computation-using-the-pumping-lemma-for-context-free-languages – 2010-04-11 19:58:19

+2

@Andrew這些是單獨的語言:) – Tony 2010-04-11 20:00:00

+2

@安德魯:另外,「常規」和「上下文無關」是完全不同的*語言 – SamB 2010-04-11 20:12:05

回答

5

我相信你是。它看起來非常類似於語言L = {a^i b^i c^i | i> 0}其中維基百科關於the pumping lemma的文章用作如何證明語言不是上下文的示例。

+1

對於原始海報,我建議試圖按照上述提及的證明的相同步驟來使用您感興趣的語言。 – 2010-04-11 21:14:24

+0

該語言未能通過CFLS的抽象引理 – jfisk 2011-12-08 04:37:50

1

想一想第二秒的{0^n 1^n}部分。將0替換爲(1並將其替換爲),並且您已經使用簡單的嵌套括號語言,這是一種語言不規則的失敗現象。

添加最終的0^n使其對上下文敏感(即不含上下文)。請記住,CFG可以由具有單個堆棧的有限狀態計算機作爲其唯一數據結構來決定。看到一個0會導致一個角色被壓入堆棧,看到一個1會從堆棧彈出。這保證了0的數目與1一樣多,但是沒有辦法再匹配更多 0。