Kleenesche und positive Hülle

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Kleene-Stern)
Wechseln zu: Navigation, Suche

Die kleenesche Hülle (auch endlicher Abschluss, Kleene-*-Abschluss, Verkettungshülle oder Sternhülle genannt) eines Alphabets \Sigma oder einer formalen Sprache L ist die Menge aller Wörter, die durch beliebige Konkatenation (Verknüpfung) von Symbolen des Alphabets \Sigma bzw. von Wörtern der Sprache L gebildet werden können, wobei das leere Wort \varepsilon inbegriffen ist. Sie ist nach dem US-amerikanischen Mathematiker und Logiker Stephen Cole Kleene benannt. Demgegenüber ist die positive Hülle (auch Kleene-+-Abschluss genannt) eines Alphabets \Sigma oder einer formalen Sprache L die Menge aller Wörter, die aus den Symbolen von \Sigma beziehungsweise aus Wörtern von L gebildet werden können und die nur dann das leere Wort enthält, wenn die positive Hülle auf eine Sprache angewandt wird, die selbst das leere Wort als Element enthält.

Der Operator der kleeneschen Hülle ist der Kleene-Stern^*“. So ist die Darstellung der kleeneschen Hülle eines Alphabets \Sigma gleich \Sigma^* und einer Sprache L gleich L^*. Demgegenüber ist der Operator der positiven Hülle das Pluszeichen^+“, sodass die positive Hülle eines Alphabets \Sigma mit \Sigma^+ und einer Sprache L mit L^+ dargestellt wird.

In Anlehnung an den Kleene-*-Operator über Sprachen wird der *-Operator bei regulären Ausdrücken ebenfalls Kleene-*-Operator genannt. Die Anzahl verschachtelter Kleene-*-Operatoren bestimmt die Sternhöhe eines regulären Ausdrucks.

Definition[Bearbeiten]

Hüllenoperator für Alphabete[Bearbeiten]

Die kleenesche Hülle \Sigma^* eines Alphabets \Sigma ist eine Sprache, die alle Wörter über dem Alphabet enthält. Sie lässt sich mit Hilfe der strukturellen Induktion definieren. Im Induktionsanfang definiert man zunächst, dass das leere Wort \varepsilon in der kleeneschen Hülle enthalten ist, und im Induktionsschritt wird definiert, dass für jedes Wort w, das Element der kleeneschen Hülle ist, auch die Konkatenationen w \circ a für alle Symbole a \in \Sigma Elemente der Kleeneschen Hülle sind:

  • Induktionsanfang: \varepsilon \in \Sigma^*
  • Induktionsschritt: (w \in \Sigma^*) \and (a \in \Sigma) \Rightarrow w \circ a \in \Sigma^*

Die positive Hülle \Sigma^+ eines Alphabets \Sigma ist definiert als die kleenesche Hülle dieses Alphabets ohne das leere Wort:

\Sigma^+ := \Sigma^* \setminus \{ \varepsilon \}

Ausgehend von der kleeneschen Hülle lassen sich Teilmengen der Wörter mit fester Länge n definieren.

\Sigma^n :=\{w \mid w\in\Sigma^* \land \left|w\right|=n\}

Alternativ kann \Sigma^n als das n-fache kartesische Produkt des Alphabets definiert werden, also

\Sigma^n=\prod_{i=0}^n \Sigma = \underbrace{\Sigma \times \dotsb \times \Sigma}_{n\text{-mal}} mit \Sigma^0 = \{ \varepsilon \}.

Dann gilt:

\Sigma^*=\bigcup_{i \in \mathbb N_0} \Sigma^i und
\Sigma^+=\bigcup_{i \in \mathbb N} \Sigma^i

Hüllenoperator für Sprachen[Bearbeiten]

Die kleenesche Hülle L^* einer Sprache L ist die Vereinigung all ihrer Potenzsprachen (wiederholte Konkatenation der Sprachen):

L^* := \bigcup_{i\in\mathbb N_0} L^i

Dabei gilt L^0=\{\varepsilon\} und L^{n+1}=L^n\circ L.

Die positive Hülle L^+ einer Sprache L ist ähnlich definiert, sie ist die Vereinigung aller Potenzen von L größer gleich 1:

L^+ := \bigcup_{i\in\mathbb N} L^i

Beispiele[Bearbeiten]

Alphabete[Bearbeiten]

Die kleenesche Hülle des Alphabets \Sigma=\{a\} enthält das leere Wort \varepsilon, das Wort \varepsilon\circ a=a und daher auch das Wort a\circ a =aa und so weiter. Damit ist \Sigma^*=\{\varepsilon,a,aa,\dotsc\}.

Für das Alphabet \Sigma=\{a,b\} gilt \Sigma^2=\{aa, ab, ba, bb\}, \Sigma^3=\{aaa,aab,aba,abb,baa,bab,bba,bbb\} und so weiter. Damit ist \Sigma^*=\{\varepsilon,a,b,aa,ab,ba,bb,aaa,aab,aba,\dotsc\}.

Sprachen[Bearbeiten]

Die kleenesche Hülle der Sprache L=\{aa, bb\} ist die Menge aller Wörter, die sich aus aa und bb zusammensetzen, sowie dem leeren Wort:

L^* = \{\varepsilon, aa, bb, aaaa, aabb, bbbb, bbaa, bbaabb, aabbaa,\dotsc\}

Die positive Hülle ist entsprechend:

L^+ = \{aa, bb, aaaa, aabb, bbbb, bbaa, bbaabb, aabbaa,\dotsc\}

Die kleenesche Hülle der leeren Sprache und der Sprache des leeren Wortes enthält nur das leere Wort:

\{\}^* = \{\varepsilon\}^* = \{\varepsilon\}

Die positive Hülle der leeren Sprache ist leer, die der Sprache des leeren Wortes enthält nur das leere Wort:

\{\}^+ = \{\}
\{\varepsilon\}^+ = \{\varepsilon\}

Merkmale[Bearbeiten]

  • Die kleenesche Hülle und die positive Hülle (falls letztere das leere Wort enthält) sind jeweils die Trägermenge des Monoids mit der Konkatenation von Wörtern als Operator und dem leeren Wort \varepsilon als neutralem Element. Die kleenesche Hülle sowie die positive Hülle sind damit abgeschlossen gegen die Konkatenation.
  • Die kleenesche und die positive Hülle sind für alle Sprachen, die mindestens ein nicht-leeres Wort enthalten, abzählbar unendlich:
L\notin \{\{\}, \{\varepsilon\}\} \Rightarrow |L^*| = |\mathbb{N}|
L\notin \{\{\}, \{\varepsilon\}\} \Rightarrow |L^+| = |\mathbb{N}|
  • Wenn eine Sprache L das leere Wort enthält, sind die kleenesche und die positive Hülle von L identisch; die Umkehrung gilt ebenfalls:
\varepsilon \in L \Leftrightarrow L^* = L^+

Literatur[Bearbeiten]

  • John E. Hopcroft, Jeffrey D. Ullman: Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie. 3. korrigierte Auflage. Addison Wesley, Bonn u. a. 1994, ISBN 3-89319-744-3.
  •  Katrin Erk, Lutz Priese: Theoretische Informatik. Eine umfassende Einführung. 2. erweiterte Auflage. Springer-Verlag, Berlin u. a. 2002, ISBN 3-540-42624-8, S. 27–29.

Einzelnachweise[Bearbeiten]