# Finite Automata (contd) - Cornell · PDF file 2014-10-23 · Non-deterministic...

date post

12-Mar-2020Category

## Documents

view

3download

0

Embed Size (px)

### Transcript of Finite Automata (contd) - Cornell · PDF file 2014-10-23 · Non-deterministic...

Finite Automata (contd)

CS 2800: Discrete Structures, Fall 2014

Sid Chaudhuri

Recap: Deterministic Finite Automaton ● A DFA is a 5-tuple M = (Q, Σ, δ, q0, F)

– Q is a fnite set of states – Σ is a fnite input alphabet (e.g. {0, 1}) – δ is a transition function δ : Q × Σ → Q – q0 ∈ Q is the start/initial state

– F ⊆ Q is the set of fnal/accepting states

Yes No 1

1 00

A non-deterministic fnite automaton

q0 1 0,10,1 q1 0,1q2

A non-deterministic fnite automaton

q0 1 0,10,1 q1 0,1q2

Different transitions from q0 on input 1

A non-deterministic fnite automaton

q0 1 0,10,1 q1 0,1q2

An NFA accepts a string x if it can get to an accepting state on input x

Different transitions from q0 on input 1

A non-deterministic fnite automaton

q0 1 0,10,1 q1 0,1q2

What language does this automaton accept?

A non-deterministic fnite automaton

q0 1 0,10,1 q1 0,1q2

Answer: All strings ending with 1

Another NFA

q0 1 0,10,1 q2 0,1q3

What language does this automaton accept?

q1 0,1

Another NFA

q0 1 0,10,1 q2 0,1q3

Answer: All strings with 1 in the penultimate place

q1 0,1

Non-deterministic Finite Automaton ● An NFA is a 5-tuple M = (Q, Σ, δ, q0, F)

Non-deterministic Finite Automaton ● An NFA is a 5-tuple M = (Q, Σ, δ, q0, F)

– Q is a fnite set of states

q0 q1 q2 q3

Non-deterministic Finite Automaton ● An NFA is a 5-tuple M = (Q, Σ, δ, q0, F)

– Q is a fnite set of states – Σ is a fnite input alphabet (e.g. {0, 1})

q0 q1 q2 q3

0,1

Non-deterministic Finite Automaton ● An NFA is a 5-tuple M = (Q, Σ, δ, q0, F)

– Q is a fnite set of states – Σ is a fnite input alphabet (e.g. {0, 1}) – δ is a transition function δ : Q × Σ → 2Q

q0 q1 1 0,10,1 q2 0,1q3

0,1

Non-deterministic Finite Automaton ● An NFA is a 5-tuple M = (Q, Σ, δ, q0, F)

– Q is a fnite set of states – Σ is a fnite input alphabet (e.g. {0, 1}) – δ is a transition function δ : Q × Σ → 2Q

q0 q1 1 0,10,1 q2 0,1q3

Only change from DFAs

0,1

Non-deterministic Finite Automaton ● An NFA is a 5-tuple M = (Q, Σ, δ, q0, F)

– Q is a fnite set of states – Σ is a fnite input alphabet (e.g. {0, 1}) – δ is a transition function δ : Q × Σ → 2Q

– q0 ∈ Q is the start/initial state

q0 q1 1 0,10,1 q2 0,1q3

Only change from DFAs

0,1

Non-deterministic Finite Automaton ● An NFA is a 5-tuple M = (Q, Σ, δ, q0, F)

– q0 ∈ Q is the start/initial state

– F ⊆ Q is the set of fnal/accepting states

q0 q1 1 0,10,1 q2 0,1q3

Only change from DFAs

Non-deterministic Finite Automaton

● An NFA accepts a string x if it can get to an accepting state on input x

Non-deterministic Finite Automaton

● An NFA accepts a string x if it can get to an accepting state on input x – Think of it as trying many options at once, and hoping

one path gets lucky

Non-deterministic Finite Automaton

● An NFA accepts a string x if it can get to an accepting state on input x – Think of it as trying many options at once, and hoping

one path gets lucky

● A transition f (state, symbol) ↦ ∅ (the empty set) is possible

Non-deterministic Finite Automaton

● An NFA accepts a string x if it can get to an accepting state on input x – Think of it as trying many options at once, and hoping

one path gets lucky

● A transition f (state, symbol) ↦ ∅ (the empty set) is possible – … in this case, the NFA treats this as a rejecting path

(the string may still reach an accepting state by another path)

Non-deterministic Finite Automaton

one path gets lucky

