logo

Moore gép

A Moore-gép egy véges állapotú gép, amelyben a következő állapotot az aktuális állapot és az aktuális bemeneti szimbólum határozza meg. A kimeneti szimbólum egy adott időpontban csak a gép aktuális állapotától függ. A Moore-gép 6 sorral írható le (Q, q0, ∑, O, δ, λ), ahol,

 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 

1. példa:

A Moore gép állapotdiagramja a következő

Moore gép

A Moore Machine átmeneti táblázata a következő:

különbség róka és farkas között
Moore gép

A fenti Moore-gépben a kimenetet minden bemeneti állapot / jellel elválasztva ábrázolja. A Moore gép kimeneti hossza 1-gyel nagyobb, mint a bemenet.

Bemenet: 010

Átmenet: δ (q0,0) => δ(q1,1) => δ(q1,0) => q2

Kimenet: 1110 (1 a q0-hoz, 1 a q1-hez, ismét 1 a q1-hez, 0 a q2-hez)

2. példa:

Tervezz meg egy Moore-gépet, amely egy adott bináris szám 1-es komplementerét generálja.

Megoldás: Egy adott bináris szám 1-es komplementerének generálásához az egyszerű logika az, hogy ha a bemenet 0, akkor a kimenet 1 lesz, és ha a bemenet 1, akkor a kimenet 0. Ez azt jelenti, hogy három állapot van. Az egyik állapot a kezdő állapot. A második állapot arra szolgál, hogy 0-kat vegyen bemenetként, és a kimenetet 1-ként állítsa elő. A harmadik állapot az 1-esek bemenetének és a kimenetnek a 0-nak a létrehozására szolgál.

Ezért a Moore-gép lesz,

Moore gép

Vegyünk például egy bináris számot, 1011-et

Bemenet 1 0 1 1
Állapot q0 q2 q1 q2 q2
Kimenet 0 0 1 0 0

Így 00100-at kapunk 1011 1-es komplementereként, figyelmen kívül hagyhatjuk a kezdeti 0-t, és a kapott kimenet a 0100, ami 1011-es 1-es komplementere. A tranzakciós tábla a következő:

Moore gép

Így Moore-gép M = (Q, q0, ∑, O, δ, λ); ahol Q = {q0, q1, q2}, ∑ = {0, 1}, O = {0, 1}. az átmeneti táblázat a δ és λ függvényeket mutatja.

string java egész számra

3. példa:

Tervezzen meg egy Moore-gépet egy bináris bemeneti sorozathoz úgy, hogy ha van egy 101-es részkarakterlánca, akkor a gép kimenete A, ha a bemenetnek 110-es részkarakterlánca van, akkor B-t, ellenkező esetben C-t adjon ki.

Megoldás: Egy ilyen gép tervezésénél két feltételt ellenőrizünk, ezek a 101 és a 110. Ha 101-et kapunk, akkor a kimenet A lesz, és ha felismerjük a 110-et, akkor a kimenet B lesz. Egyéb karakterláncok esetén a kimenet C.

A részdiagram a következő lesz:

Moore gép

Most minden állapothoz beillesztjük a 0 és 1 lehetőségét. Így a Moore-gép a következővé válik:

dateformat.format
Moore gép

4. példa:

Készítsen egy Moore-gépet, amely meghatározza, hogy egy bemeneti karakterlánc páros vagy páratlan számú 1-et tartalmaz-e. A gépnek 1-et kell adnia kimenetként, ha páros számú 1 van a sztringben, egyébként pedig 0-t.

Megoldás:

A Moore gép a következő lesz:

Moore gép

Ez a szükséges Moore gép. Ebben a gépben a q1 állapot páratlan számú 1-est, a q0 állapot pedig páros számú 1-et fogad el. A nullák számára nincs korlátozás. Ezért 0 bemenet esetén az önhurok mindkét állapotra alkalmazható.

5. példa:

Tervezzen egy Moore-gépet {0, 1} bemeneti ábécével és {Y, N} kimeneti ábécével, amely Y-t állít elő kimenetként, ha a bemeneti sorozat 1010-et tartalmaz részkarakterláncként, ellenkező esetben N-t állít elő kimenetként.

Megoldás:

A Moore gép a következő lesz:

Moore gép