28

An automaton is an abstract model of a digital computer. Digital computers are completely deterministic; their state at any time is uniquely predictable from the input and the initial state.

When we are trying to model real systems, why include nondeterminism in Automata theory?

reinierpost
  • 5,509
  • 1
  • 21
  • 38
Tanmoy Banerjee
  • 928
  • 2
  • 12
  • 24
  • 1
    It would possibly help to ask who originally described NTMs and what their purpose/goal was at the time. – usul Mar 10 '14 at 21:13
  • 2
    Note that the fact that the machine is deterministic does not always mean our code is. Anyone who's done multitasking/multithreading can attest to the fact that the times at which task switching occurs is often unpredictable in any practical terms and we have to design explicit interlocks to make their behavior appear deterministic. (Basically, there are hidden variables in the state.) Communications raises the same issue. I honestly don't know whether NDAs help address these -- I'm a software engineer, not a computer scientist -- but in the real world your premise is overoptimistic. – keshlam Mar 11 '14 at 03:26
  • When you talk about multithreading, arguably, you have non-determinism, at least if you consider metal and OS to form the machine. What's funny is that the code itself is deterministic. – Raphael Mar 12 '14 at 20:37
  • @keshlam I added your point in my answer, @ Tanmoy read updated my answer. – Grijesh Chauhan Mar 13 '14 at 15:35
  • An automaton is not an abstract model of a digital computer, but of computing in general. 2) Digital computers are not completely deterministic. It is all a clever illusion that doesn't always hold up.
  • – reinierpost Jun 09 '20 at 08:56