
- 自動機理論教程
- 自動機理論 - 首頁
- 自動機理論 - 入門
- 自動機理論 - 歷史
- 自動機理論 - 應用
- 自動機理論術語
- 自動機中字串的基礎
- 自動機的集合論
- 語言和文法
- 計算理論中的文法
- 由文法生成的語言
- 喬姆斯基文法分類
- 有限自動機
- 確定性有限自動機 (DFA)
- 非確定性有限自動機 (NFA)
- 從 NFA 到 DFA 的轉換
- DFA 的最小化
- Moore 機與 Mealy 機
- DFA 的補集
- 正則表示式
- 自動機中的正則表示式
- 自動機中的 Arden 定理
- 將正則表示式轉換為有限自動機
- 正則文法的泵引理
- 計算理論中的正則集
- 上下文無關文法
- 上下文無關文法 (CFG)
- 上下文無關文法中的二義性
- 上下文無關語言的封閉性
- 簡化上下文無關文法
- 喬姆斯基正規化 (CNF)
- 格雷巴赫正規化 (GNF)
- 上下文無關文法的泵引理
- 下推自動機
- 下推自動機 (PDA)
- 下推自動機的接受
- 從 CFG 構造 PDA
- 下推自動機和解析
- 圖靈機
- 圖靈機基礎 (TM)
- 圖靈機接受的語言
- 多磁帶圖靈機
- 多軌跡圖靈機
- 非確定性圖靈機
- 半無限帶圖靈機
- 線性有界自動機 (LBA)
- 可計算性和不可判定性
- 圖靈語言的可判定性
- 不可判定語言
- 圖靈機停機問題
- 計算理論中的 Rice 定理
- Post 對應問題 (PCP)
- 自動機理論資源
- 自動機理論 - 快速指南
- 自動機理論 - 資源
- 自動機理論 - 討論
正則集
表示正則表示式值的任何集合都稱為正則集。
正則集的性質
性質 1. 兩個正則集的並集是正則的。
證明 −
讓我們取兩個正則表示式
RE1 = a(aa)* 和 RE2 = (aa)*
所以,L1 = {a, aaa, aaaaa,.....}(奇數長度字串,不包括空串)
和 L2 ={ ε, aa, aaaa, aaaaaa,.......}(偶數長度字串,包括空串)
L1 ∪ L2 = { ε, a, aa, aaa, aaaa, aaaaa, aaaaaa,.......}
(所有可能長度的字串,包括空串)
RE (L1 ∪ L2) = a* (它本身就是一個正則表示式)
因此,得證。
性質 2. 兩個正則集的交集是正則的。
證明 −
讓我們取兩個正則表示式
RE1 = a(a*) 和 RE2 = (aa)*
所以,L1 = { a,aa, aaa, aaaa, ....}(所有可能長度的字串,不包括空串)
L2 = { ε, aa, aaaa, aaaaaa,.......}(偶數長度字串,包括空串)
L1 ∩ L2 = { aa, aaaa, aaaaaa,.......}(偶數長度字串,不包括空串)
RE (L1 ∩ L2) = aa(aa)*,它本身就是一個正則表示式。
因此,得證。
性質 3. 正則集的補集是正則的。
證明 −
讓我們取一個正則表示式 −
RE = (aa)*
所以,L = {ε, aa, aaaa, aaaaaa, .......}(偶數長度字串,包括空串)
L 的補集是不在L 中的所有字串。
所以,L’ = {a, aaa, aaaaa, .....}(奇數長度字串,不包括空串)
RE (L’) = a(aa)*,它本身就是一個正則表示式。
因此,得證。
性質 4. 兩個正則集的差集是正則的。
證明 −
讓我們取兩個正則表示式 −
RE1 = a (a*) 和 RE2 = (aa)*
所以,L1 = {a, aa, aaa, aaaa, ....}(所有可能長度的字串,不包括空串)
L2 = { ε, aa, aaaa, aaaaaa,.......}(偶數長度字串,包括空串)
L1 – L2 = {a, aaa, aaaaa, aaaaaaa, ....}
(所有奇數長度的字串,不包括空串)
RE (L1 – L2) = a (aa)*,它是一個正則表示式。
因此,得證。
性質 5. 正則集的反轉是正則的。
證明 −
如果L 是一個正則集,我們必須證明LR 也是正則的。
例如,L = {01, 10, 11, 10}
RE (L) = 01 + 10 + 11 + 10
LR = {10, 01, 11, 01}
RE (LR) = 01 + 10 + 11 + 10,它是正則的
因此,得證。
性質 6. 正則集的閉包是正則的。
證明 −
如果 L = {a, aaa, aaaaa, .......} (奇數長度字串,不包括空串)
即, RE (L) = a (aa)*
L* = {a, aa, aaa, aaaa , aaaaa,……………} (所有長度的字串,不包括空串)
RE (L*) = a (a)*
因此,得證。
性質 7. 兩個正則集的連線是正則的。
證明 −
設 RE1 = (0+1)*0 和 RE2 = 01(0+1)*
這裡, L1 = {0, 00, 10, 000, 010, ......} (以 0 結尾的字串集)
和 L2 = {01, 010,011,.....} (以 01 開頭的字串集)
然後, L1 L2 = {001,0010,0011,0001,00010,00011,1001,10010,.............}
包含 001 作為子串的字串集,可以用一個 RE 表示 − (0 + 1)*001(0 + 1)*
因此,得證。
與正則表示式相關的恆等式
給定 R、P、L、Q 為正則表示式,以下恆等式成立 −
- ∅* = ε
- ε* = ε
- RR* = R*R
- R*R* = R*
- (R*)* = R*
- RR* = R*R
- (PQ)*P =P(QP)*
- (a+b)* = (a*b*)* = (a*+b*)* = (a+b*)* = a*(ba*)*
- R + ∅ = ∅ + R = R (並集的恆等式)
- R ε = ε R = R (連線的恆等式)
- ∅ L = L ∅ = ∅ (連線的零元)
- R + R = R (冪等律)
- L (M + N) = LM + LN (左分配律)
- (M + N) L = ML + NL (右分配律)
- ε + RR* = ε + R*R = R*