Moore-maskin är en finita tillståndsmaskin där nästa tillstånd avgörs av det aktuella tillståndet och den aktuella inmatningssymbolen. Utgångssymbolen vid en given tidpunkt beror endast på maskinens nuvarande tillstånd. Moore-maskinen kan beskrivas med 6 tuplar (Q, q0, ∑, O, δ, λ) där,
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
Exempel 1:
Tillståndsdiagrammet för Moore Machine är
Övergångstabell för Moore Machine är:
ändra lägg till kolumn orakel
I ovanstående Moore-maskin representeras utdata med varje ingångstillstånd separerat av /. Utmatningslängden för en Moore-maskin är större än inmatningen med 1.
Inmatning: 010
Övergång: δ (q0,0) => δ(q1,1) => δ(q1,0) => q2
Produktion: 1110(1 för q0, 1 för q1, igen 1 för q1, 0 för q2)
Exempel 2:
Designa en Moore-maskin för att generera 1:s komplement till ett givet binärt tal.
Lösning: För att generera 1:s komplement till ett givet binärt tal är den enkla logiken att om ingången är 0 så kommer utgången att vara 1 och om ingången är 1 så blir utgången 0. Det betyder att det finns tre tillstånd. Ett tillstånd är starttillstånd. Det andra tillståndet är för att ta nollor som indata och producerar utdata som 1. Det tredje tillståndet är för att ta ettor som indata och producera utdata som nolla.
java annat om
Därför kommer Moore-maskinen att vara,
Ta till exempel ett binärt nummer 1011 då
Inmatning | 1 | 0 | 1 | 1 | |
stat | q0 | q2 | q1 | q2 | q2 |
Produktion | 0 | 0 | 1 | 0 | 0 |
Således får vi 00100 som 1:s komplement till 1011, vi kan försumma den initiala 0:an och utdata som vi får är 0100 vilket är 1:s komplement till 1011. Transaktionstabellen är som följer:
Således Moore maskin M = (Q, q0, ∑, O, 5, A); där Q = {q0, q1, q2}, ∑ = {0, 1}, O = {0, 1}. övergångstabellen visar funktionerna δ och λ.
Exempel 3:
Designa en Moore-maskin för en binär ingångssekvens så att om den har en delsträng 101 så matar maskinutgången A, om ingången har delsträngen 110 matar den ut B annars matar den ut C.
Lösning: För att konstruera en sådan maskin kommer vi att kontrollera två villkor, och det är 101 och 110. Om vi får 101 blir utdata A, och om vi känner igen 110 blir utdata B. För andra strängar blir utdata C.
Deldiagrammet kommer att vara:
Nu kommer vi att infoga möjligheterna för 0:or och 1:or för varje tillstånd. Således blir Moore-maskinen:
java matte pow
Exempel 4:
Konstruera en Moore-maskin som avgör om en inmatningssträng innehåller ett jämnt eller udda antal 1:or. Maskinen ska ge 1 som utdata om ett jämnt antal 1:or finns i strängen och 0 annars.
Lösning:
Moore-maskinen kommer att vara:
Detta är den nödvändiga Moore-maskinen. I denna maskin accepterar tillstånd q1 ett udda antal ettor och tillstånd q0 accepterar ett jämnt antal ettor. Det finns ingen begränsning på ett antal nollor. För 0-ingång kan alltså självslinga tillämpas på båda tillstånden.
Exempel 5:
Designa en Moore-maskin med inmatningsalfabetet {0, 1} och utgående alfabetet {Y, N} som producerar Y som utdata om inmatningssekvensen innehåller 1010 som en delsträng annars producerar den N som utdata.
Lösning:
Moore-maskinen kommer att vara: