Transduktor (Informatik)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ein Transduktor ist in der theoretischen Informatik ein spezieller endlicher Automat. Er zeichnet sich dadurch aus, dass er im Gegensatz zu einem Akzeptor eine Ausgabe erzeugt. Er überführt (übersetzt) eine Quellsprache in eine Zielsprache. Da die formalen Eigenschaften dieser Sprachen variieren können, unterscheidet man verschiedene Untertypen, die im Folgenden näher beschrieben werden.

Endlicher Transduktor[Bearbeiten]

Endliche Transduktoren sind endliche Automaten, die im Unterschied zu Akzeptoren zusätzlich eine Ausgabefunktion besitzen. Diese Funktion ist in der klassischen Definition mit den Übergängen und den Endzuständen des Automaten verknüpft. Abbildung 1 zeigt einen auf dem Alphabet \{a,b,c,d,e,x\} basierenden Transduktor, der jedes Vorkommen von ab in einer Eingabezeichenkette durch ein einzelnes x in der Ausgabe ersetzt. Für die Eingabe acabd beispielsweise wird acxdausgegeben. Im Zustand 1 kann der Transduktor beispielsweise ein a lesen, dafür ein x ausgeben und in den Zustand 2 übergehen. Zustand 2 ist kein Endzustand, da ja nun ein b gelesen werden muss. Da im Beispiel das zu Ersetzende und das Ersetzte unterschiedlich lang sind, wird beim Übergang von 2 nach 0 beim Lesen von b das leere Wort \varepsilon ausgegeben.

Abb. 1: Transduktor, der ab durch x ersetzt
Abb. 2: Nichtdeterministischer Transduktor
Abb. 3: Deterministische Version des Transduktors aus Abb. 2
Abb. 4: Nichtdeterminisierbarer Transduktor

Mathematische Definition[Bearbeiten]

Ein Transduktor ist ein 7-Tupel (Q, \Sigma, \Gamma, q_0, \delta,F, \omega) , wobei:

  • Q ist eine endliche Menge von Zuständen,
  • \Sigma ist das Eingabealphabet (eine endliche, nicht-leere Menge von Symbolen),
  • \Gamma ist das Ausgabealphabet (eine endliche, nicht-leere Menge von Symbolen),
  • q_0\in Q ist der Anfangszustand und ein Element aus Q,
  • \delta ist die Zustandsübergangsfunktion \delta: Q \times \Sigma \cup \{\varepsilon\} \to 2^Q,
  • F ist eine endliche Menge von Endzuständen (F \subseteq Q),
  • \omega ist die Ausgabefunktion \omega: Q \times \Sigma \cup \{\varepsilon\} \times Q \to \Gamma^*.

Die Übergangsfunktion \delta ist diejenige eines nichtdeterministischen endlichen Transduktors, d. h. der Transduktor kann beim Lesen eines Symbols a im Zustand q prinzipiell in mehrere Folgezustände übergehen. Ist der Transduktor hingegen deterministisch, lässt sich die Übergangsfunktion folgendermaßen definieren:

\delta: Q \times \Sigma \to Q.

Die Ausgabefunktion vereinfacht sich im nichtdeterministischen Fall zu \omega: Q \times \Sigma \to \Gamma^*.

Oft werden Übergangs- und Ausgabefunktion auch zu einer Übergangsrelation \Delta mit \Delta \subseteq Q \times (\Sigma \cup \{\varepsilon\}) \times \Gamma^* \times Q zusammengefasst.

Algebraische Operationen[Bearbeiten]

Die Menge der endlichen Transduktoren ist abgeschlossen unter folgenden Operationen:

Unter Schnitt sind nur azyklische Transduktoren oder solche, die keine \varepsilon:x bzw. x:\varepsilon-Übergänge besitzen, abgeschlossen.

Nicht abgeschlossen sind Transduktoren unter:

Ferner gibt es einige Optimierungsoperationen für Transduktoren:

  • Entfernung von \varepsilon:\varepsilon-Übergängen
  • Determinisierung des Eingabebands des Transduktors. Abb. 3 zeigt die deterministische Variante des Transduktors aus Abb. 2 (zu beachten ist, dass dieser Transduktor im strengen Sinne durch seine Epsilon-Übergänge nicht deterministisch ist. Vgl. Subsequentielle Transduktoren). Allerdings können nicht alle Transduktoren, noch nicht mal diejenigen, die eine Funktion \Sigma^* \to \Gamma^* realisieren, determinisiert werden. Abb. 4 zeigt einen nicht determinisierbaren Transduktor. Dies unterscheidet endliche Transduktoren von endlichen Automaten und hat Konsequenzen für die Entscheidbarkeit des Äquivalenzproblems (s.u.)
  • Eine Teilklasse der Transduktoren erlaubt äquivalente minimale Varianten.
  • Pushing: Verschieben von Ausgabesymbolen so weit wie möglich in Richtung Startzustand. Durch Pushing in Verbindung mit Determinisierung kann eine eindeutige Normalform hergestellt werden.

