33
Automata Theory CS411-2015F-04 Non-Determinisitic Finite Automata David Galles Department of Computer Science University of San Francisco

CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

Automata TheoryCS411-2015F-04

Non-Determinisitic Finite Automata

David Galles

Department of Computer Science

University of San Francisco

Page 2: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-0: Non-Determinism

A Deterministic Finite Automata’s transitionfunction has exactly one transition for eachstate/symbol pair

A Non-Deterministic Finite Automata can have 0, 1or more transitions for a single state/symbol pair

Example: L = {w ∈ {a, b} : w starts with a}

Regular expression?

Page 3: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-1: NFA Example

Example: L = {w ∈ {a, b} : w starts with a}

a(a+b)*

a0 1

a,b

Page 4: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-2: NFA Example

Example: L = {w ∈ {a, b} : w starts with a}

a(a+b)*

a0 1

a,b

What happens if a ’b’ is seen in state q0?

The machine “crashes”, and does not acceptthe string

Page 5: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-3: NFA Example

Example: L = {w ∈ {a, b} : w contains the

substring aa}

Regular Expression?

Page 6: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-4: NFA Example

Example: L = {w ∈ {a, b} : w contains the

substring aa}

(a+b)*aa(a+b)*

a0 2

a,b

1a

a,b

What happens if a a is seen in state q0?

Page 7: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-5: NFA Example

Example: L = {w ∈ {a, b} : w contains the

substring aa}

(a+b)*aa(a+b)*

a0 2

a,b

1a

a,b

What happens if a a is seen in state q0?

Stay in state q0, or go on to state q1Multiple Computational Paths (board example)

Page 8: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-6: NFA Example

Example: L = {w ∈ {a, b} : w contains the

substring aa}

a0 2

a,b

1a

a,b

(q0, abaa) (q0, baa) (q0,aa) (q0, a) (q0, ε) reject

(q1, baa) (q1, a)

(q1, ε)

(q2, ε)

crash

reject

reject

accept

Does this machine accept abaa?

Page 9: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-7: NFA Acceptance

If there is any computational path that accepts astring, then the machine accepts the string

Two ways to think about NFAs:

Magic “Oracle”, which always picks the correctpath to take

Try all possible paths

Page 10: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-8: NFA Example

Example: L = {w ∈ {a, b} : w contains the

substring aa}

a0 2

a,b

1a

a,b

If a string contains aa, will there be acomputational path that accepts it?

If a string does not contain aa, will there be acomputational path that accepts it?

Page 11: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-9: NFA Definition

Difference between a DFA and an NFA

DFA has exactly only transition for eachstate/symbol pairδ : (K × Σ) 7→ K

NFA has 0, 1 or more transitions for eachstate/symbol pair

Page 12: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-10: NFA Definition

Difference between a DFA and an NFA

DFA has exactly only transition for eachstate/symbol pair

Transition function: δ : (K × Σ) 7→ K

NFA has 0, 1 or more transitions for eachstate/symbol pair

Transition relation: ∆ ⊆ ((K × Σ)×K)

Page 13: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-11: NFA Definition

A NFA is a 5-tuple M = (K,Σ,∆, s, F )

K Set of states

Σ Alphabet

∆ : (K × Σ)×K is a Transition relation

s ∈ K Initial state

F ⊆ K Final states

Page 14: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-12: Fun with NFA

Create an NFA for:

All strings over {a, b} that start with a and end withb

Page 15: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-13: Fun with NFA

Create an NFA for:

All strings over {a, b} that start with a and end withb

a0

b1 3

a,b

(example compuational paths for ababb, abba, bbab)

Page 16: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-14: Fun with NFA

Create an NFA for:

All strings over {0, 1} that contian 0110 or 1001

Page 17: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-15: Fun with NFA

Create an NFA for:

All strings over {0, 1} that contian 0110 or 1001

0

1

3

0,11 1 1

1

01 1 1

0

0,1

1 1

0 0

Page 18: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-16: ǫ-Transitions

ǫ transition consumes no input

NFA (with ǫ transitions) for (ab)*(aab)*

1 1

a1 1 1

a

a

b

b

ε

Page 19: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-17: ǫ-Transitions

Create an NFA (with ǫ-transitions) for:

All strings over {a, b, c} that are missing at leastone letter. For example, aabba, cbbc, ccacc ∈ L,while abbc 6∈ L

