基本介紹
- 中文名:Kleene星號
- 外文名:Kleensche Hülle
- 或稱: Kleene 閉包
- 用於:正則表達式
定義及標記方法,推廣,例子,參考文獻,
定義及標記方法
給定集合V 設:
- V0 = {ε} 即只包含空串
- V1 = V
遞歸的定義集合Vi+1 ,這裡的 ![](/img/9/8ea/fa97337b7010da74d6f17233a8be.jpg)
![](/img/9/8ea/fa97337b7010da74d6f17233a8be.jpg)
- Vi+1 = { wv: w ∈ Vi and v ∈ V } .
所以在
上的 Kleene 星號的定義是
![](/img/b/78b/1d25f077bfb1d6e5ba3a6ad0bbc5.jpg)
![](/img/9/96f/e1c28e301a95c58c3664d701c036.jpg)
就是說,它是由
中的符號生成的所有可能的有限長度的字元串所構成的集合。
![](/img/b/78b/1d25f077bfb1d6e5ba3a6ad0bbc5.jpg)
推廣
(封閉性) ![](/img/f/c2c/2814c9387aa237b5b055117a41dc.jpg)
![](/img/f/c2c/2814c9387aa237b5b055117a41dc.jpg)
(結合律) ![](/img/c/813/22fd816d7c5e1fde5a5fda2e072f.jpg)
![](/img/c/813/22fd816d7c5e1fde5a5fda2e072f.jpg)
(單位元) ![](/img/8/c2f/bce7013f82ad87271a16699c8fc4.jpg)
![](/img/8/c2f/bce7013f82ad87271a16699c8fc4.jpg)
如果
是
的子集,則
被定義為包含
(空字元串) 並閉合於這個運算下的
的最小超集。接著
自身是么半群,並被稱為
生成的自由么半群。這是上面討論的 Kleene 星號的推廣,因為在某個符號的集合上所有字元串的集合形成了一個么半群(帶有字元串串接作為二元運算)。
![](/img/b/78b/1d25f077bfb1d6e5ba3a6ad0bbc5.jpg)
![](/img/7/f6f/54e7e89b9f7c910ddbb3b7586ba7.jpg)
![](/img/0/5a4/21cde7099b74c9071c725b5824e1.jpg)
![](/img/1/8e9/70e8313691b3b846042993332cc2.jpg)
![](/img/9/ed4/c4eb462121ca4f6f1b88ae8eb5c4.jpg)
![](/img/4/8e4/f3b7af6ae1b8a38599f44992450c.jpg)
![](/img/b/78b/1d25f077bfb1d6e5ba3a6ad0bbc5.jpg)
例子
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.