● A transition f (state, symbol) ↦ ∅ (the empty set) is possible – … in this case, the NFA treats this as a rejecting path

(the string may still reach an accepting state by another path)

– A convenient shortcut for our “hell/black-hole” state

Non-deterministic Finite Automaton

● Every DFA is an NFA

Non-deterministic Finite Automaton

● Every DFA is an NFA – If we're strict with our notation, we need to replace the

transition f (state1, symbol) ↦ state2 with f (state1, symbol) ↦ {state2}

Non-deterministic Finite Automaton

● Every DFA is an NFA – If we're strict with our notation, we need to replace the

transition f (state1, symbol) ↦ state2 with f (state1, symbol) ↦ {state2}

● Every NFA can be simulated by a DFA

Non-deterministic Finite Automaton

● Every DFA is an NFA – If we're strict with our notation, we need to replace the

transition f (state1, symbol) ↦ state2 with f (state1, symbol) ↦ {state2}

● Every NFA can be simulated by a DFA – … i.e. they accept exactly the same language

Non-deterministic Finite Automaton

● Every DFA is an NFA – If we're strict with our notation, we need to replace the

transition f (state1, symbol) ↦ state2 with f (state1, symbol) ↦ {state2}

● Every NFA can be simulated by a DFA – … i.e. they accept exactly the same language – Exponential blowup: if the NFA has n states, the DFA

can require up to 2n states

Thought for the Day #1

Find an NFA with n states that can't be simulated by a DFA with less than 2n states

Every NFA can be simulated by a DFA

Every NFA can be simulated by a DFA

p

q

r a

a

NFA (fragment)

Every NFA can be simulated by a DFA

p

q

r a

a

{p} {q, r} a

DFA (fragment)NFA (fragment)

Every NFA can be simulated by a DFA

p

q

r a

a

{p} {q, r} a

“Subset construction”

NFA (fragment)

DFA (fragment)

(This is merely illustrative – formal construction on following slides)

Every NFA can be simulated by a DFA

NFA Equivalent DFA

Specifcation

States

Alphabet

Transition Function

Initial State

Accepting States

Every NFA can be simulated by a DFA

NFA Equivalent DFA

Specifcation (Q, Σ, δ, q0, F) (2Q, Σ, δ', q'0, F')

States

Alphabet

Transition Function

Initial State

Accepting States

Every NFA can be simulated by a DFA

NFA Equivalent DFA

Specifcation (Q, Σ, δ, q0, F) (2Q, Σ, δ', q'0, F')

States Q 2Q

Alphabet

Transition Function

Initial State

Accepting States

Every NFA can be simulated by a DFA

NFA Equivalent DFA

Specifcation (Q, Σ, δ, q0, F) (2Q, Σ, δ', q'0, F')

States Q 2Q

Alphabet Σ Σ

Transition Function

Initial State

Accepting States

Every NFA can be simulated by a DFA

NFA Equivalent DFA

Specifcation (Q, Σ, δ, q0, F) (2Q, Σ, δ', q'0, F')

States Q 2Q

Alphabet Σ Σ

Transition Function δ δ'(S, a) = ∪s ∈ S δ(s, a) Initial State

Accepting States

Every NFA can be simulated by a DFA

NFA Equivalent DFA

Specifcation (Q, Σ, δ, q0, F) (2Q, Σ, δ', q'0, F')

States Q 2Q

Alphabet Σ Σ

Transition Function δ δ'(S, a) = ∪s ∈ S δ(s, a) Initial State q0 q'0 = {q0}

Accepting States

Every NFA can be simulated by a DFA

NFA Equivalent DFA

Specifcation (Q, Σ, δ, q0, F) (2Q, Σ, δ', q'0, F')

States Q 2Q

Alphabet Σ Σ

Transition Function δ δ'(S, a) = ∪s ∈ S δ(s, a) Initial State q0 q'0 = {q0}

Accepting States F F' = {S ∈ 2Q | S ∩ F ≠ ∅}

Why NFAs?

Why NFAs?

● They can be way more compact than DFAs

Why NFAs?

● They can be way more compact than DFAs

0,1

q0 q1 1

0,1

q3 q20,1

NFA

Why NFAs?

● They can be way more compact than DFAs

q000 q001 q010 q011

q100 q101 q110 q111

0 1 0

00

0 0

0

0

1

1

1

1

1

1

1

0,1

q0 q1 1

0,1

q3 q20,1

NFA Equivalent minimal DFA

Why NFAs?

● They can be way more compact than DFAs

● It's easier to directly convert regular expressions (“wildcard search”

*View more*