基本介紹
- 中文名:Kleene星號
- 外文名:Kleensche Hülle
- 或稱: Kleene 閉包
- 用於:正則表達式
定義及標記方法,推廣,例子,參考文獻,
定義及標記方法
給定集合V 設:
- V0 = {ε} 即只包含空串
- V1 = V
遞歸的定義集合Vi+1 ,這裡的
- Vi+1 = { wv: w ∈ Vi and v ∈ V } .
所以在 上的 Kleene 星號的定義是
就是說,它是由 中的符號生成的所有可能的有限長度的字元串所構成的集合。
推廣
(封閉性)
(結合律)
(單位元)
如果 是 的子集,則 被定義為包含 (空字元串) 並閉合於這個運算下的 的最小超集。接著 自身是么半群,並被稱為 生成的自由么半群。這是上面討論的 Kleene 星號的推廣,因為在某個符號的集合上所有字元串的集合形成了一個么半群(帶有字元串串接作為二元運算)。
例子
Kleene 星號套用於字元串集合的例子:
- {"ab", "c"}* = {ε, "ab", "c", "abab", "abc", "cab", "cc", "ababab", "ababc", "abcab", "abcc", "cabab", "cabc", "ccab", "ccc", ...}
Kleene 星號套用於字元集合的例子:
- {'a', 'b', 'c'}* = {ε, "a", "b", "c", "aa", "ab", "ac", "ba", "bb", "bc", ...}
參考文獻
Kleene 星號的定義基本上可從任何一本自動機理論的參考書中找到。以下是其中一本標準的參考書:
- John Hopcroft | John E. Hopcroft and Jeffrey D. Ullman. Introduction to Automata Theory Languages and Computation. 1st edition. Addison-Wesley Publishing Company, 1979.