< previous page page_61 next page >
Page 61
This diagram violates the rules for the transition diagram of a complete, deterministic finite-state
automaton in two fundamental ways: there is more than one initial state, and there are forbidden
configurations. However, if we put to one side these fatal problems, we do notice an interesting
property of this diagram: the strings that label paths in the diagram, which begin at one of the initial
states and conclude at the terminal state, form precisely the language rev
(L):
those strings that
end
in a
double letter.
This diagram is in fact an example of a non-deterministic automaton. After giving the formal definition
below, we shall prove that every non-deterministic automaton can be converted into a deterministic
automaton recognising the same language. An immediate application of this result can be obtained by
generalising the example above; we will therefore be able to prove that the reverse of a recognisable
language is also recognisable.
Recall that if
X
is a set, then is the power set of
X,
the set of all subsets of
X
. The set
contains both and
X
as elements. A
non-deterministic automaton
A is determined by five pieces of
information:
where
S
is a finite set of states,
A
is the input alphabet,
I
is a set of initial states, is the
transition function, and
T
is a set of terminal states.
In addition to allowing any number of initial states, the key feature of this definition is that
δ(s, a)
is
now a subset of
S
(possibly empty!). We can draw transition diagrams and transition tables just as we
did for deterministic machines. The transition table of the machine we constructed in Example 3.2.1 is
as follows:
It now remains to define the analogue of the ‘extended transition function.’ For each string
and
state we want to know
the set of all possible states
that can be reached by paths starting at
s
and labelled by
x
. The formal definition is as follows and, as in the deterministic case, the function being
defined exists and is unique. The function
δ
* is the unique function from
S
×
A
* to satisfying the
following three conditions where
,
and
:
(ETF1)
δ
*
(s, ε)
=
{s}
.
< previous page page_61 next page >