16
1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review Languages and Grammars Alphabets, strings, languages Regular Languages Deterministic Finite and Nondeterministic Automata Equivalence of NFA and DFA Regular Expressions Regular Grammars Properties of Regular Languages Languages that are not regular and the pumping lemma Context Free Languages Context Free Grammars – Derivations: leftmost, rightmost and derivation trees Parsing and ambiguity Simplifying Grammars and Normal Forms Today: Nondeterministic Pushdown Automata Pushdown Automata PDAs Pushdown Automaton -- PDA Input String Stack States

Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

Embed Size (px)

Citation preview

Page 1: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

1

CS 301 - Lecture 11 Nondeterministic Pushdown

Automata Fall 2008

Review •  Languages and Grammars

–  Alphabets, strings, languages •  Regular Languages

–  Deterministic Finite and Nondeterministic Automata –  Equivalence of NFA and DFA –  Regular Expressions –  Regular Grammars –  Properties of Regular Languages –  Languages that are not regular and the pumping lemma

•  Context Free Languages –  Context Free Grammars –  Derivations: leftmost, rightmost and derivation trees –  Parsing and ambiguity –  Simplifying Grammars and Normal Forms

•  Today: –  Nondeterministic Pushdown Automata

Pushdown Automata PDAs

Pushdown Automaton -- PDA Input String

Stack

States

Page 2: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

2

The States

q1 q2a, b→ c

Input symbol

Pop symbol

Push symbol

q1 q2a, b→ c

a

b top

input

stack

a

Replace eh

$eh

$

c

q1 q2a, λ → c

a a

Push b

eh

$eh

$

bc

top

input

stack

q1 q2a, b→ λ

a a

Pop b

eh

$eh

$

top

input

stack

Page 3: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

3

q1 q2a, λ → λ

a a

No Change b

eh

$eh

$

btop

input

stack

q1 q2λ→$,a

a a

Pop $ top

input

stack

A Possible Transition

empty

q1 q2cba →,

a

input

A Bad Transition

The automaton Halts in state and Rejects the input string

Empty stack

q1

HALT

q1 q2ca →λ,

a

input

A Bad Transition

The automaton Halts in state and Rejects the input string

Empty stack

q1

HALT

Page 4: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

4

q1 q2zyx →,

No transition is allowed to be followed When the stack is empty

Empty stack

q1 q2ba →$,

a a

Pop $ top

input

stack

A Good Transition

b

Non-Determinism

q1

q2a, b→ c

q3a, b→ c

q1 q2λ, b→ c

transition−λ

These are allowed transitions in a Non-deterministic PDA (NPDA)

NPDA: Non-Deterministic PDA

Example:

λ, λ → λ

a, λ → a

b, a→ λq0 q1 q2 q3

b, a→ λ

λ, $→ $

Page 5: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

5

a, λ → a

b, a→ λ0q q1 q2 q3

Execution Example: Input

a a a b b b

current state

b, a→ λ

Time 0

λ, λ → λ λ, $→ $

Stack $

a, λ → a

b, a→ λq0 q1 q2 q3

Input

a a a b b b

b, a→ λ

Time 1

λ, λ → λ λ, $→ $

Stack $

a, λ → a

b, a→ λq0 q1 q2 q3

Input

Stack

a a a b b b$a

b, a→ λ

Time 2

λ, λ → λ λ, $→ $

a, λ → a

b, a→ λq0 q1 q2 q3

Input

Stack

a a a b b b$aa

b, a→ λ

Time 3

λ, λ → λ λ, $→ $

Page 6: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

6

a, λ → a

b, a→ λq0 q1 q2 q3

Input

Stack

a a a b b b

$aaa

b, a→ λ

Time 4

λ, λ → λ λ, $→ $

a, λ → a

b, a→ λq0 q1 q2 q3

Input

a a a b b b

Stack

$aaa

b, a→ λ

Time 5

λ, λ → λ λ, $→ $

a, λ → a

b, a→ λq0 q1 q2 q3

Input

a a a b b b$a

Stack

b, a→ λ

Time 6

λ, λ → λ λ, $→ $

a

a, λ → a

b, a→ λq0 q1 q2 q3

Input

a a a b b b$

Stack

b, a→ λ

Time 7

λ, λ → λ λ, $→ $

a

Page 7: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

7

a, λ → a

b, a→ λq0 q1 q2 q3

Input

a a a b b b

b, a→ λ

Time 8

accept λ, λ → λ λ, $→ $

$Stack

A string is accepted if there is a computation such that:

All the input is consumed AND The last state is a final state