Page 20: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-18: ǫ-Transitions

Create an NFA (with ǫ-transitions) for:

All strings over {a, b, c} that are missing at leastone letter. For example, aabba, cbbc, ccacc ∈ L,while abbc 6∈ L

2

0

b,c

1

a,b

3

a,c

ε ε ε

abcb, bbab, abbab, abc

Page 21: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-19: Yet More Formalism

ǫ-closure

ǫ-closure(q) = set of all states that can bereached following zero or more ǫ-transitionsfrom state q.

Page 22: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-20: ǫ-closure

ǫ-closure examples

0

6

1 2

3 4 5

ε

ε

εε

εa cb

a

a

b

(quick review: What is L[M]?)

Page 23: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-21: ǫ-closure

ǫ-closure examples

0

6

1 2

3 4 5

ε

ε

εε

εa cb

a

a

b

L[M] = {a, aa, ba, ca, aba}

Page 24: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-22: ǫ-closure

ǫ-closure examples

0

6

1 2

3 4 5

ε

ε

εε

εa cb

a

a

b

ǫ-closure(q0) =

ǫ-closure(q3) =

ǫ-closure(q2) =

ǫ-closure(q5) =

Page 25: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-23: ǫ-closure

ǫ-closure examples

0

6

1 2

3 4 5

ε

ε

εε

εa cb

a

a

b

ǫ-closure(q0) = {q0, q1, q4, q5}

ǫ-closure(q3) = {q3, q4, q5}

ǫ-closure(q2) = {q2, q6}

ǫ-closure(q5) = {q5}

Page 26: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-24: ǫ-closure – Sets

ǫ-closure

ǫ-closure(q) = set of all states that can bereached following zero or more ǫ-transitionsfrom state q.

Can extend ǫ-closure to a set of states

ǫ-closure(S) =⋃{A : q ∈ S ∧ ǫ-closure(q) = A}

Page 27: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-25: NFA Definition (revised)

A NFA is a 5-tuple M = (K,Σ,∆, s, F )

K Set of states

Σ Alphabet

∆ : (K × (Σ ∪ {ǫ}))×K is a Transition relation

s ∈ K Initial state

F ⊆ K Final states

Page 28: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-26: NFA ⊢M

Binary relation ⊢M : What machine M yields in onestep

⊢M⊆ (K × Σ∗)× (K × Σ∗)

⊢M= {((q1, aw), (q2, w)) : q1, q2 ∈ KM , w ∈Σ∗

M, a ∈ ΣM ∪ {ǫ}, ((q1, a), q2) ∈ ∆M}

Binary relation ⊢∗

M: Transitive, reflexive closure of

⊢M

Page 29: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-27: NFA Languages

L[M ] – Language defined by NFA M

L[M ] = {w : (sM , w) ⊢∗

M(f, ǫ) for some

f ∈ FM∗}

LNFA = {L : ∃NFA M,L[M ] = L}

Page 30: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-28: NFA Examples

Create an NFA for the language

Give an NFA for the language L = All stringsover {0,1} that contain two pairs of adjacent 0’sseparated by an even number of symbols. So,0100110011, 01100101100101, and 01001000are in the language, but 0100100, 1011001,and 0111011 are not in the language.

Page 31: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-29: NFA Examples

Create an NFA for the language

Give an NFA for the language L = All stringsover {0,1} that contain two pairs of adjacent 0’sseparated by an even number of symbols. So,0100110011, 01100101100101, and 01001000are in the language, but 0100100, 1011001,and 0111011 are not in the language.

0,1

0 0 0 0

0,1

0,1 0,1

Page 32: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-30: NFA Examples

Create an NFA for the language

L = All strings over {a,b} that have an a as oneof the last 3 charaters in the string. So, a, baab,bbbab, aabbaaabb ∈ L, but bb, baabbb,bbabbbbb 6∈ L

Page 33: CS411-2015F-04 Non-Determinisitic Finite Automatagalles/cs411/lecture/lecture4.pdf · 2015-09-09 · 04-28: NFA Examples Create an NFA for the language Give an NFA for the language

04-31: NFA Examples

Create an NFA for the language

L = All strings over {a,b} that have an a as oneof the last 3 charaters in the string. So, a, baab,bbbab, aabbaaabb ∈ L, but bb, baabbb,bbabbbbb 6∈ L

a,b

a b b