# NFAs and DFAs Sipser 1.2 (pages 47-63).

## Presentation on theme: "NFAs and DFAs Sipser 1.2 (pages 47-63)."— Presentation transcript:

NFAs and DFAs Sipser 1.2 (pages 47-63)

Last time…

NFA A nondeterministic finite automaton (NFA) is a 5-tuple (Q, Σ, δ, q0, F), where Q is a finite set called the states Σ is a finite set called the alphabet δ: Q × Σε → P(Q) is the transition function q0∈Q is the start state F⊆Q is a set of accept states In-class exercise:

NFA computation Let N=(Q, Σ, δ, q0, F) be a NFA and let
w be a string over the alphabet Σ Then N accepts w if w can be written as w1w2w3…wm with each wi∈Σε and There exists a sequence of states s0,s1,s2,…,sm exists in Q with the following conditions: s0=q0 si+1∈δ(si,wi+1) for i = 0,…,m-1 sn∈F

One last operation

Kleene star operation Let A be a language.
The Kleene star operation is A* = {x1x2…xk | k ≥ 0 and each xi ∈ A} Exercise A = {w | w is a string of 0s and 1s containing an odd number of 1s} B = {w | w is a string of 0s and 1s containing an even number of 1s} C = {0,1} What are A*, B*, and C*?

Clay Knee? Kleene pronounced his last name klay'nee. His son, Ken Kleene, wrote: "As far as I am aware this pronunciation is incorrect in all known languages. I believe that this novel pronunciation was invented by my father." Dr. "Clay Knee" must have been a geek of the first water, to be sure! - From

Kleene star Theorem: The class of languages recognized by NFAs is closed under the Kleene star operation.

If only… … somebody would prove that the class of languages recognized by NFAs and the class of languages recognized by DFAs were equal…

Then… We’d have: The class of regular languages is closed under:
Concatenation Kleene star

a cute proof for closure under union!
And… a cute proof for closure under union!

We can be that somebody! Theorem: A language is regular if and only if there exists an NFA that recognizes it. Proof: (⇒) Let A be a regular language…

Then there exists a DFA M
M is a 5-tuple (Q, Σ, δM, q0, F), where Q is a finite set called the states Σ is a finite set called the alphabet δ: Q × Σ → Q is the transition function q0∈Q is the start state F⊆Q is a set of accept states

We need to show there exists an NFA N
N is a 5-tuple (Q, Σ, δN, q0, F), where Q is a finite set called the states Σ is a finite set called the alphabet δ: Q × Σε → P(Q) is the transition function q0∈Q is the start state F⊆Q is a set of accept states Can we define N from M?

Now the other way! Theorem: A language is regular if and only if there exists an NFA that recognizes it. Proof: (⇒) Let A be a language accepted by NFA N = (Q, Σ, δ, q0, F)

Equivalent machines Definition: Two machines are equivalent if they recognize the same language Let’s prove: Theorem: Every NFA has an equivalent DFA.

Remember…

A simpler example

Removing choice Proof: Let A be a language accepted by NFA
N = (Q, Σ, δ, q0, F) We construct a DFA M=(Q’, Σ, δ’, q0’, F’) recognizing A Q’ = P(Q) For R∈Q' and a∈Σ, define δ'(R,a) = ∪ δ(r,a) q0’ = {q0} F’ = { R∈Q’ | R contains an accept state from F} r∈R

Okay, but what about ε arrows?

Modifying our construction
Proof: Let A be a language accepted by NFA N = (Q, Σ, δ, q0, F) We construct a DFA M=(Q’, Σ, δ’, q0’, F’) recognizing A Q’ = P(Q) For R∈Q' and a∈Σ, define δ'(R,a) = ∪ E(δ(r,a)) where E(R) = {q | q can be reached from R along 0 or more ε arrows} q0’ = E({q0}) F’ = { R∈Q’ | R contains an accept state from F} r∈R
{"found_math": false, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0}