Hvězda Kleene

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 5. prosince 2021; kontroly vyžadují 2 úpravy .

Kleene hvězda (nebo Kleene uzávěr ) v matematické logice a informatice je unární operace na souboru řetězců nebo charakterů . Kleeneův uzávěr sady V je označen V *. Široce se používá v regulárních výrazech .

Je-li V  množina řetězců pak V * je minimální nadmnožina V , která obsahuje ε ( prázdný řetězec ) a je uzavřena zřetězením . Je to také množina všech řetězců získaných zřetězením nula nebo více řetězců z V . Jestliže V  je množina symbolů pak V * je množina všech řetězců znaků z V s přidaným prázdným řetězcem.

Definice

Sada stupňů

Mocnina množiny je zřetězení množiny se sebou samými časy.

Nulový stupeň libovolné množiny se nemění:

.

Zbývající stupně jsou definovány rekurzivně :

, kde . If  je sada znaků pak  je sada řetězců znaků délky převzatých z .

Star Kleene

Kleene uzávěr soupravy je

.

To znamená, že se jedná o množinu všech řetězců konečné délky, generovaných prvky množiny .

Plus Kleene

Existuje operace podobná Kleene star- plus Kleene :

.

Jak vidíte, liší se tím, že v něm chybí prázdný řetězec.

Vlastnosti

. . . .

Příklady

Pro více řádků {"Go", "Russia"}* = {ε, "Go", "Rusko", "GoGo", "GoRussia", "RussiaGo", "RussiaRussia", "GoGoGo", "GoGoRussia", "GoRussiaGo", …}. Pro více postav {'a', 'b', 'c'}* = {ε, "a", "b", "c", "aa", "ab", "ac", "ba", "bb", "bc", "ca", "cb", "cc", "aaa", ...}. Pro sadu z prázdného řetězce . Pro prázdnou sadu . .

Generalizace

Řetězce tvoří monoid zřetězením s neutrálním prvkem . Kleeneovu definici hvězdy lze tedy rozšířit na jakýkoli monoid.

Viz také

Literatura