SlideShare a Scribd company logo
Chapter Five:
Nondeterministic Finite Automata
From DFA to NFA
•  A DFA has exactly one transition from every state on
every symbol in the alphabet.
•  By relaxing this requirement we get a related but
more flexible kind of automaton: the nondeterministic
finite automaton or NFA.
Outline
•  5.1 Relaxing a Requirement
•  5.2 Spontaneous Transitions
•  5.3 Nondeterminism
•  5.4 The 5-Tuple for an NFA
•  5.5 The Language Accepted by an NFA
Not A DFA
•  Does not have exactly one transition from
every state on every symbol:
–  Two transitions from q0 on a
–  No transition from q1 (on either a or b)
•  Though not a DFA, this can be taken as
defining a language, in a slightly different way
q1
a,b
q0
a
Possible Sequences of Moves
•  We'll consider all possible sequences of moves the machine
might make for a given string
•  For example, on the string aa there are three:
–  From q0 to q0 to q0, rejecting
–  From q0 to q0 to q1, accepting
–  From q0 to q1, getting stuck on the last a
•  Our convention for this new kind of machine: a string is in L(M) if
there is at least one accepting sequence
q1
a,b
q0
a
Nondeterministic Finite
Automaton (NFA)
•  L(M) = the set of strings that have at least one accepting
sequence
•  In the example above, L(M) = {xa | x ∈ {a,b}*}
•  A DFA is a special case of an NFA:
–  An NFA that happens to be deterministic: there is exactly one
transition from every state on every symbol
–  So there is exactly one possible sequence for every string
•  NFA is not necessarily deterministic
q1
a,b
q0
a
NFA Example
•  This NFA accepts only
those strings that end in
01
•  Running in “parallel
threads” for string
1100101
q0Start q1 q2
0 1
0,1
q0
q0
q0
q0
q0
1
1
0
0
q1 - stuck
q0
q0
1
1
0
q0
q1
q2 - stuck
q1
q2 - accept
q0
q0
q0
q0
q0
1
1
0
0
q1 - stuck
q0
q0
1
1
0
q0
q1
q2 - stuck
q1
q2 - accept
Nondeterminism
•  The essence of nondeterminism:
–  For a given input there can be more than one legal
sequence of steps
–  The input is in the language if at least one of the legal
sequences says so
•  We can achieve the same result by computing all
legal sequences in parallel and then deterministically
search the legal sequences that accept the input,
but…
•  ...this nondeterminism does not directly correspond to
anything in physical computer systems
•  In spite of that, NFAs have many practical
applications
Nondeterminism DFA:
0
0
0
1
1
1
1
0
q0 q1
q2 q3
NFA:
0,1
0,1
1
q0 q1 q2
Now consider string: 0110
DFAs and NFAs
•  DFAs and NFAs both define languages
•  DFAs do it by giving a simple computational procedure for
deciding language membership:
–  Start in the start state
–  Make one transition on each symbol in the string
–  See if the final state is accepting
•  NFAs do it by considering all possible transitions in parallel.
NFA Advantage
•  An NFA for a language can be smaller and easier to construct than a
DFA
•  Let L={x ∈ {0,1}*|where x is a string whose next-to-last symbol is 1}
•  Construct both a DFA and NFA for recognizing L.
DFA:
0
0
0
1
1
1
1
0
NFA:
0,1
0,1
1
Outline
•  5.1 Relaxing a Requirement
•  5.2 Spontaneous Transitions
•  5.3 Nondeterminism
•  5.4 The 5-Tuple for an NFA
•  5.5 The Language Accepted by an NFA
Spontaneous Transitions
•  An NFA can make a state transition
spontaneously, without consuming an input
symbol
•  Shown as an arrow labeled with ε
•  For example, {a}* ∪ {b}*:
q0
aq1
q2
ε
ε
b
ε-Transitions To Accepting States
•  An ε-transition can be made at any time
•  For example, there are three sequences on the empty string
–  No moves, ending in q0, rejecting
–  From q0 to q1, accepting
–  From q0 to q2, accepting
•  Any state with an ε-transition to an accepting state ends up
working like an accepting state too
q0
aq1
q2
ε
ε
b
ε-transitions For NFA Combining
•  ε-transitions are useful for combining smaller
automata into larger ones
•  This machine is combines a machine for {a}*
and a machine for {b}*
•  It uses an ε-transition at the start to achieve
the union of the two languages
q0
aq1
q2
ε
ε
b
Revisiting Union
A = {an | n is odd}
B = {bn | n is odd}
A ∪ B
a
a
b
b
a
a
b
b
ε
ε
Concatenation
A = {an | n is odd}
B = {bn | n is odd}
{xy | x ∈ A and y ∈ B}
a
a
b
b
ε
a
a
b
b
Some Exercises
What is the language accepted by the following NFAs?
a) b)
c)
•  Let Σ = {a, b, c}. Give an NFA M that accepts:
L = {x | x is in Σ* and x contains ab}
q1q0
q2
a
a,b,c
b
a,b,c
More Exercises
•  Let Σ = {a, b}. Give an NFA M that accepts:
L = {x | x is in Σ* and the third to the last symbol in x is b}
q1q0
b q3
a/b
a/b
q2
a/b
One More Exercise
NFA Exercise
•  Construct an NFA that will accept strings over
alphabet {1, 2, 3} such that the last symbol appears
at least twice, but without any intervening higher
symbol, in between:
–  e.g., 11, 2112, 123113, 3212113, etc.
•  Trick: use start state to mean “I guess I haven't seen
the symbol that matches the ending symbol yet.”
Use three other states to represent a guess that the
matching symbol has been seen, and remembers
what that symbol is.
NFA Exercise (answer)
Outline
•  5.1 Relaxing a Requirement
•  5.2 Spontaneous Transitions
•  5.3 Nondeterminism
•  5.4 The 5-Tuple for an NFA
•  5.5 The Language Accepted by an NFA
Powerset
•  If S is a set, the powerset of S is the set of all subsets of S:
P(S) = {R | R ⊆ S}
•  This always includes the empty set and S itself
•  For example,
P({1,2,3}) = {{}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}}
The 5-Tuple
•  The only change from a DFA is the transition function δ
•  δ takes two inputs:
–  A state from Q (the current state)
–  A symbol from Σ∪{ε} (the next input, or ε for an ε-transition)
•  δ produces one output:
–  A subset of Q (the set of possible next states - since multiple transitions can
happen in parallel!)
An NFA M is a 5-tuple M = (Q, Σ, δ, q0, F), where:
Q is the finite set of states
Σ is the alphabet (that is, a finite set of symbols)
δ ∈ (Q × (Σ∪{ε}) → P(Q) is the transition function
q0 ∈ Q is the start state
F ⊆ Q is the set of accepting states
Example:
•  Formally, M = (Q, Σ, δ, q0, F), where
–  Q = {q0,q1,q2}
–  Σ = {a,b} (we assume: it must contain at least a and b)
–  F = {q2}
–  δ(q0,a) = {q0,q1}, δ(q0,b) = {q0}, δ(q0,ε) = {q2},
δ(q1,a) = {}, δ(q1,b) = {q2}, δ(q1,ε) = {}
δ(q2,a) = {}, δ(q2,b) = {}, δ(q2,ε) = {}
•  The language defined is {a,b}*
q0 q1
a
q2
b
ε
a,b
Outline
•  5.1 Relaxing a Requirement
•  5.2 Spontaneous Transitions
•  5.3 Nondeterminism
•  5.4 The 5-Tuple for an NFA
•  5.5 The Language Accepted by an NFA
The δ* Function
•  The δ function gives 1-symbol moves
•  We'll define δ* so it gives whole-string results
(by applying zero or more δ moves)
•  For DFAs, we used this recursive definition
–  δ*(q,ε) = q
–  δ*(q,xa) = δ(δ*(q,x),a)
•  The intuition is similar for NFAs taking parallel
transitions into account, but the
ε-transitions add some technical difficulties
NFA IDs
•  An instantaneous description (ID) is a
description of a point in an NFA's execution
•  It is a pair (q,x) where
–  q ∈ Q is the current state
–  x ∈ Σ* is the unread part of the input
•  Initially, an NFA processing a string x has the
ID (q0,x)
•  An accepting sequence of moves ends in an
ID (f,ε) for some accepting state f ∈ F
The One-Move Relation On IDs
•  We write
if I is an ID and J is an ID that could follow
from I after one move of the NFA
•  That is, for any string x ∈ Σ* and any a ∈ Σ or
a = ε,€
I  J
q,ax( )  r,x( ) if and only if r ∈ δ q,a( )
The Zero-Or-More-Move Relation
•  We write
if there is a sequence of zero or more moves
that starts with I and ends with J:
•  Because it allows zero moves, it is a reflexive
relation: for all IDs I,
€
I ∗
J
€
I    J
I ∗
I
The δ* Function
•  Now we can define the δ*
function for NFAs:
•  Intuitively, δ*(q,x) is the set of all
states the NFA might be in after
starting in state q and reading x€
δ∗
q,x( ) = r q,x( ) ∗
r,ε( ){ }
M Accepts x
•  Now δ*(q,x) is the set of states M may end in,
starting from state q and reading all of string x
•  So δ*(q0,x) tells us whether M accepts x by
computing all possible states by executing all
possible transitions in parallel on the string x:
A string x ∈ Σ* is accepted by an NFA M = (Q, Σ, δ, q0, F)
if and only if the set δ*(q0, x) contains at least one
element of F.
For any NFA M = (Q, Σ, δ, q0, F), L(M) denotes
the language accepted by M, which is
L(M) = {x ∈ Σ* | δ*(q0, x) ∩ F ≠ {}}.
The Language An NFA Defines
Exercise
•  Compute the results of
the following transitions:
–  δ*(q1,ε)
–  δ*(q1,0110)
Exercise
•  Theorem: Let M be an NFA with a single accepting
state, show how to construct the 5-tuple for a new
NFA, say N, with
L(N) = { xy | x∈ L(M) and y∈ L(M)}.
Show that the language of construct NFA is indeed
L(N) as specified.
•  Proof Idea: The idea here is to make two copies of
the NFA, linking the accepting state of the first to the
start state of the second. The accepting state of the
second copy becomes the only accepting state in the
new machine.
Assignment
•  Assignment #3 – see website

More Related Content

PPT
Lec 3 ---- dfa
PPT
NFA or Non deterministic finite automata
PPTX
simple problem to convert NFA with epsilon to without epsilon
PDF
Formal Languages and Automata Theory Unit 1
PPT
Nondeterministic Finite Automata
PPT
Finite automata examples
PDF
Formal Languages and Automata Theory unit 5
PPT
5 stream ciphers
Lec 3 ---- dfa
NFA or Non deterministic finite automata
simple problem to convert NFA with epsilon to without epsilon
Formal Languages and Automata Theory Unit 1
Nondeterministic Finite Automata
Finite automata examples
Formal Languages and Automata Theory unit 5
5 stream ciphers

What's hot (19)

PDF
Programmable PN Sequence Generators
PPT
Theory of Computation - Lectures 6 & 7
PDF
Codefreeze eng
PDF
Optimizing with persistent data structures (LLVM Cauldron 2016)
PDF
Knit, Chisel, Hack: Building Programs in Guile Scheme (Strange Loop 2016)
PPT
Chapt 06
PDF
Deep speech
PPTX
Finite state Transducers and mealy Machine
PDF
Specifying and Implementing SNOW3G with Cryptol
PPT
Algorithmic Notations
PPTX
1.7. eqivalence of nfa and dfa
PPTX
RFID tag anti collision protocols
PPT
Lecture8
PPTX
The joy of functional programming
PPT
Inside LoLA - Experiences from building a state space tool for place transiti...
PDF
Theory of Computation Basic Concepts and Grammar
PPTX
Isola 12 presentation
PPTX
Transformer Mods for Document Length Inputs
PDF
Lecture set 4
Programmable PN Sequence Generators
Theory of Computation - Lectures 6 & 7
Codefreeze eng
Optimizing with persistent data structures (LLVM Cauldron 2016)
Knit, Chisel, Hack: Building Programs in Guile Scheme (Strange Loop 2016)
Chapt 06
Deep speech
Finite state Transducers and mealy Machine
Specifying and Implementing SNOW3G with Cryptol
Algorithmic Notations
1.7. eqivalence of nfa and dfa
RFID tag anti collision protocols
Lecture8
The joy of functional programming
Inside LoLA - Experiences from building a state space tool for place transiti...
Theory of Computation Basic Concepts and Grammar
Isola 12 presentation
Transformer Mods for Document Length Inputs
Lecture set 4
Ad

Similar to Nondeterministic Finite Automata (20)

PPT
Nondeterministic Finite Automat
PPTX
INTRODUTION Formal Language and Automatic Theory.pptx
PPTX
chapter 1 automata and complexity theory lecture note.pptx
PPTX
AUTOMATA THEORY AUTOMATA THEORYAutomata3Chapter2.pptx
PPTX
FiniteAutomata_anim.pptx
PPTX
FiniteAutomata_anim.pptx
PPT
Alofairi Adel
PPTX
NFA Converted to DFA , Minimization of DFA , Transition Diagram
PPT
Finite automata examples
PDF
Theory of Computation FSM Conversions and Problems
PPT
Lecture 1 CSE 322 LPU By 5th SEM .ppt Good
PPT
CSE-322 lecture1 notes
PPTX
Theory of computation Unit 1 Lecute 2.pptx
PPT
Finite Automata
PPTX
Formal language and automata theoryLAT Class notes.pptx
PPTX
Implementation of lexical analyser
PPTX
symbolic_automata or Advanced Programming Practice.pptx
PPTX
TOC Introduction
PPTX
Chapter-twoChapter-three automata and complexity theory .pptx
Nondeterministic Finite Automat
INTRODUTION Formal Language and Automatic Theory.pptx
chapter 1 automata and complexity theory lecture note.pptx
AUTOMATA THEORY AUTOMATA THEORYAutomata3Chapter2.pptx
FiniteAutomata_anim.pptx
FiniteAutomata_anim.pptx
Alofairi Adel
NFA Converted to DFA , Minimization of DFA , Transition Diagram
Finite automata examples
Theory of Computation FSM Conversions and Problems
Lecture 1 CSE 322 LPU By 5th SEM .ppt Good
CSE-322 lecture1 notes
Theory of computation Unit 1 Lecute 2.pptx
Finite Automata
Formal language and automata theoryLAT Class notes.pptx
Implementation of lexical analyser
symbolic_automata or Advanced Programming Practice.pptx
TOC Introduction
Chapter-twoChapter-three automata and complexity theory .pptx
Ad

More from parmeet834 (13)

PDF
PDF
Problemes chap1 toc
PDF
Hwsoln03 toc
PDF
CS 162 Fall 2015 Homework 1 Problems September 29, 2015 Timothy Johnson 1. Ex...
PDF
Introduction to the Theory of Computation, Winter 2003 A. Hevia and J. Mao S...
PDF
Graph representation of DFA’s Da
PPT
Pushdown automata
PPT
Pushdown Automata
DOC
Assignment Theory of computation TOC
PPT
5 decidability theory of computation
PPT
Turing Machines (TM)
PPT
Regular Languages
PPT
1 introduction
Problemes chap1 toc
Hwsoln03 toc
CS 162 Fall 2015 Homework 1 Problems September 29, 2015 Timothy Johnson 1. Ex...
Introduction to the Theory of Computation, Winter 2003 A. Hevia and J. Mao S...
Graph representation of DFA’s Da
Pushdown automata
Pushdown Automata
Assignment Theory of computation TOC
5 decidability theory of computation
Turing Machines (TM)
Regular Languages
1 introduction

Recently uploaded (20)

PDF
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
PDF
AI-driven educational solutions for real-life interventions in the Philippine...
PDF
My India Quiz Book_20210205121199924.pdf
PDF
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
PDF
احياء السادس العلمي - الفصل الثالث (التكاثر) منهج متميزين/كلية بغداد/موهوبين
PDF
1_English_Language_Set_2.pdf probationary
PDF
Τίμαιος είναι φιλοσοφικός διάλογος του Πλάτωνα
PDF
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
PDF
Practical Manual AGRO-233 Principles and Practices of Natural Farming
PDF
Empowerment Technology for Senior High School Guide
PDF
What if we spent less time fighting change, and more time building what’s rig...
PPTX
Virtual and Augmented Reality in Current Scenario
PPTX
Unit 4 Computer Architecture Multicore Processor.pptx
PDF
Indian roads congress 037 - 2012 Flexible pavement
PDF
HVAC Specification 2024 according to central public works department
PDF
FORM 1 BIOLOGY MIND MAPS and their schemes
PDF
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
PPTX
ELIAS-SEZIURE AND EPilepsy semmioan session.pptx
PDF
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
PPTX
B.Sc. DS Unit 2 Software Engineering.pptx
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
AI-driven educational solutions for real-life interventions in the Philippine...
My India Quiz Book_20210205121199924.pdf
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
احياء السادس العلمي - الفصل الثالث (التكاثر) منهج متميزين/كلية بغداد/موهوبين
1_English_Language_Set_2.pdf probationary
Τίμαιος είναι φιλοσοφικός διάλογος του Πλάτωνα
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
Practical Manual AGRO-233 Principles and Practices of Natural Farming
Empowerment Technology for Senior High School Guide
What if we spent less time fighting change, and more time building what’s rig...
Virtual and Augmented Reality in Current Scenario
Unit 4 Computer Architecture Multicore Processor.pptx
Indian roads congress 037 - 2012 Flexible pavement
HVAC Specification 2024 according to central public works department
FORM 1 BIOLOGY MIND MAPS and their schemes
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
ELIAS-SEZIURE AND EPilepsy semmioan session.pptx
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
B.Sc. DS Unit 2 Software Engineering.pptx

Nondeterministic Finite Automata

  • 2. From DFA to NFA •  A DFA has exactly one transition from every state on every symbol in the alphabet. •  By relaxing this requirement we get a related but more flexible kind of automaton: the nondeterministic finite automaton or NFA.
  • 3. Outline •  5.1 Relaxing a Requirement •  5.2 Spontaneous Transitions •  5.3 Nondeterminism •  5.4 The 5-Tuple for an NFA •  5.5 The Language Accepted by an NFA
  • 4. Not A DFA •  Does not have exactly one transition from every state on every symbol: –  Two transitions from q0 on a –  No transition from q1 (on either a or b) •  Though not a DFA, this can be taken as defining a language, in a slightly different way q1 a,b q0 a
  • 5. Possible Sequences of Moves •  We'll consider all possible sequences of moves the machine might make for a given string •  For example, on the string aa there are three: –  From q0 to q0 to q0, rejecting –  From q0 to q0 to q1, accepting –  From q0 to q1, getting stuck on the last a •  Our convention for this new kind of machine: a string is in L(M) if there is at least one accepting sequence q1 a,b q0 a
  • 6. Nondeterministic Finite Automaton (NFA) •  L(M) = the set of strings that have at least one accepting sequence •  In the example above, L(M) = {xa | x ∈ {a,b}*} •  A DFA is a special case of an NFA: –  An NFA that happens to be deterministic: there is exactly one transition from every state on every symbol –  So there is exactly one possible sequence for every string •  NFA is not necessarily deterministic q1 a,b q0 a
  • 7. NFA Example •  This NFA accepts only those strings that end in 01 •  Running in “parallel threads” for string 1100101 q0Start q1 q2 0 1 0,1 q0 q0 q0 q0 q0 1 1 0 0 q1 - stuck q0 q0 1 1 0 q0 q1 q2 - stuck q1 q2 - accept q0 q0 q0 q0 q0 1 1 0 0 q1 - stuck q0 q0 1 1 0 q0 q1 q2 - stuck q1 q2 - accept
  • 8. Nondeterminism •  The essence of nondeterminism: –  For a given input there can be more than one legal sequence of steps –  The input is in the language if at least one of the legal sequences says so •  We can achieve the same result by computing all legal sequences in parallel and then deterministically search the legal sequences that accept the input, but… •  ...this nondeterminism does not directly correspond to anything in physical computer systems •  In spite of that, NFAs have many practical applications
  • 9. Nondeterminism DFA: 0 0 0 1 1 1 1 0 q0 q1 q2 q3 NFA: 0,1 0,1 1 q0 q1 q2 Now consider string: 0110
  • 10. DFAs and NFAs •  DFAs and NFAs both define languages •  DFAs do it by giving a simple computational procedure for deciding language membership: –  Start in the start state –  Make one transition on each symbol in the string –  See if the final state is accepting •  NFAs do it by considering all possible transitions in parallel.
  • 11. NFA Advantage •  An NFA for a language can be smaller and easier to construct than a DFA •  Let L={x ∈ {0,1}*|where x is a string whose next-to-last symbol is 1} •  Construct both a DFA and NFA for recognizing L. DFA: 0 0 0 1 1 1 1 0 NFA: 0,1 0,1 1
  • 12. Outline •  5.1 Relaxing a Requirement •  5.2 Spontaneous Transitions •  5.3 Nondeterminism •  5.4 The 5-Tuple for an NFA •  5.5 The Language Accepted by an NFA
  • 13. Spontaneous Transitions •  An NFA can make a state transition spontaneously, without consuming an input symbol •  Shown as an arrow labeled with ε •  For example, {a}* ∪ {b}*: q0 aq1 q2 ε ε b
  • 14. ε-Transitions To Accepting States •  An ε-transition can be made at any time •  For example, there are three sequences on the empty string –  No moves, ending in q0, rejecting –  From q0 to q1, accepting –  From q0 to q2, accepting •  Any state with an ε-transition to an accepting state ends up working like an accepting state too q0 aq1 q2 ε ε b
  • 15. ε-transitions For NFA Combining •  ε-transitions are useful for combining smaller automata into larger ones •  This machine is combines a machine for {a}* and a machine for {b}* •  It uses an ε-transition at the start to achieve the union of the two languages q0 aq1 q2 ε ε b
  • 16. Revisiting Union A = {an | n is odd} B = {bn | n is odd} A ∪ B a a b b a a b b ε ε
  • 17. Concatenation A = {an | n is odd} B = {bn | n is odd} {xy | x ∈ A and y ∈ B} a a b b ε a a b b
  • 18. Some Exercises What is the language accepted by the following NFAs? a) b) c)
  • 19. •  Let Σ = {a, b, c}. Give an NFA M that accepts: L = {x | x is in Σ* and x contains ab} q1q0 q2 a a,b,c b a,b,c More Exercises
  • 20. •  Let Σ = {a, b}. Give an NFA M that accepts: L = {x | x is in Σ* and the third to the last symbol in x is b} q1q0 b q3 a/b a/b q2 a/b One More Exercise
  • 21. NFA Exercise •  Construct an NFA that will accept strings over alphabet {1, 2, 3} such that the last symbol appears at least twice, but without any intervening higher symbol, in between: –  e.g., 11, 2112, 123113, 3212113, etc. •  Trick: use start state to mean “I guess I haven't seen the symbol that matches the ending symbol yet.” Use three other states to represent a guess that the matching symbol has been seen, and remembers what that symbol is.
  • 23. Outline •  5.1 Relaxing a Requirement •  5.2 Spontaneous Transitions •  5.3 Nondeterminism •  5.4 The 5-Tuple for an NFA •  5.5 The Language Accepted by an NFA
  • 24. Powerset •  If S is a set, the powerset of S is the set of all subsets of S: P(S) = {R | R ⊆ S} •  This always includes the empty set and S itself •  For example, P({1,2,3}) = {{}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}}
  • 25. The 5-Tuple •  The only change from a DFA is the transition function δ •  δ takes two inputs: –  A state from Q (the current state) –  A symbol from Σ∪{ε} (the next input, or ε for an ε-transition) •  δ produces one output: –  A subset of Q (the set of possible next states - since multiple transitions can happen in parallel!) An NFA M is a 5-tuple M = (Q, Σ, δ, q0, F), where: Q is the finite set of states Σ is the alphabet (that is, a finite set of symbols) δ ∈ (Q × (Σ∪{ε}) → P(Q) is the transition function q0 ∈ Q is the start state F ⊆ Q is the set of accepting states
  • 26. Example: •  Formally, M = (Q, Σ, δ, q0, F), where –  Q = {q0,q1,q2} –  Σ = {a,b} (we assume: it must contain at least a and b) –  F = {q2} –  δ(q0,a) = {q0,q1}, δ(q0,b) = {q0}, δ(q0,ε) = {q2}, δ(q1,a) = {}, δ(q1,b) = {q2}, δ(q1,ε) = {} δ(q2,a) = {}, δ(q2,b) = {}, δ(q2,ε) = {} •  The language defined is {a,b}* q0 q1 a q2 b ε a,b
  • 27. Outline •  5.1 Relaxing a Requirement •  5.2 Spontaneous Transitions •  5.3 Nondeterminism •  5.4 The 5-Tuple for an NFA •  5.5 The Language Accepted by an NFA
  • 28. The δ* Function •  The δ function gives 1-symbol moves •  We'll define δ* so it gives whole-string results (by applying zero or more δ moves) •  For DFAs, we used this recursive definition –  δ*(q,ε) = q –  δ*(q,xa) = δ(δ*(q,x),a) •  The intuition is similar for NFAs taking parallel transitions into account, but the ε-transitions add some technical difficulties
  • 29. NFA IDs •  An instantaneous description (ID) is a description of a point in an NFA's execution •  It is a pair (q,x) where –  q ∈ Q is the current state –  x ∈ Σ* is the unread part of the input •  Initially, an NFA processing a string x has the ID (q0,x) •  An accepting sequence of moves ends in an ID (f,ε) for some accepting state f ∈ F
  • 30. The One-Move Relation On IDs •  We write if I is an ID and J is an ID that could follow from I after one move of the NFA •  That is, for any string x ∈ Σ* and any a ∈ Σ or a = ε,€ I  J q,ax( )  r,x( ) if and only if r ∈ δ q,a( )
  • 31. The Zero-Or-More-Move Relation •  We write if there is a sequence of zero or more moves that starts with I and ends with J: •  Because it allows zero moves, it is a reflexive relation: for all IDs I, € I ∗ J € I    J I ∗ I
  • 32. The δ* Function •  Now we can define the δ* function for NFAs: •  Intuitively, δ*(q,x) is the set of all states the NFA might be in after starting in state q and reading x€ δ∗ q,x( ) = r q,x( ) ∗ r,ε( ){ }
  • 33. M Accepts x •  Now δ*(q,x) is the set of states M may end in, starting from state q and reading all of string x •  So δ*(q0,x) tells us whether M accepts x by computing all possible states by executing all possible transitions in parallel on the string x: A string x ∈ Σ* is accepted by an NFA M = (Q, Σ, δ, q0, F) if and only if the set δ*(q0, x) contains at least one element of F.
  • 34. For any NFA M = (Q, Σ, δ, q0, F), L(M) denotes the language accepted by M, which is L(M) = {x ∈ Σ* | δ*(q0, x) ∩ F ≠ {}}. The Language An NFA Defines
  • 35. Exercise •  Compute the results of the following transitions: –  δ*(q1,ε) –  δ*(q1,0110)
  • 36. Exercise •  Theorem: Let M be an NFA with a single accepting state, show how to construct the 5-tuple for a new NFA, say N, with L(N) = { xy | x∈ L(M) and y∈ L(M)}. Show that the language of construct NFA is indeed L(N) as specified. •  Proof Idea: The idea here is to make two copies of the NFA, linking the accepting state of the first to the start state of the second. The accepting state of the second copy becomes the only accepting state in the new machine.