簡體   English   中英

正則語言在拼接和星型操作下的閉包性

[英]Closure property of regular languages under concatenation and star operation

在我們的計算理論課程中,我們已經在交集、並集和補集下證明了正則語言(L1,L2)的閉包。 但是它們在 concatenation(L1L2) 和 star(L1*) 操作下的閉包沒有完成。 如果有人能向我解釋我們如何證明這兩個,那就太好了。

提前致謝

這些事實的證據是建設性的。

令 L1 和 L2 為任意正則語言。 因為它們是常規語言,所以我們知道 L1 和 L2 的 DFA 最少; 我們分別稱它們為 M1 和 M2。

要看到這些語言的連接必須是規則的,構造一個機器 M* 如下:

  • M* 的狀態是 M1 和 M2 的狀態加在一起
  • M*的字母表是M1和M2字母表的並集
  • M*的首字母state是M1的首字母state
  • M* 的接受狀態是 M2 的接受狀態
  • M* 具有與 M1 和 M2 放在一起的所有相同轉換,加上從 M1 中的所有接受狀態到 M2 的初始 state 的空/epsilon/lambda 轉換

這定義了一個 NFA-lambda(具有空/lambda/epsilon 轉換的 NFA)。 我們知道這些等價於 DFA,並且所有 DFA 都可以最小化; 讓我們稱其為等效的最小 DFA M**。

因為 L1 和 L2 的串聯存在最小 DFA,所以串聯必須是規則的。

L* 的論證是相似的,其中 L 是正則的。 令 M3 為 L 的最小 DFA。然后定義 M*** 如下:

  • M*** 的狀態是 M3 的狀態加上一個額外的 state q*
  • M***的字母是M3的字母
  • M***的首字母state是q*
  • 接受M***的state是q*
  • M*** 的轉換是 M3 的轉換,加上從 q* 到 M3 的接受狀態 state 的空/epsilon/lambda 轉換,以及從 M3 的接受狀態到 q* 的空/epsilon/lambda 轉換

這定義了一個接受 L* 的 NFA-lambda(具有空/epsilon/lambda 轉換的 NFA)。 因為 NFA-lambda 等價於 DFA,並且 DFA 可以最小化,所以 L* 有一個最小 DFA M****。 因此,只要 L 是,L* 就必須是正則的。

暫無
暫無

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

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