La màquina de Moore és una màquina d'estats finits en la qual el següent estat es decideix per l'estat actual i el símbol d'entrada actual. El símbol de sortida en un moment determinat només depèn de l'estat actual de la màquina. La màquina de Moore es pot descriure per 6 tuples (Q, q0, ∑, O, δ, λ) on,
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
Exemple 1:
El diagrama d'estats de la màquina de Moore és
La taula de transicions per a Moore Machine és:
convertir cadena en char java
A la màquina de Moore anterior, la sortida es representa amb cada estat d'entrada separat per /. La longitud de sortida d'una màquina de Moore és més gran que l'entrada en 1.
Entrada: 010
Transició: δ (q0,0) => δ(q1,1) => δ(q1,0) => q2
Sortida: 1110(1 per q0, 1 per q1, de nou 1 per q1, 0 per q2)
Exemple 2:
Dissenyeu una màquina de Moore per generar el complement 1 d'un nombre binari donat.
Solució: Per generar el complement 1 d'un nombre binari donat, la lògica simple és que si l'entrada és 0, la sortida serà 1 i si l'entrada és 1, la sortida serà 0. Això vol dir que hi ha tres estats. Un estat és l'estat inicial. El segon estat és per prendre 0 com a entrada i produeix una sortida com 1. El tercer estat és per prendre 1 com a entrada i produir sortida com 0.
Per tant, la màquina de Moore serà,
Per exemple, agafeu un nombre binari 1011
funció estàtica en java
Entrada | 1 | 0 | 1 | 1 | |
Estat | q0 | q2 | q1 | q2 | q2 |
Sortida | 0 | 0 | 1 | 0 | 0 |
Així, obtenim 00100 com a complement d'1 de 1011, podem descuidar el 0 inicial i la sortida que obtenim és 0100, que és el complement d'1 de 1011. La taula de transaccions és la següent:
Així la màquina de Moore M = (Q, q0, ∑, O, δ, λ); on Q = {q0, q1, q2}, ∑ = {0, 1}, O = {0, 1}. la taula de transicions mostra les funcions δ i λ.
Exemple 3:
Dissenyeu una màquina de Moore per a una seqüència d'entrada binària de tal manera que si té una subcadena 101, la màquina de sortida A, si l'entrada té una subcadena 110, produeix B en cas contrari surt C.
Solució: Per dissenyar aquesta màquina, comprovarem dues condicions, i aquestes són 101 i 110. Si obtenim 101, la sortida serà A, i si reconeixem 110, la sortida serà B. Per a altres cadenes, la sortida serà C.
El diagrama parcial serà:
Ara inserirem les possibilitats de 0 i 1 per a cada estat. Així, la màquina de Moore es converteix en:
Exemple 4:
Construeix una màquina de Moore que determina si una cadena d'entrada conté un nombre parell o senar d'1. La màquina hauria de donar 1 com a sortida si hi ha un nombre parell d'1 a la cadena i 0 en cas contrari.
Solució:
La màquina de Moore serà:
Aquesta és la màquina Moore necessària. En aquesta màquina, l'estat q1 accepta un nombre imparell d'1 i l'estat q0 accepta un nombre parell d'1. No hi ha cap restricció sobre un nombre de zeros. Per tant, per a l'entrada 0, l'autobucle es pot aplicar als dos estats.
cadena i subcadena
Exemple 5:
Dissenyeu una màquina de Moore amb l'alfabet d'entrada {0, 1} i l'alfabet de sortida {Y, N} que produeix Y com a sortida si la seqüència d'entrada conté 1010 com a subcadena, en cas contrari, produeix N com a sortida.
Solució:
La màquina de Moore serà: