Moore machine
Overview
 
In the theory of computation
Theory of computation
In theoretical computer science, the theory of computation is the branch that deals with whether and how efficiently problems can be solved on a model of computation, using an algorithm...

, a Moore machine is a finite-state machine, whose output values are determined solely by its current state
State (computer science)
In computer science and automata theory, a state is a unique configuration of information in a program or machine. It is a concept that occasionally extends into some forms of systems programming such as lexers and parsers....

.
The Moore machine is named after Edward F. Moore
Edward F. Moore
Edward Forrest Moore was an American professor of mathematics and computer science, the inventor of the Moore finite state machine, and an early pioneer of artificial life....

, who presented the concept in a 1956 paper, “Gedanken-experiments on Sequential Machines.”
A Moore machine can be defined as a 6-tuple ( S, S0, Σ, Λ, T, G ) consisting of the following:
  • a finite set of states
    State (computer science)
    In computer science and automata theory, a state is a unique configuration of information in a program or machine. It is a concept that occasionally extends into some forms of systems programming such as lexers and parsers....

     ( S )
  • a start state (also called initial state) S0 which is an element of (S)
  • a finite set called the input alphabet ( Σ )
  • a finite set called the output alphabet ( Λ )
  • a transition function
    Function (mathematics)
    In mathematics, a function associates one quantity, the argument of the function, also known as the input, with another quantity, the value of the function, also known as the output. A function assigns exactly one output to each input. The argument and the value may be real numbers, but they can...

     (T : S × Σ → S) mapping a state and the input alphabet to the next state
  • an output function (G : S → Λ) mapping each state to the output alphabet


The Moore machine is a finite state transducer
Finite state transducer
A finite state transducer is a finite state machine with two tapes: an input tape and an output tape. This contrasts with an ordinary finite state automaton , which has a single tape.-Overview:...

.
The state diagram
State diagram
A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction...

 for a Moore machine or Moore diagram is a diagram that associates an output value with each state.
Output values :
  • in a Mealy machine
    Mealy machine
    In the theory of computation, a Mealy machine is a finite-state machine whose output values are determined both by its current state and the current inputs. The outputs change asynchronously with respect to the clock, meaning that the outputs change at unpredictable times, making timing analysis...

     are determined both by its current state and by the values of its inputs
  • in a Moore machine are determined solely by its current state
    State (computer science)
    In computer science and automata theory, a state is a unique configuration of information in a program or machine. It is a concept that occasionally extends into some forms of systems programming such as lexers and parsers....

    .


The number of states in a Moore machine will be greater than or equal to the number of states in the corresponding Mealy machine.
This is due to the fact that each transition in a Mealy machine can be associated with a corresponding, additional state mapping the transition to a single output in the Moore machine, hence turning a possibly partial machine into a complete machine.

The diagram
State diagram
A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction...

 :
  • for a Moore machine associates an output value with each state
  • for a Mealy machine associates an output value with each transition edge


Simple Moore machine have one input and one output:
  • edge detector
    Edge detection
    Edge detection is a fundamental tool in image processing and computer vision, particularly in the areas of feature detection and feature extraction, which aim at identifying points in a digital image at which the image brightness changes sharply or, more formally, has discontinuities...

     using XOR
  • binary adding machine
  • clocked sequential systems ( a restricted form of Moore machine where the state changes only when the global clock signal changes )

Most digital electronic systems are designed as clocked sequential systems. Clocked sequential systems are a restricted form of Moore machine where the state changes only when the global clock signal changes.
Unanswered Questions
 
x
OK