簡體   English   中英

無限的語言不能是正則的嗎? 什么是有限語言?

[英]An infinite language can't be regular? What is a finite language?

我在一本關於可計算性的書中讀到了這個:

(克萊恩定理)一種語言是正則的,當且僅當它可以通過應用聯合、連接、重復有限次數的三個操作從有限語言中獲得。

我正在為“有限語言”而苦苦掙扎。

考慮這種語言: L = a*

它不是有限的。 集合{0, a, aa, aaa, ...}顯然是一個無限集合( 0 = 空字符串)。

所以它是一種無限的語言,對吧? 也就是說,“無限集”就是“無限語言”,對吧?

顯然, a*是一種常規語言。 它是一種無限的語言。 因此,根據 Kleene 定理,它不可能是正則語言。 矛盾。

我糊塗了。 我想我不知道“有限語言”是什么意思。

你走在正確的軌道上,它可能更清晰。 克萊恩定理表達了三個陳述的等價性

語言是常規的==語言可以用正則表達式表示==語言可以用有限自動機表示。

你的例子確實是一種常規語言。 有限的語言是你所期望的,一種可以在有限的時間內列出的語言。

當他們談論重復時,他們正在談論Kleen Star操作,這正是a*代表的集合{empty, a, aa, aaa, aaaa, ...}

編輯:

我找到了這個鏈接:Kleenes定理 ,這有點幫助。 它通過'重復'來表示Kleen Star,那么原始陳述是有道理的。 a*Kleen_Star(a)

很快,你的發言是:

當且僅當有正則表達式時,語言才是常規語言。


“可以通過應用三個運算聯合,連接,重復有限次數從有限語言獲得”部分基本上是正則表達式的快速語言定義。 通常,從以下基本情況開始正式定義正則表達式(RE):

  • ∅(空集)是RE
  • ε(空字符串)是RE
  • a是RE,其中a在字母表中

這些都是有限的語言 然后,我們通過有限次數 應用以下三個遞歸規則來獲得其他RE:

  • A | B是RE,其中AB都是RE
  • AB是RE,其中AB都是RE
  • A *是RE,其中A是RE

最后,您可以使用有限描述(正則表達式)創建無限語言。

有限語言是包含有限數量單詞的語言。 最簡單的情況是那些根本不包含單詞的情況,空字符串和由單個符號組成的單個字符串(例如a在您的示例中為a)。

我認為你的困惑來自誤讀你引用的規則(正如一些評論這個問題的人)。

(Kleene定理)當且僅當它可以通過應用三個運算聯合,連接,重復有限次數從有限語言獲得時,語言是規則的。

該段落並未討論在一種語言中創建所有字符串所需的字符串操作次數,而是關於定義所定義語言所需的更簡單語言的操作次數。 您提到的語言是通過以有限語言(集合{“a”})開始並應用重復運算符一次構建的。

一種不同且不那么直接的方式,不是語言和語言操作,而是表達語言的表達式和組合它們的更復雜的表達式:當且僅當它可以用包含a的正則表達式表示時,語言是常規的。有限數量的運營商。

采用類似a的表達式,表示僅包含單個單詞“a”的有限語言。 我們可以在該表達式中添加一個重復運算符,我們得到a* ,這是一種無限語言,包含來自第一語言的零個或多個單詞的每個串聯。 我們可以通過從表示有限語言的表達式開始並通過使用模式E = F |組合一個或兩個較小的表達式FG來構建每個有限表達式E. GE = FG ,或E = F *將表示常規語言。 當表達式用規則表達規則時,表達有限語言(具有有限數量的單詞的語言)的表達是基本情況; 當規則直接用語言表達時,有限語言是基本情況,沒有任何偏離表達 - 土地。

如果我們允許無限次地應用聯合,連接和重復(或者等效地,如果我們允許使用常規表達式的規則的無限表達式),則不能保證生成的語言是常規的。 這是觀察的常規語言層面的類比,無限大的無上下文語法可以定義非上下文語言,如van Wijngaarden語法所示。

無限語言是指具有無限等價類的集合。 然而,a *語言只有一個等價類,因此它成為一種有限的語言。

具有有限數量字符串的語言是有限語言。

因為字符串是有限的,所以可以使用它們來創建有限自動機。 Kleene 定理是 (1) 任何正則語言都被有限自動機接受。 反之亦然:(2)有限自動機接受的任何語言都是正則的。 請注意,自動機可能是確定性的,也可能不是

現在,當一種語言是無限的(它有無限數量的字符串)時,它可能是喬姆斯基層次結構中的任何類型的語言(常規或非常規)。

暫無
暫無

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

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