<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Berry-Sethi-Verfahren</id>
	<title>Berry-Sethi-Verfahren - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Berry-Sethi-Verfahren"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Berry-Sethi-Verfahren&amp;action=history"/>
	<updated>2026-06-27T02:04:15Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Berry-Sethi-Verfahren&amp;diff=587590&amp;oldid=prev</id>
		<title>imported&gt;PlusMinuscule: Siehe auch: Thompson-Konstruktion  ergänzt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Berry-Sethi-Verfahren&amp;diff=587590&amp;oldid=prev"/>
		<updated>2025-06-26T11:56:26Z</updated>

		<summary type="html">&lt;p&gt;Siehe auch: Thompson-Konstruktion  ergänzt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Beim &amp;#039;&amp;#039;&amp;#039;Berry-Sethi-Verfahren&amp;#039;&amp;#039;&amp;#039; (nach [[Gérard Berry]] und [[Ravi Sethi]]; auch &amp;#039;&amp;#039;&amp;#039;Gluschkow-Konstruktion&amp;#039;&amp;#039;&amp;#039;, nach [[Wiktor Michailowitsch Gluschkow]]) handelt es sich um einen Algorithmus zur Überführung eines [[regulärer Ausdruck|regulären Ausdrucks]] in einen [[nichtdeterministischer endlicher Automat|nichtdeterministischen endlichen Automaten]].&lt;br /&gt;
&lt;br /&gt;
Zunächst wird dabei der reguläre Ausdruck in eine [[Baum (Graphentheorie)|Baumstruktur]] überführt. Die Knoten entsprechen den Regeln des regulären Ausdrucks (Konkatenation &amp;lt;math&amp;gt;\cdot&amp;lt;/math&amp;gt;, Transitiver Abschluss &amp;lt;math&amp;gt;^*&amp;lt;/math&amp;gt; und Vereinigung &amp;lt;math&amp;gt;\mid&amp;lt;/math&amp;gt;).&lt;br /&gt;
Die Blätter repräsentieren die Elemente des Eingabealphabets im regulären Ausdruck, also genau die Zeichen, aus denen sich gültige Wörter zusammensetzen können. Alle weiteren Berechnungen finden mit Hilfe dieser Darstellungsform statt.&lt;br /&gt;
&lt;br /&gt;
Stellt man sich nun einen Punkt vor, der beginnend bei der Wurzel des Syntaxbaums um den Baum &amp;#039;&amp;#039;herumwandert&amp;#039;&amp;#039;, so können sukzessive alle Wörter des regulären Ausdrucks erzeugt werden. Mit Hilfe dieses Punktes wird nun der endliche Automat konstruiert. Die Zeitkomplexität des Verfahrens ist &amp;lt;math&amp;gt;\mathcal O (n^2)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
&lt;br /&gt;
# Bestimme empty[r] für alle Knoten r des Baumes. Dies ist mit einer post-order DFS möglich (DFS: Depth-First Search, [[Tiefensuche]]).&lt;br /&gt;
# Bestimme first[r] für alle Knoten r des Baumes. Dies ist mit einer post-order DFS möglich.&lt;br /&gt;
# Bestimme next[r] für alle Knoten r des Baumes. Dies ist mit einer pre-order DFS möglich.&lt;br /&gt;
# Bestimme last[r] für alle Knoten r des Baumes. Dies ist mit einer post-order DFS möglich.&lt;br /&gt;
# Integration:&lt;br /&gt;
## Die Zustände des Automaten sind: &amp;lt;math&amp;gt;\{ \bullet e \} \cup \{i \bullet \mid \mbox{i ist Blatt}\}&amp;lt;/math&amp;gt;&lt;br /&gt;
## Der Startzustand des Automaten ist: &amp;lt;math&amp;gt; \bullet e &amp;lt;/math&amp;gt;&lt;br /&gt;
## Die Endzustände des Automaten sind:&lt;br /&gt;
###&amp;lt;math&amp;gt;last[e]&amp;lt;/math&amp;gt;, falls &amp;lt;math&amp;gt;empty[e] = false&amp;lt;/math&amp;gt; und&lt;br /&gt;
###&amp;lt;math&amp;gt;\{\bullet e\} \cup last[e]&amp;lt;/math&amp;gt;, falls &amp;lt;math&amp;gt;empty[e] = true&amp;lt;/math&amp;gt;&lt;br /&gt;
## Die Übergänge des Automaten sind:&lt;br /&gt;
###&amp;lt;math&amp;gt;( \bullet e, a, i\bullet)&amp;lt;/math&amp;gt;, falls &amp;lt;math&amp;gt;i \in first[e]&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; beschriftet ist, und&lt;br /&gt;
###&amp;lt;math&amp;gt;( i \bullet, a, i&amp;#039;\bullet)&amp;lt;/math&amp;gt;, falls &amp;lt;math&amp;gt;i&amp;#039; \in next[i]&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;i&amp;#039;&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; beschriftet ist.&lt;br /&gt;
&lt;br /&gt;
Das Symbol &amp;lt;math&amp;gt;\bullet&amp;lt;/math&amp;gt; markiert hierbei den Punkt, der um den Baum herumwandert. Der resultierende endliche Automat ist im Allgemeinen nichtdeterministisch und kann daher noch durch die [[Potenzmengenkonstruktion]] deterministisch gemacht werden.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[Thompson-Konstruktion]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Gérard Berry, Ravi Sethi: &amp;#039;&amp;#039;From regular expressions to deterministic automata.&amp;#039;&amp;#039; In: &amp;#039;&amp;#039;Theoretical Computer Science.&amp;#039;&amp;#039; 48, 1986, {{ISSN|0304-3975}}, S. 117–126.&lt;br /&gt;
* Viktor M. Glushkov: &amp;#039;&amp;#039;The abstract theory of automata.&amp;#039;&amp;#039; In: &amp;#039;&amp;#039;Russian Mathematical Surveys.&amp;#039;&amp;#039; 16, 1961, {{ISSN|0036-0279}}, S. 1–53.&lt;br /&gt;
* [[Anne Brüggemann-Klein]]: &amp;#039;&amp;#039;Regular expressions into finite automata&amp;#039;&amp;#039;. In: &amp;#039;&amp;#039;Theoretical Computer Science&amp;#039;&amp;#039; 120, 1993, S. 197–213. {{DOI|10.1016/0304-3975(93)90287-4}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Automatentheorie]]&lt;br /&gt;
[[Kategorie:Compilerbau]]&lt;br /&gt;
[[Kategorie:Algorithmus]]&lt;/div&gt;</summary>
		<author><name>imported&gt;PlusMinuscule</name></author>
	</entry>
</feed>