Kleene-ster
In de wiskunde en informatica is de Kleene-ster een unaire operator op een verzameling strings of een verzameling symbolen. Het toepassen van de Kleene-ster op de verzameling V wordt genoteerd als V*. De operator wordt veel gebruikt in reguliere expressies waarin hij geïntroduceerd werd door Stephen Kleene om bepaalde automaten te karakteriseren.
- Als V een verzameling strings is, wordt de Kleene-ster gedefinieerd als de kleinste superset die ε (de lege string) bevat en die gesloten is onder concatenatie van strings.
- Als V een verzameling symbolen is, is V* de verzameling met alle strings van symbolen uit V, inclusief de lege string.
Definitie
bewerkenWe definiëren
en op recursieve wijze de verzameling:
- , met .
Als V een formele taal is, dan bevat Vi alle mogelijke strings die ontstaan door i keer een element uit V te nemen (mogelijk dezelfde) en deze te concateneren.
De Kleene-ster kan nu gedefinieerd worden als:
V* bevat dus alle mogelijke strings met eindige lengte die gegenereerd kunnen worden met symbolen uit V.
Voorbeelden
bewerkenDe Kleene-ster van een verzameling met strings:
- {"ab", "c"}* = {ε, "ab", "c", "abab", "abc", "cab", "cc", "ababab", "ababc", "abcab", "abcc", "cabab", "cabc", "ccab", "ccc", ...}
De Kleene-ster van een verzameling met symbolen:
- {'a', 'b', 'c'}* = {ε, "a", "b", "c", "aa", "ab", "ac", "ba", "bb", "bc", ...}
Generalisatie
bewerkenDe Kleene-ster wordt vaak gegeneraliseerd voor een willekeurige monoïde (M, ), een verzameling M en een binaire operatie op M zodanig dat:
- (geslotenheid)
- (associativiteit)