trial

83
Formal Languages Push-Down Automata (PDAs)

Upload: vikas-bansal

Post on 25-Mar-2016

213 views

Category:

Documents


0 download

DESCRIPTION

this is my trial emagzine

TRANSCRIPT

Formal LanguagesPush-Down Automata (PDAs)

2

Pushdown Automaton -- PDAInput String

Stack

States

3

Initial Stack Symbol

Stack

$

Stack

z

bottomspecial symbol

stackhead top

Appears at time 0

4

The States

q1 q2a, b c

Inputsymbol

Popsymbol

Pushsymbol

5

q1 q2a, b c

a

b top

input

stack

a

Replaceeh

$eh

$

c

6

q1 q2a, c

a a

Pushb

eh

$eh

$

bc

top

input

stack

7

q1 q2a, b

a a

Popb

eh

$eh

$

top

input

stack

8

q1 q2a,

a a

No Changeb

eh

$eh

$

btop

input

stack

9

q1 q2$,a

a a

Pop$ top

input

stack

Empty Stack

empty

The automaton HALTSNo possible transition after q2

10

q1 q2ba $,

a a

Pop$ top

input

stack

A Possible Transition

b

11

Non-Determinism

q1

q2a, b c

q3a, b c

q1 q2, b c

transition

PDAs are non-deterministicAllow non-deterministic transitions

12

Example PDA: Basic Idea?

,

a, a

b, a q0 q1 q2 q3

b, a

, $ $

PDA M

}0:{)( nbaML nn

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

14

a, a

b, a 0q q1 q2 q3

Execution Example:Inputa a a b b b

currentstate

b, a

Time 0

, , $ $

Stack$

15

a, a

b, a q0 q1 q2 q3

Inputa a a b b b

b, a

Time 1

, , $ $

Stack$

16

a, a

b, a q0 q1 q2 q3

Input

Stack

a a a b b b$a

b, a

Time 2

, , $ $

17

a, a

b, a q0 q1 q2 q3

Input

Stack

a a a b b b$aa

b, a

Time 3

, , $ $

18

a, a

b, a q0 q1 q2 q3

Input

Stack

a a a b b b

$aaa

b, a

Time 4

, , $ $

19

a, a

b, a q0 q1 q2 q3

Inputa a a b b b

Stack$aaa

b, a

Time 5

, , $ $

20

a, a

b, a q0 q1 q2 q3

Inputa a a b b b

$a

Stack

b, a

Time 6

, , $ $

a

21

a, a

b, a q0 q1 q2 q3

Inputa a a b b b

$Stack

b, a

Time 7

, , $ $

a

22

a, a

b, a q0 q1 q2 q3

Inputa a a b b b

b, a

Time 8

accept, , $ $

$Stack

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)

24

The input stringis accepted by the PDA:

aaabbb

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

25

}0:{ nbaL nn

is the language accepted by the PDA:

a, a

b, a q0 q1 q2 q3

b, a

In general,

, , $ $

26

0q

a, a

b, a q1 q2 q3

Rejection Example:Inputa a b

currentstate

b, a

Time 0

, , $ $

Stack$

27

0q

a, a

b, a q1 q2 q3

Rejection Example:Inputa a b

currentstate

b, a

Time 1

, , $ $

Stack$

28

0q

a, a

b, a q1 q2 q3

Rejection Example:Inputa a b

currentstate

b, a

Time 2

, , $ $

Stack$

a

29

0q

a, a

b, a q1 q2 q3

Rejection Example:Inputa a b

currentstate

b, a

Time 3

, , $ $

Stack$

aa

30

0q

a, a

b, a q1 q2 q3

Rejection Example:Inputa a b

currentstate

b, a

Time 4

, , $ $

Stack$

aa

31

0q

a, a

b, a q1 q2 q3

Rejection Example:Inputa a b

currentstate

b, a

Time 4

, , $ $

Stack$

aa

reject

32

The input stringis rejected by the PDA:

aab

a, a

b, a q0 q1 q2 q3

b, a

, , $ $

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

34

Another PDA example: Language?

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

PDA M

35

Another PDA example

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

PDA M

}},{:{)( bavvvML R

36

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

}},{:{)( 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

37

Execution Example:Input

Time 0

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

a ab b

38

Inputa ab

Time 1

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

ab

39

InputTime 2

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

aa ab bb

40

InputTime 3

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

aa ab bb

Guess the middle of string

41

InputTime 4

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

aa ab bb

42

InputTime 5

Stack$

, $ $1q q2

bbaa

,,

, q0

bbaa

,,

a ab b a

43

InputTime 6

Stack$

, $ $q1

bbaa

,,

, q0

bbaa

,,

a ab b

acceptq2

44

Rejection Example:Input

Time 0

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

a b b b

45

InputTime 1

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

aa b b b

46

InputTime 2

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

ab

a b b b

47

InputTime 3

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

ab

Guess the middle of string

a b b b

48

InputTime 4

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

ab

a b b b

49

InputTime 5

Stack$

, $ $1q q2

bbaa

,,

, q0

bbaa

,,

aa b b b

There is no possible transition.

Input is not consumed

50

Another computation on same string:Input Time 0

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

a b b b

51

InputTime 1

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

aa b b b

52

InputTime 2

Stack$

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

ab

a b b b

53

InputTime 3

Stack$ab

a b b b

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

b

54

InputTime 4

Stack

a b b b

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

$abbb

55

InputTime 5

Stack

a b b b

$abbb

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

No final state is reached

56

, $ $q1 q2

bbaa

,,

, q0

bbaa

,,

There is no computation that accepts string abbb

)(MLabbb

57

Another PDA example: Language?

abaa

,,

q0

PDA M

58

Another PDA example

abaa

,,

q0

PDA M

)}()( ,prefix every in :},{{)( *

vnvnvbawML

ba

59

Execution Example:Input

Time 0

Stack

a a b

$,,,

bab

aa

q0

$

60

InputTime 1

Stack

a a b

q0

a$

$,,,

bab

aa

61

InputTime 2

Stack

a a b

q0

aa

$

$,,,

bab

aa

62

InputTime 3

Stack

a a b

q0

a

accept

$

$,,,

bab

aa

63

Rejection example:Input

Time 0

Stack

a b b

q0

b$

64

InputTime 1

Stack

q0

aa b b b$

$,,,

bab

aa

65

InputTime 2

Stack

q0

a b b b$

$,,,

bab

aa

66

InputTime 3

Stack

q0

a b b b

$,,,

bab

aa

67

InputTime 4

Stack

q0Halt and Reject

a b b b

$,,,

bab

aa

68

Pushing Strings

q1 q2a, b w

Inputsymbol

Popsymbol

Pushstring

69

q1 q2a, b cdf

a

b top

input

stack

a

Pusheh h

e

cdf

pushedstring

Example:

$ $

70

Another PDA example: Language?

$$, q1 q2

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

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

PDA M

71

Another PDA example

$$, q1 q2

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

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

PDA M

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

72

Time 0Inputa ab b b

currentstate

a

$Stack

$$, q1 q2

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

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

Execution Example:

73

Time 1Inputa ab b b a

$Stack

0

$$, q1 q2

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

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

74

Time 3Inputa bb b a

$Stack

a

$

$$, q1 q2

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

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

0

75

Time 4Inputa bb b a

$Stack

a1

$$, q1 q2

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

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

76

Time 5Inputa bb b a

$Stack

a11

$$, q1 q2

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

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

77

Time 6Inputa bb b a

$Stack

a1

$$, q1 q2

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

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

1

78

Time 7Inputa bb b a

$Stack

a1

$$, q1 q2

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

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

79

Time 8Inputa bb b a a

$Stack

$$, q1 q2

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

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

accept

80

PDAs: Formal Definition

81

q1 q2a, b w

)},{(),,( 21 wqbaq

Transition function:

82

q1

q2wba ,

q3wba ,

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

Transition function:

83

Formal DefinitionPushdown Automaton (PDA)

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

States

Inputalphabet

Stackalphabet

Transitionfunction

Finalstates

Stackstartsymbol

Initialstate