At the end of the computation, we do not care about the stack contents

The input string is accepted by the NPDA:

aaabbb

a, λ → a

b, a→ λq0 q1 q2 q3

b, a→ λ

λ, λ → λ λ, $→ $

}0:{ ≥= nbaL nn

is the language accepted by the NPDA:

a, λ → a

b, a→ λq0 q1 q2 q3

b, a→ λ

In general,

λ, λ → λ λ, $→ $

Page 8: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

8

Another NPDA example

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

NPDA M

}{)( RwwML =

Execution Example:

Input Time 0

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

a ab b

Input

a ab

Time 1

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

ab

Input Time 2

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

aa ab bb

Page 9: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

9

Input Time 3

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

aa ab bb

Guess the middle of string

Input Time 4

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

aa ab bb

Input Time 5

Stack

$

λ, $→ $1q q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

a ab b a

Input Time 6

Stack

$

λ, $→ $q1

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

a ab b

accept q2

Page 10: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

10

Rejection Example:

Input Time 0

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

a b b b

Input Time 1

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

aa b b b

Input Time 2

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

ab

a b b b

Input Time 3

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

ab

Guess the middle of string

a b b b

Page 11: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

11

Input Time 4

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

ab

a b b b

Input Time 5

Stack

$

λ, $→ $1q q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

aa b b b

There is no possible transition.

Input is not consumed

Another computation on same string:

Input Time 0

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

a b b b

Input Time 1

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

aa b b b

Page 12: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

12

Input Time 2

Stack

$

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

ab

a b b b

Input Time 3

Stack

$ab

a b b b

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

b

Input Time 4

Stack

a b b b

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

$abbb

Input Time 5

Stack

a b b b

$abbb

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

No final state is reached

Page 13: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

13

λ, $→ $q1 q2

bbaa

λ

λ

,,

λ, λ → λq0

λ

λ

bbaa,,

There is no computation that accepts string abbb

)(MLabbb∉

A string is rejected if there is no computation such that:

All the input is consumed AND The last state is a final state

At the end of the computation, we do not care about the stack contents

In other words, a string is rejected if in every computation with this string:

The input cannot be consumed OR

The input is consumed and the last state is not a final state

OR The stack head moves below the bottom of the stack

Another NPDA example

q0

NPDA M}1:{)( −≥= mnbaML mn

λ

λ

λ

$,,,

bab

aa

This NPDA generates:

and for each substring u

Page 14: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

14

Execution Example:

Input Time 0

Stack

a a b

λ

λ

λ

$,,,

bab

aa

q0

$

Input Time 1

Stack

a a b

q0

a$

λ

λ

λ

$,,,

bab

aa

Input Time 2

Stack

a a b

q0

aa

$

λ

λ

λ

$,,,

bab

aa

Input Time 3

Stack

a a b

q0

a

accept

$

λ

λ

λ

$,,,

bab

aa

Page 15: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

15

Rejection example:

Input Time 0

Stack

a b b

q0

b$

Input Time 1

Stack

q0

aa b b b$

λ

λ

λ

$,,,

bab

aa

Input Time 2

Stack

q0

a b b b$

λ

λ

λ

$,,,

bab

aa

Input Time 3

Stack

q0

a b b b

λ

λ

λ

$,,,

bab

aa

Page 16: Pushdown Automaton -- PDA - Colorado State Universitymassey/Teaching/cs301/RestrictedAccess/Slides/... · 1 CS 301 - Lecture 11 Nondeterministic Pushdown Automata Fall 2008 Review

16

Input Time 4

Stack

q0Halt and Reject

a b b b

λ

λ

λ

$,,,

bab

aa

Pushing Strings

q1 q2a, b→ w

Input symbol

Pop symbol

Push string

q1 q2a, b→ cdf

a

b top

input

stack

a

Push eh h

e

cdf

pushed string

Example:

$ $

What’s Next •  Read

–  Linz Chapter 1,2.1, 2.2, 2.3, (skip 2.4), 3, 4, 5, 6.1, 6.2, (skip 6.3), 7.1, and 7.2

–  JFLAP Chapter 1, 2.1, (skip 2.2), 3, 4, 5, 6, 7 •  Next Lecture Topics from Chapter 7.2

–  Pushdown Automata and Context Free Grammars •  Quiz 2 in Recitation on Wednesday 10/1

–  Covers Linz 3, 4 and JFLAP 3, 4 –  Closed book, but you may bring one sheet of 8.5 x 11 inch paper with any

notes you like. –  Quiz will take the full hour

•  Homework –  Homework Due Thursday