# Document ```Nondeterministic Finite Automata
(NFAs)
Reminder: Deterministic Finite Automata (DFA)
For every state q in Q and every character  in , one and
only one transition of the following form occurs:

q
&gt; s
b
a
p
q’
b
a
b
q
r
a
a
a
b
t
b
Expressiveness of DFA
•DFA are a type of programs
•Contains concepts of imperative languages: sequences,
branching and loops.
•Can implement a newspaper vendor machine or even control
a character in a video game
•Can implement pattern matching: find all text containing
“Britney Spears” (or “Justin Timberlake”)
•Can only implement programs that require a constant
amount of memory
Another Example
a
b
A
b
&gt; s
a
q
a
What is the language recognized by A?
a
B
a
&gt; s
q
b
b
What is the language recognized by B?
r
b
a
r
b
Nondeterministic Finite Automata
a
b
a
q
b
r
a
&gt; s
a
b
a
b
q
q’
b
r
r’
a
b
1. Why is this automaton nondeterministic?
2. What is the language accepted by this automaton?
Nondeterministic Finite Automata (NFA)
For every state q in S and every character  in , one of the
following will happen:
•No transition: q

•One or more transitions: q
q’
occurs


…
q’
p
occurs
Nondeterministic Finite Automaton (NFA)
A nondeterministic finite automaton (NFA) is a 5-tuple
(Q,,,s,F) where:
•Q is a finite set of elements called states
• is a finite input alphabet
“the empty word”
•  Q &times; (  {e}) &times; Q
•s  Q called the start state
•F  Q called the favorable states
The crucial point is that  is a relation
Book says: (Q,, ,s,F) where:
 is a transition function, Q &times; (  {e}) &times; (Q)
Are  and  representing the same transitions?
“power set”
Nondeterministic Finite Automata (NFA)
What else can occur in NFAs?
q
e
q’
If next word to process in q is aaabbb and apply this
transition, what is the word to be processed in q’?
aaabbb
“e-transitions” do not process any characters, they just
allow to “jump” between states
Formal Definition of Computation for
NFAs
•
Given a nodeterministic finite automaton N= (Q,,,s,F),
and let
w = w1w2 …wn, where each wi is in 
M accepts w if we can write w as:
w = y1y2 …ym , where each yi is in (  {e})
and there is a sequence of states
r0 r1, r2 … rm in Q such that:
1. r0 is the start state of M
2. ri+1  (ri , wi+1) for i = 0, …, m-1
3. rm  F
•
Language recognized by N: {w in * : N accepts w}
Same Example
a
b
a
q
b
r
a
&gt; s
a
b
a
b
q
q’
b
r
r’
a
b
Language accepted by this automaton is the set of all strings
containing either the substring “aa” or the substring “bb”
Example
a
&gt;s
b
q
b
r
b
1. Why is this automation nondeterministic?
2. What is the language accepted by this automaton?
Why We Study Nondeterministic
Computation?
• Makes it easier to prove properties about Automata
– In particular, makes it easier to prove certain properties:
• If A is a regular language then AR is also regular
• It also makes it possible to understand the boundaries of
computation
– P = NP?
Oracle in NFAs
•The oracle explanation of NFAs: given a choice between
possible transitions, there is a device, called the oracle, that
always chooses the transition that leads to a favorable state
...
…
...
Oracle chooses
this transition
“current state”
...
to a favorable
state
•Is the oracle explanation compatible with our definition
of acceptability in NFAs?
•Sometimes it is useful to use the oracle when creating
NFAs
NFA vs DFA
• Every DFA can be seen as an NFA
• But not every NFA can be seen as a DFA
• Are DFA’s more expressive? What does this means?
It means that there an NFA can be constructed that accepts
a language L for which no DFA can be constructed that
accepts L
• For example, is there an DFA that accepts the same language
accepted by the following NFA?
a
&gt;s
b
q
b
r
b
NFA vs DFA (2)
a
b
a
q
b
r
a
&gt; s
a
b
a
b
q
q’
b
r
r’
a
b
• It turns out that for every NFA, a DFA can be constructed such
they both accept the same language.
• We will study a formal proof of this on Wednesday
```