Title: Nondeterministic Finite Automata (NFAs)
1Nondeterministic Finite Automata (NFAs)
2Reminder 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
3Expressiveness 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
4Another Example
a
b
A
b
b
a
a
r
r
s
q
q
gt
a
a
What is the language recognized by A?
b
a
a
B
a
b
r
r
s
q
q
gt
b
What is the language recognized by B?
b
5Nondeterministic Finite Automata
a
b
a
a
r
r
q
q
b
a
s
gt
b
a
b
r
b
r
q
q
a
a
b
- Why is this automaton nondeterministic?
- What is the language accepted by this automaton?
6Nondeterministic Finite Automata (NFA)
For every state q in S and every character ? in
?, one of the following will happen
7Nondeterministic 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
- 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 (? ? e) ?(Q)
Are ? and ? representing the same transitions?
8Nondeterministic Finite Automata (NFA)
What else can occur in NFAs?
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
9Formal 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
- r0 is the start state of M
- ri1 ? ?(ri , wi1) for i 0, , m-1
- rm ? F
- Language recognized by N w in ? N accepts w
10Same Example
a
b
a
a
r
r
q
q
b
a
s
gt
b
a
b
r
b
r
q
q
a
a
b
Language accepted by this automaton is the set of
all strings containing either the substring aa
or the substring bb
11Example
a
r
r
s
q
q
gt
b
b
b
- Why is this automation nondeterministic?
- What is the language accepted by this automaton?
12Why 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?
13Oracle 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 because it leads
to a favorable state
current state
...
- Is the oracle explanation compatible with our
definition of acceptability in NFAs? - Sometimes it is useful to use the oracle when
creating NFAs
14NFA vs DFA
- Every DFA can be seen as an NFA
- But not every NFA can be seen as a DFA
- Are DFAs more expressive? What does this means?
- For example, is there an DFA that accepts the
same language accepted by the following NFA?
It means that there an NFA can be constructed
that accepts a language L for which no DFA can be
constructed that accepts L
15NFA vs DFA (2)
a
b
a
a
r
r
q
q
b
a
s
gt
b
a
b
r
b
r
q
q
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