fbpx
维基百科

迈希尔-尼罗德定理

形式语言理论中,Myhill–Nerode 定理提供了一个语言是正则语言必要和充分条件。它近乎专门的被用来证明一个给定语言不是正则的。

这个定理得名于 John Myhill 和 Anil Nerode,他们于1958年在芝加哥大学证明了这个定理[1]

定理陈述

给定一个字母集 (alphabet)   以及其生成的语言 (language)  ,我們先來定義兩個字串   之間彼此的關係:如果對於所有的後接字串   (注意!  可以是空字串) 都會讓    同時屬於或不屬於  ,那麼我們說    不可區分 (indistinguishable);相反地如果存在某個後接字串     其中一個屬於而另外一個不屬於  ,則我們說    是可區分的 (distinguishable)。如果    不可區分,我們說它們滿足關係 (relation)  ,數學式子寫成  。我們也很容易证明這種關係是種等价关系 (equivalence relation),因此它可以把   划分成一个或多个等价类 (equivalence class)。

Myhill–Nerode 定理声称一套語言   是正規的「若且唯若」   所切分出的等价类数目是有限的,此外這個等價類數量又恰好是可辨識   的最小 DFA 的狀態數量。在詳細的證明中「一個等價類會恰好對應到最小 DFA 裡的一個狀態」,如果先給定一个自动机,则任意兩個能驱使它走到同一個状态的字串    必在同一个等价类中;如果先給定一個等价类划分,那可以轻易地构造出一个自动机使其状态恰好對應到等价类。

定理證明

  • 方向一:如果    所切分出的等价类数目是無限多的,那麼語言   無法正規

這個方向比較簡單,我們只要證明一個引理 (lemma):可辨識   的 DFA 狀態數量必須不小於等價類數目即可,而這可以使用反證法 (鴿籠原理) 說明。如果 DFA 狀態數量少於等價類數量,那代表必定有兩個不屬於同一個等價類的字串    會引導 DFA 到同一個狀態,如果它們又繼續有後接字串  ,就會讓    也走到同一個狀態,如此一來根據定義,   應該要屬於同一個等價類,造成矛盾,因此 DFA 狀態數量必須不小於等價類數目。由這個結論可以推得,當等价类数目無限多時,這個 DFA 的狀態數量也必須是無限多,和「有限」狀態機的定義矛盾,換句話說我們找不到一台 DFA 可辨識  ,因此   不正規。

  • 方向二:如果    所切分出的等价类数目是有限的,那麼必存在一台同等數量狀態的 DFA 可辨識   使其正規

我們先構造出一台 DFA,先假設它的每一個狀態都剛好代表一個等價類 (也就是一個狀態承裝一個等價類裡的所有字串,從起點開始輸入該字串務必到達該狀態),而轉移函數的決定方式就是從一個狀態隨意抓取一個代表字串,看看它吃了一個字母之後的字串會落在哪個狀態裡面,就讓它走去那裏。這個走向會唯一,理由很簡單可以自己想。對於每個狀態和每個轉移字母都窮舉一遍,最後再觀察哪些狀態包含了被接受的字串,直接讓它們變成終點態 (final state)。一個等價類裡如果有一個字串被接受,那同一個類裡的所有其他字串也會通通被接受,因為根據定義,後接字串可以是空字串。到目前為止,我們有了一定數量的狀態 (圓圈圈)、所有的轉移函數、一個唯一的起點 (看空字串在哪裡即可)、所有的終點,是一台合法的 DFA。現在的問題是,要怎麼證明這台 DFA 能確實辨識  ,也就是說對於任意字串輸入都能驅使 DFA 走到我們當初賦予每個狀態必須各自代表一個等價類的任務?

這必須對字串輸入的長度作數學歸納法才能證明。如果字串輸入長度為 0,也就是空字串,那它必須留在起點,而我們起點的取法就剛好是看空字串的位置,所以輸入為空字串時的狀態落點正確;如果對於所有長度不超過   的字串輸入,它們的狀態落點皆正確,那麼對於任何長度為   的字串輸入  ,皆可分解為  ,其中   的長度為    的長度為   (字元),走完   之後的落點根據假設是正確的,剩下的一個字元   根據我們上述決定轉移函數的方式,自然也會繼續走向我們當初所期望的落點;如此依序遞迴下去,就能說明對於任意字串輸入,這台 DFA 確實能妥善的把   裡的每個字串分到正確的類別,並決定接受與否。於是乎我們根據這個   創造了一台能辨識   的 DFA,而且這台 DFA 的狀態數量剛好就是    所切分出的等价类數量。[2]

用途和结论

Myhill–Nerode 定理的一个结论是语言 L 是正则的(就是说可被有限状态机接受),当且仅当 RL 的等价类的数目是有限的。

直接推论是如果一个语言定义等价类的无限集合,它就不是正则的。这个推论经常被用来证明一个语言不是正则的。

例如,由可以被 3 整除的二进制数组成的语言是正则的。有三个等价类 3 - 被 3 除的时候余数是 0, 1 和 2 的数。接受这个语言的极小自动机有对应于等价类的三个状态。

