Kleene-ster

Uit testwiki
Versie door imported>Hoopje op 15 dec 2023 om 10:46
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

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.

  1. 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.
  2. Als V een verzameling symbolen is, is V* de verzameling met alle strings van symbolen uit V, inclusief de lege string.

Definitie

We definiëren

V0={ϵ}

en op recursieve wijze de verzameling:

Vi+1={wvwVi en vV}, met i0.

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*=i=0Vi={ϵ}V1V2V3

V* bevat dus alle mogelijke strings met eindige lengte die gegenereerd kunnen worden met symbolen uit V.

Voorbeelden

De 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

De Kleene-ster wordt vaak gegeneraliseerd voor een willekeurige monoïde (M, ), een verzameling M en een binaire operatie op M zodanig dat:

  • (geslotenheid) a,bM:abM
  • (associativiteit) a,b,cM:(ab)c=a(bc)