logo

Moore maskin

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

Moore maskin

Övergångstabell för Moore Machine är:

ändra lägg till kolumn orakel
Moore maskin

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,

Moore maskin

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:

Moore maskin

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:

Moore maskin

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
Moore maskin

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:

Moore maskin

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:

Moore maskin