Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 15

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 q’

b b b
> s p q r
a a a
a b
a 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
b a

A
b a
> s q r
a
What is the language recognized by A?
b
a
a

B a
b r
> s q
b
What is the language recognized by B?
b
Nondeterministic Finite Automata
a
b a
q r
b
a
> s b
a
b b r’
r
a q’
q 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 q’ occurs


•One or more transitions: q q’ occurs
 p

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 × (  {e}) × Q
•s  Q called the start state
•F  Q called the favorable states

The crucial point is that  is a relation “power set”

Book says: (Q,, ,s,F) where:


 is a transition function, Q × (  {e}) × (Q)

Are  and  representing the same transitions?


Nondeterministic Finite Automata (NFA)
What else can occur in NFAs?

e
q 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
Same Example
a
b a
q r
b
a
> s b
a
b b r’
r
a q’
q a

b
Language accepted by this automaton is the set of all strings
containing either the substring “aa” or the substring “bb”
Example

>s q r
b 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” because it leads
...
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

r
>s b q b

b
NFA vs DFA (2)
• How about this one?
a

b a r
b q
a
> s b
a
b q’
q b r’
r a
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

You might also like