Alternation 45
cept state, it reports a Boolean 1 indicating acceptance to its parent and
terminates. When a process enters a reject state, it reports a Boolean 0 in-
dicating rejection to its parent and terminates. A suspended process, upon
receivinga1fromasubprocess, immediately reports the 1 up to its parent
process and terminates. A suspended process, upon receivinga0froma
subprocess, waits for a report from another subprocess. If and when all the
subprocesses have reported 0, it reports 0 up to its parent and terminates.
The input is accepted if a 1 is ever reported to the root process.
This description is of course just an intuitive device; there is no explicit
mechanism for spawning subprocesses or reporting Boolean values back up
the tree.
Now we wish to extend this idea by allowing “and” as well as “or”
branching. In normal nondeterminism as described above, a suspended pro-
cess waiting at a choice point checks whether any one of its subprocesses
leads to acceptance. It essentially computes the “or” (∨)oftheBoolean
values returned to it by its subprocesses. We might also allow a process
to check whether all subprocesses lead to acceptance by computing the
Boolean “and” (∧) of the Boolean values returned to it by its subprocesses.
Whether a nondeterministic choice point is an ∧-branch or an ∨-branch is
determined by the state. The word “alternation” refers to the alternation
of ∧ and ∨ in the course of a computation.
We give a formal definition of alternating Turing machines below and
prove a remarkable correspondence between alternation and determinism:
alternating time is the same as deterministic space, and alternating space
is the same as exponentially more deterministic time.
It will often be convenient to allow negating steps (¬) as well as ∧ and
∨ branches in alternating Turing machines. It turns out we can get rid of
negations at no cost in either space or time.
Definition 7.1 An alternating Turing machine (ATM) is exactly like a nondeterministic
TM, except there is included in the specification of the machine a function
type : Q →{∧, ∨, ¬},
where Q is the set of states. The function type tells whether a state is an
and-state, an or-state, or a not-state. A configuration is called an and-
configuration,anor-configuration,ora not-configuration according as the
state in the configuration is an and-state, an or-state, or a not-state, re-
spectively. We impose the restriction that not-configurations have exactly
one successor.
Accept and reject states do not need to be explicitly specified in the de-
scription of the machine. We can take an accept state to be an and-state
with no successors and a reject state to be an or-state with no successors.