Finite-state machine that accepts and rejects strings of symbols and only produces a unique computation (or run) of the automaton for each input string.