A máquina de Moore é uma máquina de estados finitos na qual o próximo estado é decidido pelo estado atual e pelo símbolo de entrada atual. O símbolo de saída num determinado momento depende apenas do estado atual da máquina. A máquina de Moore pode ser descrita por 6 tuplas (Q, q0, ∑, O, δ, λ) onde,
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
Exemplo 1:
O diagrama de estado para a Máquina de Moore é
A tabela de transição para a Máquina Moore é:
qual é a diferença entre um megabyte e um gigabyte
Na máquina de Moore acima, a saída é representada com cada estado de entrada separado por /. O comprimento de saída para uma máquina de Moore é maior que o comprimento de entrada em 1.
Entrada: 010
Transição: δ (q0,0) => δ (q1,1) => δ (q1,0) => q2
Saída: 1110(1 para q0, 1 para q1, novamente 1 para q1, 0 para q2)
Exemplo 2:
Projete uma máquina de Moore para gerar o complemento de 1 de um determinado número binário.
Solução: Para gerar o complemento de 1 de um determinado número binário, a lógica simples é que se a entrada for 0, a saída será 1 e se a entrada for 1, a saída será 0. Isso significa que existem três estados. Um estado é o estado inicial. O segundo estado é para tomar 0 como entrada e produzir a saída como 1. O terceiro estado é para tomar 1 como entrada e produzir a saída como 0.
Portanto, a máquina de Moore será,
Por exemplo, pegue um número binário 1011 e então
Entrada | 1 | 0 | 1 | 1 | |
Estado | q0 | q2 | q1 | q2 | q2 |
Saída | 0 | 0 | 1 | 0 | 0 |
Assim, obtemos 00100 como complemento de 1 de 1011, podemos negligenciar o 0 inicial e a saída que obtemos é 0100, que é o complemento de 1 de 1011. A tabela de transações é a seguinte:
Assim máquina de Moore M = (Q, q0, ∑, O, δ, λ); onde Q = {q0, q1, q2}, ∑ = {0, 1}, O = {0, 1}. a tabela de transição mostra as funções δ e λ.
Exemplo 3:
Projete uma máquina de Moore para uma sequência de entrada binária tal que se ela tiver uma substring 101, a máquina produzirá A, se a entrada tiver a substring 110, ela produzirá B, caso contrário, ela produzirá C.
Solução: Para projetar tal máquina, verificaremos duas condições, que são 101 e 110. Se obtivermos 101, a saída será A, e se reconhecermos 110, a saída será B. Para outras strings, a saída será C.
O diagrama parcial será:
d flip-flop
Agora iremos inserir as possibilidades de 0 e 1 para cada estado. Assim, a máquina de Moore torna-se:
Exemplo 4:
Construa uma máquina de Moore que determine se uma string de entrada contém um número par ou ímpar de 1s. A máquina deve fornecer 1 como saída se um número par de 1 estiver na string e 0 caso contrário.
Solução:
A máquina de Moore será:
Esta é a máquina Moore necessária. Nesta máquina, o estado q1 aceita um número ímpar de 1's e o estado q0 aceita um número par de 1's. Não há restrição quanto ao número de zeros. Portanto, para entrada 0, o autoloop pode ser aplicado em ambos os estados.
Exemplo 5:
Projete uma máquina Moore com o alfabeto de entrada {0, 1} e o alfabeto de saída {Y, N} que produz Y como saída se a sequência de entrada contiver 1010 como uma substring, caso contrário, produz N como saída.
Solução:
python classificando tuplas
A máquina de Moore será: