fall 2005costas busch - rpi1 pushdown automata pdas

90
Fall 2005 Costas Busch - RPI 1 Pushdown Automata PDAs

Post on 22-Dec-2015

223 views

Category:

Documents


1 download

TRANSCRIPT

Fall 2005 Costas Busch - RPI 1

Pushdown AutomataPDAs

Fall 2005 Costas Busch - RPI 2

Pushdown Automaton -- PDA

Input String

Stack

States

Fall 2005 Costas Busch - RPI 3

Initial Stack Symbol

Stack

$

Stack

z

bottomspecial symbol

stackhead

top

Appears at time 0

Fall 2005 Costas Busch - RPI 4

The States

q1 q2a, b c

Inputsymbol

Popsymbol

Pushsymbol

Fall 2005 Costas Busch - RPI 5

q1 q2a, b c

a

b top

input

stack

a

Replaceeh

$eh

$

c

Fall 2005 Costas Busch - RPI 6

q1 q2a, c

a a

Pushb

eh

$eh

$

bc

top

input

stack

Fall 2005 Costas Busch - RPI 7

q1 q2a, b

a a

Popb

eh

$eh

$

top

input

stack

Fall 2005 Costas Busch - RPI 8

q1 q2a,

a a

No Changeb

eh

$eh

$

btop

input

stack

Fall 2005 Costas Busch - RPI 9

q1 q2$,a

a a

Pop$ top

input

stack

Empty Stack

empty

When the stack gets empty,the automaton HALTS(no more transitions after ) q2

Fall 2005 Costas Busch - RPI 10

q1 q2ba $,

a a

Pop$ top

input

stack

A Possible Transition

b

Fall 2005 Costas Busch - RPI 11

Non-Determinism

q1

q2a, b c

q3a, b c

q1 q2, b c

transition

PDAs are non-deterministic

Allowed non-deterministic transitions

Fall 2005 Costas Busch - RPI 12

Example PDA

,

a, a

b, a q0 q1 q2 q3

b, a

, $ $

PDA : M }0:{)( nbaML nn

Fall 2005 Costas Busch - RPI 13

,

a, a

b, a q0 q1 q2 q3

b, a

, $ $

}0:{)( nbaML nn

Basic Idea:

1. Push the a’s on the stack

2. Match the b’s on input with a’s on stack

3. Match found

Fall 2005 Costas Busch - RPI 14

a, a

b, a 0q q1 q2 q3

Execution Example:

Input

a a a b b b

currentstate

b, a

Time 0

, , $ $

Stack

$

Fall 2005 Costas Busch - RPI 15

a, a

b, a q0 q1 q2 q3

Input

a a a b b b

b, a

Time 1

, , $ $

Stack

$

Fall 2005 Costas Busch - RPI 16

a, a

b, a q0 q1 q2 q3

Input

Stack

a a a b b b

$

a

b, a

Time 2

, , $ $

Fall 2005 Costas Busch - RPI 17

a, a

b, a q0 q1 q2 q3

Input

Stack

a a a b b b$

aa

b, a

Time 3

, , $ $

Fall 2005 Costas Busch - RPI 18

a, a

b, a q0 q1 q2 q3

Input

Stack

a a a b b b

$

aaa

b, a

Time 4

, , $ $

Fall 2005 Costas Busch - RPI 19

a, a

b, a q0 q1 q2 q3

Input

a a a b b b

Stack

$

aaa

b, a

Time 5

, , $ $

Fall 2005 Costas Busch - RPI 20

a, a

b, a q0 q1 q2 q3

Input

a a a b b b$

a

Stack

b, a

Time 6

, , $ $

a

Fall 2005 Costas Busch - RPI 21

a, a

b, a q0 q1 q2 q3

Input

a a a b b b$

Stack

b, a

Time 7

, , $ $

a

Fall 2005 Costas Busch - RPI 22

a, a

b, a q0 q1 q2 q3

Input

a a a b b b

b, a

Time 8

accept, , $ $

$

Stack

Fall 2005 Costas Busch - RPI 23

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

All the input is consumed AND The last state is an accepting state

At the end of the computation,we do not care about the stack contents(the stack can be empty at the last state)

Fall 2005 Costas Busch - RPI 24

The input stringis accepted by the PDA:

aaabbb

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

Fall 2005 Costas Busch - RPI 25

}0:{ nbaL nn

is the language accepted by the PDA:

a, a

b, a q0 q1 q2 q3

b, a

In general,

, , $ $

Fall 2005 Costas Busch - RPI 26

0q

a, a

b, a q1 q2 q3

Rejection Example:

Input

a a b

currentstate

b, a

Time 0

, , $ $

Stack

$

Fall 2005 Costas Busch - RPI 27

0q

a, a

b, a q1 q2 q3

Rejection Example:

Input

a a b

currentstate

b, a

Time 1

, , $ $

Stack

$

Fall 2005 Costas Busch - RPI 28

0q

a, a

b, a q1 q2 q3

Rejection Example:

Input

a a b

currentstate

b, a

Time 2

, , $ $

Stack

$

a

Fall 2005 Costas Busch - RPI 29

0q

a, a

b, a q1 q2 q3

Rejection Example:

Input

a a b

currentstate

b, a

Time 3

, , $ $

Stack

$

aa

Fall 2005 Costas Busch - RPI 30

0q

a, a

b, a q1 q2 q3

Rejection Example:

Input

a a b

currentstate

b, a

Time 4

, , $ $

Stack

$

aa

Fall 2005 Costas Busch - RPI 31

0q

a, a

b, a q1 q2 q3

Rejection Example:

Input

a a b

currentstate

b, a

Time 4

, , $ $

Stack

$

aa

reject

Fall 2005 Costas Busch - RPI 32

The input stringis rejected by the PDA:

aab

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

Fall 2005 Costas Busch - RPI 33

A string is rejected if there is

no computation such that:

All the input is consumed AND The last state is an accept state

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

Fall 2005 Costas Busch - RPI 34

Another PDA example

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

PDA : M }},{:{)( bavvvML R

Fall 2005 Costas Busch - RPI 35

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

}},{:{)( bavvvML RBasic Idea:

1. Push v on stack

2. Guess middle of input

3. Match on input with v on stack

Rv

4. Match found

Fall 2005 Costas Busch - RPI 36

Execution Example:

Input

Time 0

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

a ab b

Fall 2005 Costas Busch - RPI 37

Input

a ab

Time 1

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

ab

Fall 2005 Costas Busch - RPI 38

Input

Time 2

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

aa ab b

b

Fall 2005 Costas Busch - RPI 39

Input

Time 3

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

aa ab b

b

Guess the middle of string

Fall 2005 Costas Busch - RPI 40

Input

Time 4

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

aa ab b

b

Fall 2005 Costas Busch - RPI 41

Input

Time 5

Stack

$

, $ $1q q2

bb

aa

,

,

, q0

bb

aa

,

,

a ab b a

Fall 2005 Costas Busch - RPI 42

Input

Time 6

Stack

$

, $ $q1

bb

aa

,

,

, q0

bb

aa

,

,

a ab b

accept

q2

Fall 2005 Costas Busch - RPI 43

Rejection Example:

Input

Time 0

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

a b b b

Fall 2005 Costas Busch - RPI 44

Input

Time 1

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

aa b b b

Fall 2005 Costas Busch - RPI 45

Input

Time 2

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

ab

a b b b

Fall 2005 Costas Busch - RPI 46

Input

Time 3

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

ab

Guess the middle of string

a b b b

Fall 2005 Costas Busch - RPI 47

Input

Time 4

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

ab

a b b b

Fall 2005 Costas Busch - RPI 48

Input

Time 5

Stack

$

, $ $1q q2

bb

aa

,

,

, q0

bb

aa

,

,

aa b b b

There is no possible transition.

Input is not consumed

Fall 2005 Costas Busch - RPI 49

Another computation on same string:

Input Time 0

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

a b b b

Fall 2005 Costas Busch - RPI 50

Input

Time 1

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

aa b b b

Fall 2005 Costas Busch - RPI 51

Input

Time 2

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

ab

a b b b

Fall 2005 Costas Busch - RPI 52

Input

Time 3

Stack

$ab

a b b b

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

b

Fall 2005 Costas Busch - RPI 53

Input

Time 4

Stack

a b b b

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

$abbb

Fall 2005 Costas Busch - RPI 54

Input

Time 5

Stack

a b b b

$abbb

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

No final state is reached

Fall 2005 Costas Busch - RPI 55

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

There is no computation that accepts string abbb

)(MLabbb

Fall 2005 Costas Busch - RPI 56

Another PDA example

q0

PDA M

}1)()( ,prefix every in :},{{)( * vnvnvbawML ba

$,

,

,

b

ab

aa

Fall 2005 Costas Busch - RPI 57

Execution Example:

Input

Time 0

Stack

a a b

q0

$

$,

,

,

b

ab

aa

Fall 2005 Costas Busch - RPI 58

Input

Time 1

Stack

a a b

q0

a

$

$,

,

,

b

ab

aa

Fall 2005 Costas Busch - RPI 59

Input

Time 2

Stack

a a b

q0

aa

$

$,

,

,

b

ab

aa

Fall 2005 Costas Busch - RPI 60

Input

Time 3

Stack

a a b

q0

a

accept

$

$,

,

,

b

ab

aa

Fall 2005 Costas Busch - RPI 61

Rejection example:

Input

Time 0

Stack

a b b

q0

b

$

$,

,

,

b

ab

aa

Fall 2005 Costas Busch - RPI 62

Input

Time 1

Stack

q0

aa b b b

$

$,

,

,

b

ab

aa

Fall 2005 Costas Busch - RPI 63

Input

Time 2

Stack

q0

a b b b

$

$,

,

,

b

ab

aa

Fall 2005 Costas Busch - RPI 64

Input

Time 3

Stack

q0

a b b b

$,

,

,

b

ab

aa

Fall 2005 Costas Busch - RPI 65

Input

Time 4

Stack

q0

Halt and Reject

a b b b

$,

,

,

b

ab

aa

Fall 2005 Costas Busch - RPI 66

Pushing Strings

q1 q2a, b w

Inputsymbol

Popsymbol

Pushstring

Fall 2005 Costas Busch - RPI 67

q1 q2a, b cdf

a

b top

input

stack

a

Push

eh h

e

cdf

pushedstring

Example:

$ $

Fall 2005 Costas Busch - RPI 68

Another PDA example

$$, q1 q2

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

PDA M

)}()(:},{{)( * wnwnbawML ba

Fall 2005 Costas Busch - RPI 69

Time 0

Input

a ab b b

currentstate

a

$

Stack

$$, q1 q2

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

Execution Example:

Fall 2005 Costas Busch - RPI 70

Time 1

Input

a ab b b a

$

Stack

0

$$, q1 q2

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

Fall 2005 Costas Busch - RPI 71

Time 3

Input

a bb b a

$

Stack

a

$

$$, q1 q2

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

0

Fall 2005 Costas Busch - RPI 72

Time 4

Input

a bb b a

$

Stack

a

1

$$, q1 q2

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

Fall 2005 Costas Busch - RPI 73

Time 5

Input

a bb b a

$

Stack

a

11

$$, q1 q2

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

Fall 2005 Costas Busch - RPI 74

Time 6

Input

a bb b a

$

Stack

a

1

$$, q1 q2

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

1

Fall 2005 Costas Busch - RPI 75

Time 7

Input

a bb b a

$

Stack

a

1

$$, q1 q2

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

Fall 2005 Costas Busch - RPI 76

Time 8

Input

a bb b a a

$

Stack

$$, q1 q2

a, $ 0$a, 0 00a,1

b, $ 1$b, 1 11b, 0

accept

Fall 2005 Costas Busch - RPI 77

Formalities for PDAs

Fall 2005 Costas Busch - RPI 78

q1 q2a, b w

)},{(),,( 21 wqbaq

Transition function:

Fall 2005 Costas Busch - RPI 79

q1

q2wba ,

q3wba ,

)},(),,{(),,( 321 wqwqbaq

Transition function:

Fall 2005 Costas Busch - RPI 80

Formal Definition

Pushdown Automaton (PDA)

),,,δ,Γ,Σ,( 0 FzqQM

States

Inputalphabet

Stackalphabet

Transitionfunction

Acceptstates

Stackstartsymbol

Initialstate

Fall 2005 Costas Busch - RPI 81

Instantaneous Description

),,( suq

Currentstate Remaining

input

Currentstackcontents

Fall 2005 Costas Busch - RPI 82

a, a

b, a q0 q1 q2 q3

Input

Stack

a a a b b b$

aa

b, a

Time 4:

, , $ $

Example: Instantaneous Description

$),,( 1 aaabbbq

a

Fall 2005 Costas Busch - RPI 83

a, a

b, a q0 q1 q2 q3

Input

Stack

a a a b b b$

aa

b, a

Time 5:

, , $ $

Example: Instantaneous Description

$),,( 2 aabbq

a

Fall 2005 Costas Busch - RPI 84

We write:

$),,($),,( 21 aabbqaaabbbq

Time 4 Time 5

Fall 2005 Costas Busch - RPI 85

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

,$),(,$),($),,($),,(

$),,($),,($),,(

,$),(,$),(

3222

111

10

qqabqaabbq

aaabbbqaaabbbqaaabbbq

aaabbbqaaabbbq

A computation:

Fall 2005 Costas Busch - RPI 86

,$),(,$),($),,($),,(

$),,($),,($),,(

,$),(,$),(

3222

111

10

qqabqaabbq

aaabbbqaaabbbqaaabbbq

aaabbbqaaabbbq

For convenience we write:

,$),(,$),( 30 qaaabbbq

Fall 2005 Costas Busch - RPI 87

Formal Definition

Language accepted by PDA :M

)}',,(),,(:{)( 0 sqswqwML f

Initial state Accept state

)(ML

Fall 2005 Costas Busch - RPI 88

Example:,$),(,$),( 30 qaaabbbq

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

PDA :M

)(MLaaabbb

Fall 2005 Costas Busch - RPI 89

,$),(,$),( 30 qbaq nn

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

)(MLba nn

PDA :M

Fall 2005 Costas Busch - RPI 90

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

PDA :M

}0:{)( nbaML nnTherefore: