Kleene hvězda - Kleene star

V matematické logice a informatice , v Kleeneho hvězdy (nebo provozovatel Kleeneho nebo uzavření Kleeneho ) je unární operace , a to buď na sety z řetězců nebo na sady symbolů nebo znaků. V matematice je známější jako volná monoidová konstrukce. Aplikace hvězdy Kleene na sadu je napsána jako . Je široce používán pro regulární výrazy , což je kontext, ve kterém jej zavedl Stephen Kleene k charakterizaci určitých automatů , kde znamená „nulové nebo více opakování“.

  1. Pokud je množina řetězců, potom je definována jako nejmenší podmnožinou of který obsahuje prázdný řetězec a je uzavřen v rámci operace zřetězení řetězců .
  2. Pokud je sada symbolů nebo znaků, pak je sada všech řetězců nad symboly v , včetně prázdného řetězce .

Sadu lze také popsat jako sadu obsahující prázdný řetězec a všechny řetězce konečné délky, které lze generovat zřetězením libovolných prvků , což umožňuje použití stejného prvku vícekrát. Pokud je buď prázdná množina ∅, nebo singletonová množina , pak ; pokud je nějaká jiná konečná množina nebo spočitatelně nekonečná množina , pak je spočitatelně nekonečná množina. V důsledku toho je každý formální jazyk přes konečnou nebo spočitatelně nekonečnou abecedu spočitatelný, protože je podmnožinou spočitatelně nekonečné množiny .

Operátory se používají v pravidlech přepisování pro generativní gramatiky .

Definice a zápis

Vzhledem k definici sady

(jazyk sestávající pouze z prázdného řetězce),

a definujte rekurzivně sadu

pro každého .

Pokud je formální jazyk, pak se tý výkon setu , je zkratka pro zřetězení setu se sebou samým krát. To znamená, že lze chápat jako soubor všech řetězců, které lze reprezentovat jako zřetězení řetězců v .

Definice Kleene hvězdy na je

To znamená, že hvězdný operátor Kleene je idempotentní unární operátor : pro každou sadu řetězců nebo znaků, jako pro všechny .

Kleene plus

V některých formálních jazykových studiích (např. Teorie AFL ) se používá variace na operaci hvězdy Kleene zvanou Kleene plus . Kleene plus tento termín ve výše uvedeném svazku vynechává . Jinými slovy, Kleene plus on je

nebo

Příklady

Příklad hvězdy Kleene aplikované na sadu řetězců:

{"ab", "c"} * = {ε, "ab", "c", "abab", "abc", "cab", "cc", "ababab", "ababc", "abcab", „abcc“, „cabab“, „cabc“, „ccab“, „ccc“, ...}.

Příklad Kleene plus aplikovaný na sadu znaků:

{"a", "b", "c"} + = {"a", "b", "c", "aa", "ab", "ac", "ba", "bb", "bc "," ca "," cb "," cc "," aaa "," aab ", ...}.

Kleene hvězda aplikovaná na stejnou znakovou sadu:

{"a", "b", "c"} * = {ε, "a", "b", "c", "aa", "ab", "ac", "ba", "bb", „bc“, „ca“, „cb“, „cc“, „aaa“, „aab“, ...}.

Příklad hvězdy Kleene aplikované na prázdnou sadu:

* = {ε}.

Příklad použití Kleene plus na prázdnou sadu:

+ = ∅ ∅ * = {} = ∅,

kde zřetězení je asociativní a nekomutativní produkt.

Příklad Kleene plus a Kleene star aplikovaných na singletonovou sadu obsahující prázdný řetězec:

Pokud , pak také pro každého , tedy .

Zobecnění

Řetězce tvoří monoid se zřetězením jako binární operací a ε prvkem identity. Kleeneova hvězda je definována pro jakýkoli monoid, nejen pro řetězce. Přesněji řečeno, nechť ( M , ⋅) být monoid a SM . Pak S * je nejmenší submonoid M obsahující S ; to znamená, že S * obsahuje neutrální prvek M , množinu S , a je takový, že když x , yS * , pak xyS * .

Kleeneova hvězda je navíc zobecněna zahrnutím operace *(a unie) do samotné algebraické struktury pojmem úplného hvězdného semiringu .

Viz také

Reference

Další čtení