Zum Inhalt springen

„Kleenesche und positive Hülle“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
K fix typo
 
(139 dazwischenliegende Versionen von 78 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Die '''kleenesche Hülle''' (nach [[Stephen Cole Kleene]]) bzw. der '''endliche Abschluss''' einer [[Formale Sprache|formalen Sprache]] <tt>L</tt> ist die Menge aller endlichen Wörter ([[Zeichenkette]]n), die sich durch beliebige [[Konkatenation (Listen)|Konkatenation]] von Wörtern der Sprache <tt>L</tt> ergeben, inklusive des leeren Wortes &epsilon;. Sie wird mit dem Operator '''„*“''' bezeichnet (dem '''Kleene-Stern'''), die Kleenesche Hülle von <math>L</math> wird also <math>L^*</math> geschrieben. Mathematisch gesprochen ist sie der [[Monoid]] aus den Wörtern der Sprache L, dem Operator der Konkatenation, und dem neutralen Element &epsilon; (leeres Wort). Sie bildet also die ''[[transitive Hülle]]'' der Wort-Menge L über der Konkatenation.
Die '''kleenesche Hülle''' (auch '''endlicher Abschluss''', '''Kleene-*-Abschluss''', '''Verkettungshülle''' oder '''Sternhülle''' genannt) eines [[Alphabet (Informatik)|Alphabets]] <math>\Sigma</math> oder einer [[Formale Sprache|formalen Sprache]] <math>L</math> ist die [[Menge (Mathematik)|Menge]] aller [[Wort (Theoretische Informatik)|Wörter]], die durch beliebige [[Konkatenation (Wort)|Konkatenation]] (Verknüpfung) von Symbolen des Alphabets <math>\Sigma</math> bzw. von Wörtern der Sprache <math>L</math> gebildet werden können, wobei das [[Leeres Wort|leere Wort]] <math>\varepsilon</math> 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 <math>\Sigma</math> oder einer formalen Sprache <math>L</math> die Menge aller Wörter, die aus den Symbolen von <math>\Sigma</math> beziehungsweise aus Wörtern von <math>L</math> 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''' „<math>^*</math>“. So ist die Darstellung der kleeneschen Hülle eines Alphabets <math>\Sigma</math> gleich <math>\Sigma^*</math> und einer Sprache <math>L</math> gleich <math>L^*</math>. Demgegenüber ist der Operator der positiven Hülle das [[Pluszeichen]] „<math>^+</math>“, sodass die positive Hülle eines Alphabets <math>\Sigma</math> mit <math>\Sigma^+</math> und einer Sprache <math>L</math> mit <math>L^+</math> dargestellt wird.
Die Kleenesche Hülle wird in der [[Automatentheorie]] verwendet, um Aussagen über die Eigenschaften von formalen Sprachen zu machen. Wichtig ist dabei vor allem, welche Sprach-Klassen unter Anwendung des Kleene-Sterns abgeschlossen sind. Siehe [[Abgeschlossenheit]] bzw. [[Abgeschlossene Menge]].


In Anlehnung an den Kleene-*-Operator über Sprachen wird der *-Operator bei [[Regulärer Ausdruck|regulären Ausdrücken]] ebenfalls Kleene-*-Operator genannt. Die Anzahl verschachtelter Kleene-*-Operatoren bestimmt die [[Sternhöhe (Informatik)|Sternhöhe]] eines regulären Ausdrucks.
==Definition==
Die Kleenesche Hülle bildet sich aus der Vereinigung aller [[Potenzsprache]]n der Sprache <tt>L</tt>, also
:<math>L^* = \bigcup_{i=0}^{\infty} L^i</math>


== Definition ==
dabei ist <math>L^i</math> die i-te Potenzsprache, und es gilt
=== Hüllenoperator für Alphabete ===
:<math>L^0 = \{\epsilon\}</math>, <math>L^1 = L</math>, <math>L^2 = L \times L</math>, usw.
Die kleenesche Hülle <math>\Sigma^*</math> eines Alphabets <math>\Sigma</math> ist eine Sprache, die alle Wörter über dem Alphabet enthält. Sie lässt sich mit Hilfe der [[Strukturelle Induktion|strukturellen Induktion]] definieren. Im Induktionsanfang definiert man zunächst, dass das leere Wort <math>\varepsilon</math> in der kleeneschen Hülle enthalten ist, und im Induktionsschritt wird definiert, dass für jedes Wort <math>w</math>, das Element der kleeneschen Hülle ist, auch die Konkatenationen <math>w \circ a</math> für alle Symbole <math>a \in \Sigma</math> Elemente der Kleeneschen Hülle sind:


* ''Induktionsanfang:'' <math>\varepsilon \in \Sigma^*</math>
Die Kleenesche Hülle (und auch die ''positive Hülle'') ist für alle Sprachen, die mindestens ein nicht-leeres Wort enthalten, unendlich groß:
:<math>L\notin \{\{\}, \{\epsilon\}\} \Rightarrow |L^*| = \infty</math>
* ''Induktionsschritt:'' <math>(w \in \Sigma^*) \land (a \in \Sigma) \Rightarrow w \circ a \in \Sigma^*</math>
:<math>L\in \{\{\}, \{\epsilon\}\} \Rightarrow L^* = \{\epsilon\} \Rightarrow |L^*| = 1</math>


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


:<math>\Sigma^+ := \Sigma^* \setminus \{ \varepsilon \}</math>
Die '''positive Hülle''' ist fast genau so definiert, nur ohne <math>L^0</math>: sie enthält deshalb das leere Wort &epsilon; nicht, wenn L es nicht bereits enthält:
:<math>L^+ = \bigcup_{i=1}^{\infty} L^i</math>


Ausgehend von der kleeneschen Hülle lassen sich Teilmengen der Wörter mit fester Länge <math>n</math> definieren.
Die positive Hülle der leeren Sprache ist leer, die der Sprache des leeren Wortes enthält nur das leere Wort:
:<math>\{\}^+ = \{\}</math>
:<math>\Sigma^n :=\{w \mid w\in\Sigma^* \land \left|w\right|=n\}</math>
Alternativ kann <math>\Sigma^n</math> als das <math>n</math>-fache [[Kartesisches Produkt|kartesische Produkt]] des Alphabets definiert werden, also
:<math>\{\epsilon\}^+ = \{\epsilon\}</math>
:<math>\Sigma^n=\prod_{i=1}^n \Sigma = \underbrace{\Sigma \times \dotsb \times \Sigma}_{n\text{-mal}}</math> mit <math>\Sigma^0 = \{ \varepsilon \}</math>.


Dann gilt:
==Beispiel==
:<math>\Sigma^*=\bigcup_{i \in \mathbb N_0} \Sigma^i</math> und
Für die Sprache L={aa, bb} ist die Kleenesche Hülle die Menge aller Wörter, die sich aus „aa“ und „bb“ zusammensetzen lassen, und das leere Wort:
:<math>\Sigma^+=\bigcup_{i \in \mathbb N} \Sigma^i</math>


=== Hüllenoperator für Sprachen ===
<math>L^*= \{\epsilon, aa, bb, aaaa, aabb, bbbb, bbaa, aaaaaa,...\}</math>
Die kleenesche Hülle <math>L^*</math> einer Sprache <math>L</math> ist die Vereinigung all ihrer [[Formale Sprache#Potenz|Potenzsprachen]] (wiederholte Konkatenation der Sprachen):
:<math>L^* := \bigcup_{i\in\mathbb N_0} L^i</math>
Dabei gilt <math>L^0=\{\varepsilon\}</math> und <math>L^{n+1}=L^n\circ L</math>.


Die positive Hülle <math>L^+</math> einer Sprache <math>L</math> ist ähnlich definiert, sie ist die Vereinigung aller Potenzen von <math>L</math> größer gleich 1:
die positive Hülle ist entsprechend:
:<math>L^+ := \bigcup_{i\in\mathbb N} L^i</math>

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

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

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

:<math>L^* = \{\varepsilon, aa, bb, aaaa, aabb, bbbb, bbaa, bbaabb, aabbaa,\dotsc\}</math>

Die positive Hülle ist entsprechend:

:<math>L^+ = \{aa, bb, aaaa, aabb, bbbb, bbaa, bbaabb, aabbaa,\dotsc\}</math>

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

:<math>\{\}^* = \{\varepsilon\}^* = \{\varepsilon\}</math>

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

:<math>\{\}^+ = \{\}</math>
:<math>\{\varepsilon\}^+ = \{\varepsilon\}</math>


== Merkmale ==
<math>L^+= \{aa, bb, aaaa, aabb, bbbb, bbaa, aaaaaa,...\}</math>
* Die kleenesche Hülle und die positive Hülle (falls letztere das leere Wort enthält) sind jeweils die [[Trägermenge]] des [[Monoid]]s mit der Konkatenation von Wörtern als Operator und dem leeren Wort <math>\varepsilon</math> als [[Neutrales Element|neutralem Element]]. So bildet die kleenesche Hülle den freien Monoid über ein Alphabet. Die kleenesche Hülle sowie die positive Hülle sind damit ebenfalls [[Abgeschlossenheit (algebraische Struktur)|abgeschlossen]] gegen die Konkatenation.


* Die kleenesche und die positive Hülle sind für alle Sprachen, die mindestens ein nicht-leeres Wort enthalten, [[Abzählbarkeit|abzählbar unendlich]]:
Wenn die Sprache L aber selbst das leere Wort enhält, sind der endliche und der positive Abschluss gleich: Für L={&epsilon;,aa,bb} gilt
:<math>L\notin \{\{\}, \{\varepsilon\}\} \Rightarrow |L^*| = |\mathbb{N}|</math>
:<math>L\notin \{\{\}, \{\varepsilon\}\} \Rightarrow |L^+| = |\mathbb{N}|</math>


* Wenn eine Sprache <math>L</math> das leere Wort enthält, sind die kleenesche und die positive Hülle von <math>L</math> identisch; die Umkehrung gilt ebenfalls:
<math>L^+=L^*= \{\epsilon,aa,bb,aaaa,aabb,bbbb,bbaa,aaaaaa,...\}</math>


:<math>\varepsilon \in L \Leftrightarrow L^* = L^+</math>
==Siehe auch==
* [[Formale Grammatik]]
* [[Regulärer Ausdruck]]
* [[Automatentheorie]]


== Verallgemeinerungen ==
==Literatur==
Die abzählbar ''unendlichen'' Folgen von Zeichen aus dem Alphabet <math>\Sigma</math> werden mit <math>\Sigma^\omega</math> bezeichnet, siehe: [[Ordinalzahl#Die natürlichen Zahlen als geordnete Mengen|<math>\omega</math>]] = [[Kardinalzahl (Mathematik)#Schreibweise|<math>\aleph_0</math>]].<br />
*''Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie'', John E. Hopcroft und Jeffry D. Ullman; Addison Wesley, Bonn 1994, ISBN 3-89319-744-3
<math>\Sigma^\infty</math> bezeichnet die gesamte Menge <math>\Sigma^\ast \cup \Sigma^\omega</math> der endlichen Sequenzen und unendlichen Folgen von Zeichen aus <math>\Sigma</math>&nbsp;.


== Literatur ==
[[Kategorie:Theoretische Informatik]]
* [[John E. Hopcroft]], [[Jeffrey Ullman|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.
* {{Literatur|Autor=Katrin Erk, Lutz Priese|Titel=Theoretische Informatik. Eine umfassende Einführung|Verlag=Springer-Verlag|Ort=Berlin u. a.|Jahr=2002|Auflage=2. erweiterte|Seiten=27–29|ISBN=3-540-42624-8}}


[[Kategorie:Theorie formaler Sprachen]]
[[en:Kleene star]]
[[es:Clausura de Kleene]]
[[fr:Fermeture de Kleene]]
[[it:Star di Kleene]]

Aktuelle Version vom 31. März 2021, 14:56 Uhr

Die kleenesche Hülle (auch endlicher Abschluss, Kleene-*-Abschluss, Verkettungshülle oder Sternhülle genannt) eines Alphabets oder einer formalen Sprache ist die Menge aller Wörter, die durch beliebige Konkatenation (Verknüpfung) von Symbolen des Alphabets bzw. von Wörtern der Sprache gebildet werden können, wobei das leere Wort 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 oder einer formalen Sprache die Menge aller Wörter, die aus den Symbolen von beziehungsweise aus Wörtern von 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 gleich und einer Sprache gleich . Demgegenüber ist der Operator der positiven Hülle das Pluszeichen“, sodass die positive Hülle eines Alphabets mit und einer Sprache mit 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.

Hüllenoperator für Alphabete

[Bearbeiten | Quelltext bearbeiten]

Die kleenesche Hülle eines Alphabets 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 in der kleeneschen Hülle enthalten ist, und im Induktionsschritt wird definiert, dass für jedes Wort , das Element der kleeneschen Hülle ist, auch die Konkatenationen für alle Symbole Elemente der Kleeneschen Hülle sind:

  • Induktionsanfang:
  • Induktionsschritt:

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

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

Alternativ kann als das -fache kartesische Produkt des Alphabets definiert werden, also

mit .

Dann gilt:

und

Hüllenoperator für Sprachen

[Bearbeiten | Quelltext bearbeiten]

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

Dabei gilt und .

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

Die kleenesche Hülle des Alphabets enthält das leere Wort , das Wort und daher auch das Wort und so weiter. Damit ist

.

Für das Alphabet gilt , und so weiter. Damit ist

.

Die kleenesche Hülle der Sprache ist die Menge aller Wörter, die sich aus und zusammensetzen, sowie dem leeren Wort:

Die positive Hülle ist entsprechend:

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

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

  • 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 als neutralem Element. So bildet die kleenesche Hülle den freien Monoid über ein Alphabet. Die kleenesche Hülle sowie die positive Hülle sind damit ebenfalls 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:
  • Wenn eine Sprache das leere Wort enthält, sind die kleenesche und die positive Hülle von identisch; die Umkehrung gilt ebenfalls:

Verallgemeinerungen

[Bearbeiten | Quelltext bearbeiten]

Die abzählbar unendlichen Folgen von Zeichen aus dem Alphabet werden mit bezeichnet, siehe: = .
bezeichnet die gesamte Menge der endlichen Sequenzen und unendlichen Folgen von Zeichen aus  .

  • 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.