Die Moore-Maschine ist eine endliche Zustandsmaschine, bei der der nächste Zustand durch den aktuellen Zustand und das aktuelle Eingabesymbol bestimmt wird. Das Ausgabesymbol zu einem bestimmten Zeitpunkt hängt nur vom aktuellen Zustand der Maschine ab. Die Moore-Maschine kann durch 6 Tupel (Q, q0, ∑, O, δ, λ) beschrieben werden, wobei
Q: finite set of states q0: initial state of machine ∑: finite set of input symbols O: output alphabet δ: transition function where Q × ∑ → Q λ: output function where Q → O
Beispiel 1:
Das Zustandsdiagramm für Moore Machine ist
Die Übergangstabelle für Moore Machine lautet:
Konvertieren eines Strings in JSON in Java
In der obigen Moore-Maschine wird die Ausgabe dargestellt, wobei jeder Eingabezustand durch / getrennt ist. Die Ausgabelänge einer Moore-Maschine ist um 1 größer als die Eingabelänge.
Eingang: 010
Übergang: δ (q0,0) => δ(q1,1) => δ(q1,0) => q2
Ausgabe: 1110(1 für q0, 1 für q1, wieder 1 für q1, 0 für q2)
Beispiel 2:
Entwerfen Sie eine Moore-Maschine, um das 1er-Komplement einer gegebenen Binärzahl zu erzeugen.
Lösung: Um das 1er-Komplement einer gegebenen Binärzahl zu erzeugen, lautet die einfache Logik: Wenn die Eingabe 0 ist, ist die Ausgabe 1, und wenn die Eingabe 1 ist, ist die Ausgabe 0. Das bedeutet, dass es drei Zustände gibt. Ein Zustand ist der Startzustand. Der zweite Zustand dient dazu, Nullen als Eingabe zu verwenden und eine Ausgabe als 1 zu erzeugen. Der dritte Zustand dient dazu, Einsen als Eingabe zu verwenden und eine Ausgabe als 0 zu erzeugen.
Daher wird die Moore-Maschine sein:
Nehmen Sie dann zum Beispiel eine Binärzahl 1011
Eingang | 1 | 0 | 1 | 1 | |
Zustand | q0 | q2 | q1 | q2 | q2 |
Ausgabe | 0 | 0 | 1 | 0 | 0 |
Somit erhalten wir 00100 als 1er-Komplement von 1011, wir können die anfängliche 0 vernachlässigen und die Ausgabe, die wir erhalten, ist 0100, was das 1er-Komplement von 1011 ist. Die Transaktionstabelle sieht wie folgt aus:
Teilzeichenfolge Java
Somit ist die Moore-Maschine M = (Q, q0, ∑, O, δ, λ); wobei Q = {q0, q1, q2}, ∑ = {0, 1}, O = {0, 1}. Die Übergangstabelle zeigt die δ- und λ-Funktionen.
Beispiel 3:
Entwerfen Sie eine Moore-Maschine für eine binäre Eingabesequenz so, dass die Maschine A ausgibt, wenn sie eine Teilzeichenfolge 101 hat. Wenn die Eingabe Teilzeichenfolge 110 hat, gibt sie B aus, andernfalls gibt sie C aus.
Lösung: Um eine solche Maschine zu entwerfen, überprüfen wir zwei Bedingungen, und zwar 101 und 110. Wenn wir 101 erhalten, ist die Ausgabe A, und wenn wir 110 erkennen, ist die Ausgabe B. Bei anderen Zeichenfolgen lautet die Ausgabe C.
Das Teildiagramm wird sein:
Jetzt werden wir die Möglichkeiten von Nullen und Einsen für jeden Zustand einfügen. Somit wird die Moore-Maschine:
Beispiel 4:
Konstruieren Sie eine Moore-Maschine, die bestimmt, ob eine Eingabezeichenfolge eine gerade oder ungerade Anzahl von Einsen enthält. Die Maschine sollte 1 als Ausgabe ausgeben, wenn die Zeichenfolge eine gerade Anzahl von Einsen enthält, andernfalls 0.
Lösung:
Die Moore-Maschine wird sein:
Dies ist die erforderliche Moore-Maschine. In dieser Maschine akzeptiert Zustand q1 eine ungerade Anzahl von Einsen und Zustand q0 akzeptiert eine gerade Anzahl von Einsen. Es gibt keine Beschränkung hinsichtlich der Anzahl der Nullen. Daher kann für den Eingang 0 eine Selbstschleife auf beide Zustände angewendet werden.
Beispiel 5:
Entwerfen Sie eine Moore-Maschine mit dem Eingabealphabet {0, 1} und dem Ausgabealphabet {Y, N}, die Y als Ausgabe erzeugt, wenn die Eingabesequenz 1010 als Teilzeichenfolge enthält, andernfalls N als Ausgabe.
Lösung:
sts herunterladen
Die Moore-Maschine wird sein: