Transcript

Courtesy Costas Busch - RPI 1

Pushdown AutomataPDAs

Courtesy Costas Busch - RPI 2

Pushdown Automaton -- PDA

Input String

Stack

States

Courtesy Costas Busch - RPI 3

Initial Stack Symbol

Stack

$

Stack

z

bottomspecial symbol

stackhead

top

Courtesy Costas Busch - RPI 4

The States

q1 q2a, b c

Inputsymbol

Popsymbol

Pushsymbol

q1 q2cba /,

Alternatively

Courtesy Costas Busch - RPI 5

q1 q2a, b c

a

b top

input

stack

a

Replaceeh

$eh

$

c

Courtesy Costas Busch - RPI 6

q1 q2a, c

a a

Pushb

eh

$eh

$

bc

top

input

stack

Courtesy Costas Busch - RPI 7

q1 q2a, b

a a

Popb

eh

$eh

$

top

input

stack

Courtesy Costas Busch - RPI 8

q1 q2a,

a a

No Changeb

eh

$eh

$

btop

input

stack

Courtesy Costas Busch - RPI 9

q1 q2$,a

a a

Pop$ top

input

stack

A Possible Transition

empty

Courtesy Costas Busch - RPI 10

q1 q2cba ,

a input

A Bad Transition

The automaton Halts in state and Rejects the input string

Empty stack

q1

HALT

Courtesy Costas Busch - RPI 11

q1 q2ca ,

a input

A Bad Transition

The automaton Halts in state and Rejects the input string

Empty stack

q1

HALT

Courtesy Costas Busch - RPI 12

q1 q2zyx ,

No transition is allowed to be followedWhen the stack is empty

Empty stack

Courtesy Costas Busch - RPI 13

q1 q2ba $,

a a

Pop$ top

input

stack

A Good Transition

b

Courtesy Costas Busch - RPI 14

Non-Determinism

q1

q2a, b c

q3a, b c

q1 q2, b c

transition

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

Courtesy Costas Busch - RPI 15

NPDA: Non-Deterministic PDA

Example:

,

a, a

b, a q0 q1 q2 q3

b, a

, $ $

Courtesy Costas Busch - RPI 16

a, a

b, a 0q q1 q2 q3

Execution Example:

Input

a a a b b b

currentstate

b, a

Time 0

, , $ $

Stack

$

Courtesy Costas Busch - RPI 17

a, a

b, a q0 q1 q2 q3

Input

a a a b b b

b, a

Time 1

, , $ $

Stack

$

Courtesy Costas Busch - RPI 18

a, a

b, a q0 q1 q2 q3

Input

Stack

a a a b b b

$

a

b, a

Time 2

, , $ $

Courtesy Costas Busch - RPI 19

a, a

b, a q0 q1 q2 q3

Input

Stack

a a a b b b$

aa

b, a

Time 3

, , $ $

Courtesy Costas Busch - RPI 20

a, a

b, a q0 q1 q2 q3

Input

Stack

a a a b b b

$

aaa

b, a

Time 4

, , $ $

Courtesy Costas Busch - RPI 21

a, a

b, a q0 q1 q2 q3

Input

a a a b b b

Stack

$

aaa

b, a

Time 5

, , $ $

Courtesy Costas Busch - RPI 22

a, a

b, a q0 q1 q2 q3

Input

a a a b b b$

a

Stack

b, a

Time 6

, , $ $

a

Courtesy Costas Busch - RPI 23

a, a

b, a q0 q1 q2 q3

Input

a a a b b b$

Stack

b, a

Time 7

, , $ $

a

Courtesy Costas Busch - RPI 24

a, a

b, a q0 q1 q2 q3

Input

a a a b b b

b, a

Time 8

accept, , $ $

$

Stack

Courtesy Costas Busch - RPI 25

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

Courtesy Costas Busch - RPI 26

The input stringis accepted by the NPDA:

aaabbb

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

Courtesy Costas Busch - RPI 27

}0:{ nbaL nn

is the language accepted by the NPDA:

a, a

b, a q0 q1 q2 q3

b, a

In general,

, , $ $

Courtesy Costas Busch - RPI 28

Another NPDA example

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

NPDA M

}{)( RwwML

Courtesy Costas Busch - RPI 29

Execution Example:

Input

Time 0

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

a ab b

Courtesy Costas Busch - RPI 30

Input

a ab

Time 1

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

ab

Courtesy Costas Busch - RPI 31

Input

Time 2

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

aa ab b

b

Courtesy Costas Busch - RPI 32

Input

Time 3

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

aa ab b

b

Guess the middle of string

Courtesy Costas Busch - RPI 33

Input

Time 4

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

aa ab b

b

Courtesy Costas Busch - RPI 34

Input

Time 5

Stack

$

, $ $1q q2

bb

aa

,

,

, q0

bb

aa

,

,

a ab b a

Courtesy Costas Busch - RPI 35

Input

Time 6

Stack

$

, $ $q1

bb

aa

,

,

, q0

bb

aa

,

,

a ab b

accept

q2

Courtesy Costas Busch - RPI 36

Rejection Example:

Input

Time 0

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

a b b b

Courtesy Costas Busch - RPI 37

Input

Time 1

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

aa b b b

Courtesy Costas Busch - RPI 38

Input

Time 2

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

ab

a b b b

Courtesy Costas Busch - RPI 39

Input

Time 3

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

ab

Guess the middle of string

a b b b

Courtesy Costas Busch - RPI 40

Input

Time 4

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

ab

a b b b

Courtesy Costas Busch - RPI 41

Input

Time 5

Stack

$

, $ $1q q2

bb

aa

,

,

, q0

bb

aa

,

,

aa b b b

There is no possible transition.

Input is not consumed

Courtesy Costas Busch - RPI 42

Another computation on same string:

Input Time 0

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

a b b b

Courtesy Costas Busch - RPI 43

Input

Time 1

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

aa b b b

Courtesy Costas Busch - RPI 44

Input

Time 2

Stack

$

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

ab

a b b b

Courtesy Costas Busch - RPI 45

Input

Time 3

Stack

$ab

a b b b

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

b

Courtesy Costas Busch - RPI 46

Input

Time 4

Stack

a b b b

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

$abbb

Courtesy Costas Busch - RPI 47

Input

Time 5

Stack

a b b b

$abbb

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

No final state is reached

Courtesy Costas Busch - RPI 48

, $ $q1 q2

bb

aa

,

,

, q0

bb

aa

,

,

There is no computation that accepts string abbb

)(MLabbb

Courtesy Costas Busch - RPI 49

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

Courtesy Costas Busch - RPI 50

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

ORThe stack head moves below the bottom of the stack

Courtesy Costas Busch - RPI 51

Another NPDA example

ab

aa

,

,

q0

NPDA M

}1:{)( mnbaML mn

Courtesy Costas Busch - RPI 52

Execution Example:

Input

Time 0

Stack

a a b

$,

,

,

b

ab

aa

q0

$

Courtesy Costas Busch - RPI 53

Input

Time 1

Stack

a a b

q0

a

$

$,

,

,

b

ab

aa

Courtesy Costas Busch - RPI 54

Input

Time 2

Stack

a a b

q0

aa

$

$,

,

,

b

ab

aa

Courtesy Costas Busch - RPI 55

Input

Time 3

Stack

a a b

q0

a

accept

$

$,

,

,

b

ab

aa

Courtesy Costas Busch - RPI 56

Rejection example:

Input

Time 0

Stack

a b b

q0

b

$

Courtesy Costas Busch - RPI 57

Input

Time 1

Stack

q0

aa b b b

$

$,

,

,

b

ab

aa

Courtesy Costas Busch - RPI 58

Input

Time 2

Stack

q0

a b b b

$

$,

,

,

b

ab

aa

Courtesy Costas Busch - RPI 59

Input

Time 3

Stack

q0

a b b b

$,

,

,

b

ab

aa

Courtesy Costas Busch - RPI 60

Input

Time 4

Stack

q0

Halt and Reject

a b b b

$,

,

,

b

ab

aa

Courtesy Costas Busch - RPI 61

Pushing Strings

q1 q2a, b w

Inputsymbol

Popsymbol

Pushstring

Courtesy Costas Busch - RPI 62

q1 q2a, b cdf

a

b top

input

stack

a

Push

eh h

e

cdf

pushedstring

Example:

$ $

Courtesy Costas Busch - RPI 63

Another NPDA example

$$, q1 q2

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

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

NPDA M

}:{)( ba nnwML

Courtesy Costas Busch - RPI 64

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:

Courtesy Costas Busch - RPI 65

Time 1

Input

a ab b ba

$

Stack

0

$$, q1 q2

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

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

Courtesy Costas Busch - RPI 66

Time 3

Input

a bb b a

$

Stack

a

$

$$, q1 q2

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

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

0

Courtesy Costas Busch - RPI 67

Time 4

Input

a bb b a

$

Stack

a

1

$$, q1 q2

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

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

Courtesy Costas Busch - RPI 68

Time 5

Input

a bb b a

$

Stack

a

11

$$, q1 q2

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

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

Courtesy Costas Busch - RPI 69

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

Courtesy Costas Busch - RPI 70

Time 7

Input

a bb b a

$

Stack

a

1

$$, q1 q2

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

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

Courtesy Costas Busch - RPI 71

Time 8

Input

a bb b a a

$

Stack

$$, q1 q2

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

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

accept

Courtesy Costas Busch - RPI 72

Formalities for NPDAs

Courtesy Costas Busch - RPI 73

q1 q2a, b w

)},{(),,( 21 wqbaq

Transition function:

Courtesy Costas Busch - RPI 74

q1

q2wba ,

q3wba ,

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

Transition function:

Courtesy Costas Busch - RPI 75

Formal Definition

Non-Deterministic Pushdown Automaton NPDA

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

States

Inputalphabet

Stackalphabet

Transitionfunction

Finalstates

Stackstartsymbol

Initialstate

Courtesy Costas Busch - RPI 76

Instantaneous Description

),,( suq

Currentstate Remaining

input

Currentstackcontents

Courtesy Costas Busch - RPI 77

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

Courtesy Costas Busch - RPI 78

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

Courtesy Costas Busch - RPI 79

We write:

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

Time 4 Time 5

Courtesy Costas Busch - RPI 80

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

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

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

,$),(,$),(

3222

111

10

qqabqaabbq

aaabbbqaaabbbqaaabbbq

aaabbbqaaabbbq

A computation:

Courtesy Costas Busch - RPI 81

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

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

,$),(,$),(

3222

111

10

qqabqaabbq

aaabbbqaaabbbqaaabbbq

aaabbbqaaabbbq

For convenience we write:

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

Courtesy Costas Busch - RPI 82

Formal Definition

Language of NPDA :M

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

Initial state Final state

)(ML

Courtesy Costas Busch - RPI 83

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

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

NPDA :M

)(MLaaabbb

Courtesy Costas Busch - RPI 84

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

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

NPDA :M

)(MLba nn

Courtesy Costas Busch - RPI 85

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

NPDA :M

}0:{)( nbaML nnTherefore:


Top Related