Moore machine
In the theory of computation, a Moore machine is a finite-state machine whose current output values are determined only by its current state. This is in contrast to a Mealy machine, whose output values are determined both by its current state and by the values of its inputs. Like other finite state machines, in Moore machines, the input typically influences the next state. Thus the input may indirectly influence subsequent outputs, but not the current or immediate output. The Moore machine is named after Edward F. Moore, who presented the concept in a 1956 paper, “Gedanken-experiments on Sequential Machines.”[1]
A Moore machine can be defined as a 6-tuple consisting of the following:
A Moore machine can be regarded as a restricted type of finite-state transducer.
Visual representation[edit]
Table[edit]
A state transition table is a table listing all the triples in the transition relation .
Diagram[edit]
The state diagram for a Moore machine, or Moore diagram, is a diagram state diagram that associates an output value with each state.
As Moore and Mealy machines are both types of finite-state machines, they are equally expressive: either type can be used to parse a regular language.
The difference between Moore machines and Mealy machines is that in the latter, the output of a transition is determined by the combination of current state and current input ( as the domain of ), as opposed to just the current state ( as the domain of ). When represented as a state diagram,
Every Moore machine is equivalent to the Mealy machine with the same states and transitions and the output function , which takes each state-input pair and yields , where is 's output function and is 's transition function.
However, not every Mealy machine can be converted to an equivalent Moore machine. Some can be converted only to an almost equivalent Moore machine, with outputs shifted in time. This is due to the way that state labels are paired with transition labels to form the input/output pairs. Consider a transition from state to state . The input causing the transition labels the edge . The output corresponding to that input, is the label of state .[2] Notice that this is the source state of the transition. So for each input, the output is already fixed before the input is received, and depends solely on the present state. This is the original definition by E. Moore. It is a common mistake to use the label of state as output for the transition .