再給一例,我們想說明   不是正規的。原因是,給定任意兩個不同長度的   字串,我們都能接上一個後接字串將這兩個字串分辨開來,舉例來說,給定   ,我們就能接上    合法而   不合法。所以有無限多個字串     、... 等彼此之間都是可分辨的,這意味著需要無限多個狀態的自動機才能辨識這個語言,和正規語言定義矛盾,因此   不是正規語言。

引用

註釋

  1. ^ A. Nerode, "Linear automaton transformations", Proceedings of the AMS, 9 (1958) pp 541-544.
  2. ^ Edmund M. Clarke, Myhill-Nerode Handout (页面存档备份,存于互联网档案馆 (2009)

一般參考

  • John E. Hopcroft and Jeffrey D. Ullman, Introduction to Automata Theory, Languages and Computation, Addison-Wesley Publishing, Reading Massachusetts, 1979. ISBN 0-201-02988-X. (See chapter 3.)
  • Tom Henzinger, (2003)

迈希尔, 尼罗德定理, 本條目存在以下問題, 請協助改善本條目或在討論頁針對議題發表看法, 此條目需要編修, 以確保文法, 用詞, 语气, 格式, 標點等使用恰当, 2022年3月5日, 請按照校對指引, 幫助编辑這個條目, 幫助, 討論, 此條目需要补充更多来源, 2022年3月5日, 请协助補充多方面可靠来源以改善这篇条目, 无法查证的内容可能會因為异议提出而被移除, 致使用者, 请搜索一下条目的标题, 来源搜索, 网页, 新闻, 书籍, 学术, 图像, 以检查网络上是否存在该主题的更多可靠来源, 判定指引, . 本條目存在以下問題 請協助改善本條目或在討論頁針對議題發表看法 此條目需要編修 以確保文法 用詞 语气 格式 標點等使用恰当 2022年3月5日 請按照校對指引 幫助编辑這個條目 幫助 討論 此條目需要补充更多来源 2022年3月5日 请协助補充多方面可靠来源以改善这篇条目 无法查证的内容可能會因為异议提出而被移除 致使用者 请搜索一下条目的标题 来源搜索 迈希尔 尼罗德定理 网页 新闻 书籍 学术 图像 以检查网络上是否存在该主题的更多可靠来源 判定指引 在形式语言理论中 Myhill Nerode 定理提供了一个语言是正则语言的必要和充分条件 它近乎专门的被用来证明一个给定语言不是正则的 这个定理得名于 John Myhill 和 Anil Nerode 他们于1958年在芝加哥大学证明了这个定理 1 目录 1 定理陈述 2 定理證明 3 用途和结论 4 引用 4 1 註釋 4 2 一般參考定理陈述 编辑给定一个字母集 alphabet S displaystyle Sigma 以及其生成的语言 language L S displaystyle L subseteq Sigma 我們先來定義兩個字串 x y S displaystyle x y in Sigma 之間彼此的關係 如果對於所有的後接字串 z S displaystyle z in Sigma 注意 z displaystyle z 可以是空字串 都會讓 x z displaystyle xz 和 y z displaystyle yz 同時屬於或不屬於 L displaystyle L 那麼我們說 x displaystyle x 和 y displaystyle y 不可區分 indistinguishable 相反地如果存在某個後接字串 z S displaystyle z in Sigma 讓 x z displaystyle xz 和 y z displaystyle yz 其中一個屬於而另外一個不屬於 L displaystyle L 則我們說 x displaystyle x 和 y displaystyle y 是可區分的 distinguishable 如果 x displaystyle x 和 y displaystyle y 不可區分 我們說它們滿足關係 relation R L displaystyle R L 數學式子寫成 x R L y displaystyle x R L y 我們也很容易证明這種關係是種等价关系 equivalence relation 因此它可以把 S displaystyle Sigma 划分成一个或多个等价类 equivalence class Myhill Nerode 定理声称一套語言 L displaystyle L 是正規的 若且唯若 S displaystyle Sigma 被 R L displaystyle R L 所切分出的等价类数目是有限的 此外這個等價類數量又恰好是可辨識 L displaystyle L 的最小 DFA 的狀態數量 在詳細的證明中 一個等價類會恰好對應到最小 DFA 裡的一個狀態 如果先給定一个自动机 则任意兩個能驱使它走到同一個状态的字串 x displaystyle x 和 y displaystyle y 必在同一个等价类中 如果先給定一個等价类划分 那可以轻易地构造出一个自动机使其状态恰好對應到等价类 定理證明 编辑方向一 如果 S displaystyle Sigma 被 R L displaystyle R L 所切分出的等价类数目是無限多的 那麼語言 L displaystyle L 無法正規這個方向比較簡單 我們只要證明一個引理 lemma 可辨識 L displaystyle L 的 DFA 狀態數量必須不小於等價類數目即可 而這可以使用反證法 鴿籠原理 說明 如果 DFA 狀態數量少於等價類數量 那代表必定有兩個不屬於同一個等價類的字串 x displaystyle x 和 y displaystyle y 會引導 DFA 到同一個狀態 如果它們又繼續有後接字串 z displaystyle z 就會讓 x z displaystyle xz 和 y z displaystyle yz 也走到同一個狀態 如此一來根據定義 x displaystyle x 和 y displaystyle y 應該要屬於同一個等價類 造成矛盾 因此 DFA 狀態數量必須不小於等價類數目 由這個結論可以推得 當等价类数目無限多時 這個 DFA 的狀態數量也必須是無限多 和 有限 狀態機的定義矛盾 換句話說我們找不到一台 DFA 可辨識 L displaystyle L 因此 L displaystyle L 不正規 方向二 如果 S displaystyle Sigma 被 R L displaystyle R L 所切分出的等价类数目是有限的 那麼必存在一台同等數量狀態的 DFA 可辨識 L displaystyle L 使其正規我們先構造出一台 DFA 先假設它的每一個狀態都剛好代表一個等價類 也就是一個狀態承裝一個等價類裡的所有字串 從起點開始輸入該字串務必到達該狀態 而轉移函數的決定方式就是從一個狀態隨意抓取一個代表字串 看看它吃了一個字母之後的字串會落在哪個狀態裡面 就讓它走去那裏 這個走向會唯一 理由很簡單可以自己想 對於每個狀態和每個轉移字母都窮舉一遍 最後再觀察哪些狀態包含了被接受的字串 直接讓它們變成終點態 final state 一個等價類裡如果有一個字串被接受 那同一個類裡的所有其他字串也會通通被接受 因為根據定義 後接字串可以是空字串 到目前為止 我們有了一定數量的狀態 圓圈圈 所有的轉移函數 一個唯一的起點 看空字串在哪裡即可 所有的終點 是一台合法的 DFA 現在的問題是 要怎麼證明這台 DFA 能確實辨識 L displaystyle L 也就是說對於任意字串輸入都能驅使 DFA 走到我們當初賦予每個狀態必須各自代表一個等價類的任務 這必須對字串輸入的長度作數學歸納法才能證明 如果字串輸入長度為 0 也就是空字串 那它必須留在起點 而我們起點的取法就剛好是看空字串的位置 所以輸入為空字串時的狀態落點正確 如果對於所有長度不超過 ℓ displaystyle ell 的字串輸入 它們的狀態落點皆正確 那麼對於任何長度為 ℓ 1 displaystyle ell 1 的字串輸入 w displaystyle w 皆可分解為 w u a displaystyle w ua 其中 u displaystyle u 的長度為 ℓ displaystyle ell 而 a displaystyle a 的長度為 1 displaystyle 1 字元 走完 u displaystyle u 之後的落點根據假設是正確的 剩下的一個字元 a displaystyle a 根據我們上述決定轉移函數的方式 自然也會繼續走向我們當初所期望的落點 如此依序遞迴下去 就能說明對於任意字串輸入 這台 DFA 確實能妥善的把 S displaystyle Sigma 裡的每個字串分到正確的類別 並決定接受與否 於是乎我們根據這個 R L displaystyle R L 創造了一台能辨識 L displaystyle L 的 DFA 而且這台 DFA 的狀態數量剛好就是 S displaystyle Sigma 被 R L displaystyle R L 所切分出的等价类數量 2 用途和结论 编辑Myhill Nerode 定理的一个结论是语言 L 是正则的 就是说可被有限状态机接受 当且仅当 RL 的等价类的数目是有限的 直接推论是如果一个语言定义等价类的无限集合 它就不是正则的 这个推论经常被用来证明一个语言不是正则的 例如 由可以被 3 整除的二进制数组成的语言是正则的 有三个等价类 3 被 3 除的时候余数是 0 1 和 2 的数 接受这个语言的极小自动机有对应于等价类的三个状态 再給一例 我們想說明 A 0 n 1 n n 0 displaystyle A 0 n 1 n n geq 0 不是正規的 原因是 給定任意兩個不同長度的 0 displaystyle 0 字串 我們都能接上一個後接字串將這兩個字串分辨開來 舉例來說 給定 000 displaystyle 000 和 00000 displaystyle 00000 我們就能接上 111 displaystyle 111 讓 000111 displaystyle 000111 合法而 00000111 displaystyle 00000111 不合法 所以有無限多個字串 0 displaystyle 0 00 displaystyle 00 000 displaystyle 000 0000 displaystyle 0000 等彼此之間都是可分辨的 這意味著需要無限多個狀態的自動機才能辨識這個語言 和正規語言定義矛盾 因此 A displaystyle A 不是正規語言 引用 编辑註釋 编辑 A Nerode Linear automaton transformations Proceedings of the AMS 9 1958 pp 541 544 Edmund M Clarke Myhill Nerode Handout 页面存档备份 存于互联网档案馆 2009 一般參考 编辑 John E Hopcroft and Jeffrey D Ullman Introduction to Automata Theory Languages and Computation Addison Wesley Publishing Reading Massachusetts 1979 ISBN 0 201 02988 X See chapter 3 Tom Henzinger Lecture 7 Myhill Nerode Theorem 2003 取自 https zh wikipedia org w index php title 迈希尔 尼罗德定理 amp oldid 76501924, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。