Korrespondierende Sprachklasse[Bearbeiten]

Die zu endlichen Transduktoren korrespondierende Sprachklasse umfasst die sog. regulären Relationen. Vgl. auch Formale Sprachen, Chomsky-Hierarchie.

Erweiterungen[Bearbeiten]

p-subsequentielle Transduktoren[Bearbeiten]

Die Überführung eines Transduktors in einen p-subsequentiellen Transduktor wird Determinisierung genannt. Dabei werden die Ausgaben verzögert und durch eine zusätzliche Endausgabefunktion \varphi an den Endzuständen ausgegeben, p entspricht hierbei der Maximalanzahl der Ausgaben. Sollte p = 1 sein, spricht man von einem sequentiellen Transduktor. Ein sequentieller Transduktor, bei dem alle Zustände auch Endzustände sind, heißt auch subsequentiell. Alle azyklischen Transduktoren lassen sich in äquivalente (im Sinne der realisierten String-Funktion) p-subsequentielle Transduktoren überführen. Bei einem zyklischen Transduktor kann die Determinierbarkeit mit Hilfe der „Twins Property“ festgestellt werden.

Mathematische Definition[Bearbeiten]

Ein p-subsequentieller Transduktor ist ein 8-Tupel (Q, \Sigma, \Gamma, q_0, \delta, F, \omega, \varphi), wobei:

  • Q ist eine endliche Menge von Zuständen,
  • \Sigma ist das Eingabealphabet (eine endliche, nicht-leere Menge von Symbolen),
  • \Gamma ist das Ausgabealphabet (eine endliche, nicht-leere Menge von Symbolen),
  • q_0 \in Q ist der Anfangszustand,
  • \delta ist die Zustandsübergangsfunktion \delta: Q \times \Sigma \to Q,
  • F \subseteq Q ist eine endliche Menge von Endzuständen,
  • \omega ist die Ausgabefunktion \omega: Q \times \Sigma \to \Gamma^*,
  • \varphi ist die Endausgabefunktion \varphi: F \to {(\Gamma^*)}^p.

Die Endausgabefunktion \varphi gibt bis zu p verschiedene Strings an den Endzuständen aus, dabei ist p die finite Anzahl der Ambiguitäten eines Transduktors.

Ein Algorithmus zur Determinisierung ist der von Mohri.

Verwendung von Gewichten[Bearbeiten]

Ein gewichteter endlicher Transduktor ist ein Transduktor, der um eine Gewichtsfunktion erweitert wurde, die den Transitionen Werte zuweist. Diese Werte können aus einem beliebigen Halbring \mathbb{K} stammen.

Fasst man wie oben Übergangs- und Ausgabefunktion und dazu die Gewichtsfunktion zu einer Relation zusammen, ist ein gewichteter Transduktor über einem Halbring \mathbb{K} ein 8-Tupel (Q,\Sigma,\Gamma,I,\Delta,F,\lambda,\rho), wobei

  • Q,\Sigma,\Gamma, F wie oben,
  • I\subseteq Q ist eine Menge von Anfangszuständen,
  • \Delta ist die Relation \Delta: Q \times (\Sigma \cup \{\varepsilon\})\times (\Gamma\cup\{\varepsilon\}) \times \mathbb{K}\times Q,
  • \lambda ist die Gewichtsfunktion \lambda: I \to \mathbb{K}, die den Anfangszuständen Gewichte zuweist,
  • \rho ist die Gewichtsfunktion \rho: F \to \mathbb{K}, die den Endzuständen Gewichte zuweist.

Die Gewichte können beispielsweise in der Sprachsynthese dazu verwendet werden, für ein Eingabezeichen verschiedene Aussprachemöglichkeiten anzubieten, die unterschiedlich wahrscheinlich sind. Die Wahrscheinlichkeiten können zum Beispiel durch maschinelles Lernen ermittelt werden.

Anwendungen[Bearbeiten]

Kellertransduktor[Bearbeiten]

Ein Kellertransduktor ist ein LR-Parser zu einer gegebenen kontextfreien Grammatik, also ein Kellerautomat, der eine Ausgabe erzeugt.

Siehe auch[Bearbeiten]