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ő
A Moore Machine átmeneti táblázata a következő:
különbség róka és farkas között
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,
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ő:
Í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:
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
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:
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: