9.24.2006

Nondeterministic Protagonist

The finite machine is a fundamental concept in computer
science. It provides a simple model of computation. But note
there are other type of machines that are more powerful than
finite machines.

A finite machine can have a finite number of states it can
be in, ergo _finite_ machine. Then we can specify for each
state that if it receives a signal, it will change to
another state, perhaps itself. So given a series of signals,
a finite machine will travel from a initial state to some
state, perhaps returning to the starting point. We can
select a few states as goals, if consider the computation a
success if we end up there after processing all the signals.

In theoretical terms, the collection of all the possible
states is denoted Q, and the collection of successful state
is denoted G.

In the real world, a machine can do only one thing when
given a signal. But in the abstract mathematical
neverneverland, it's easy for certain proofs to imagine a
machine that can do many things simultaneously. So given a
symbol, it can go to one or more different states. Crazy eh?
What's crazier is that this magical machine is no more
powerful than a real world machine: anything that the magic
machine can do, the real world machine can do.

In math jargon, the real world machine is said to be
"deterministic", and the magic machine is
"nondeterministic".

01.06 09.06 10.06 11.06 12.06

Me