• Tidak ada hasil yang ditemukan

class10 PDA-Teori Bahasa dan Otomata

N/A
N/A
Mutiara Permata

Academic year: 2024

Membagikan "class10 PDA-Teori Bahasa dan Otomata"

Copied!
90
0
0

Teks penuh

(1)

Pushdown Automata

PDAs

(2)

Pushdown Automaton -- PDA

Input String

Stack

States

(3)

Initial Stack Symbol

Stack

$

Stack

z

bottom special symbol stack

head top

Appears at time 0

(4)

The States

q

1

a, bc q

2

Input symbol

Pop

symbol Push

symbol

(5)

q

1

a, bc q

2

a

b

top

input

stack

a

Replace

e h

e h

c

(6)

q

1

a,   c q

2

a a

b b

c

top input

stack

(7)

q

1

a, b   q

2

a a

b

Pop

e h

e h

top input

stack

(8)

q

1

a,    q

2

a a

b

top

b

input

stack

(9)

q

1

a , $   q

2

a a

$

top Pop input

stack

Empty Stack

empty

The automaton HALTS No possible transition after

q

(10)

q

1

a , $  b q

2

a a

$

top Pop input

stack

A Possible Transition

b

(11)

Non-Determinism

q

1

q

2

a, bc

q

3

a, bc

q

1

 , bc q

2

transition

 

PDAs are non-deterministic

Allowed non-deterministic transitions

(12)

Example PDA

a,   a b , a  

PDA

M

} 0 :

{ )

( Ma b n

L

n n

(13)

 ,   

a,   a

b, a  

q

0

q

1

q

2

q

3

b , a  

 , $  $

} 0 :

{ )

( Ma b n

L

n n

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

Execution Example:

Input

a a a b b b

current state

b , a  

Time 0

Stack

$

(15)

a,   a

b , a  

q

0

q

1

q

2

q

3

Input

a a a b b b

b , a  

Time 1

 ,     , $  $

Stack

$

(16)

a,   a

Input

Stack

a a a b b b

$ a

b , a  

Time 2

(17)

a,   a

b , a  

q

0

q

1

q

2

q

3

Input

Stack

a a a b b b

$ a a

b , a  

Time 3

 ,     , $  $

(18)

a,   a

Input

Stack

a a a b b b

$ a a a

b , a  

Time 4

(19)

a,   a

b , a  

q

0

q

1

q

2

q

3

Input

a a a b b b

Stack

$ a a a

b , a  

Time 5

 ,     , $  $

(20)

a,   a

Input

a a a b b b

$ a

Stack

b , a  

Time 6

a

(21)

a,   a

b , a  

q

0

q

1

q

2

q

3

Input

a a a b b b

$

Stack

b , a  

Time 7

 ,     , $  $

a

(22)

a,   a

Input

a 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 string

is accepted by the PDA:

aaabbb

a,   a b , a  

(25)

} 0 :

{ 

a b n L

n n

is the language accepted by the PDA:

a,   a

b , a  

q

0

q

1

q

2

q

3

b , a  

In general,

 ,     , $  $

(26)

a,   a

Rejection Example:

Input

a a b

current state

b , a  

Time 0

Stack

$

(27)

q

0

a,   a

b, a  

q

1

q

2

q

3

Rejection Example:

Input

a a b

current state

b , a  

Time 1

 ,     , $  $

Stack

$

(28)

a,   a

Rejection Example:

Input

a a b

current state

b , a  

Time 2

Stack

$

a

(29)

q

0

a,   a

b, a  

q

1

q

2

q

3

Rejection Example:

Input

a a b

current state

b , a  

Time 3

 ,     , $  $

Stack

$

a

a

(30)

a,   a

Rejection Example:

Input

a a b

current state

b , a  

Time 4

Stack

$

a

a

(31)

q

0

a,   a

b, a  

q

1

q

2

q

3

Rejection Example:

Input

a a b

current state

b , a  

Time 4

 ,     , $  $

Stack

$ a a

reject

(32)

The input string

is rejected by the PDA:

aab

a,   a 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

b b

a a

 ,

,

b

b

a a

, ,

PDA

M

} } ,

{ :

{ )

( Mvv va b

L

R

(35)

 , $  $

q q

b b

a a

 ,

,

 ,    q

b

b

a a

, ,

} } ,

{ :

{ )

( Mvv va b

L

R

Basic Idea:

1. Push v

on stack 2. Guess middle of input

3. Match on input with v on stack

v

R

4. Match found

(36)

Execution Example:

Input

Time 0

Stack

$

b b

a a

 ,

,

b

b

a a

,

,

a b b a

(37)

Input

a b a

Time 1

Stack

$

 , $  $

q q

b b

a a

 ,

,

 ,    q

b

b

a a

,

,

b a

(38)

Input

Time 2

Stack

$

b b

a a

 ,

,

b

b

a a

, ,

a b b a a b

(39)

Input

Time 3

Stack

$

 , $  $

q q

b b

a a

 ,

,

 ,    q

b

b

a a

, ,

a b b a a b

Guess the middle of string

(40)

Input

Time 4

Stack

$

b b

a a

 ,

,

b

b

a a

, ,

a b b a a b

(41)

Input

Time 5

Stack

$

 , $  $

q q

b b

a a

 ,

,

 ,    q

b

b

a a

, ,

a b b a a

(42)

Input

Time 6

Stack

$

b b

a a

 ,

,

b

b

a a

,

,

a b b a

(43)

Rejection Example:

Input

Time 0

Stack

$

 , $  $

q q

b b

a a

 ,

,

 ,    q

b

b

a a

,

,

a b b b

(44)

Input

Time 1

Stack

$

b b

a a

 ,

,

b

b

a a

,

,

a b b b a

(45)

Input

Time 2

Stack

$

 , $  $

q q

b b

a a

 ,

,

 ,    q

b

b

a a

, ,

a

a b b b b

(46)

Input

Time 3

Stack

$

b b

a a

 ,

,

b

b

a a

, ,

a b

Guess the middle of string

a b b b

(47)

Input

Time 4

Stack

$

 , $  $

q q

b b

a a

 ,

,

 ,    q

b

b

a a

, ,

a

a b b b b

(48)

Input

Time 5

Stack

$

b b

a a

 ,

,

b

b

a a

, , a b b b a

There is no possible transition.

Input is not consumed

(49)

Another computation on same string:

Input Time 0

Stack

$

 , $  $

q q

b b

a a

 ,

,

 ,    q

b

b

a a

,

,

a b b b

(50)

Input

Time 1

Stack

$

b b

a a

 ,

,

b

b

a a

,

,

a b b b a

(51)

Input

Time 2

Stack

$

 , $  $

q q

b b

a a

 ,

,

 ,    q

b

b

a a

, ,

a

a b b b b

(52)

Input

Time 3

Stack

$ a a b b b b

b b

a a

 ,

,

b

b

a a

, ,

b

(53)

Input

Time 4

Stack

a b b b

 , $  $

q q

b b

a a

 ,

,

 ,    q

b

b

a a

, ,

$

a

b

b

b

(54)

Input

Time 5

Stack

a b b b

$ a b b b

b b

a a

 ,

,

b

b

a a

, ,

No final state is reached

(55)

 , $  $

q q

b b

a a

 ,

,

 ,    q

b

b

a a

, ,

There is no computation that accepts string

abbb

) ( M L

abbb

(56)

Another PDA example

a

b

a a

, ,

PDA

M

)}

( )

(

, prefix every

in

: } ,

{ {

)

( *

v n

v n

v b

a w

M L

b

a

(57)

Execution Example:

Input

Time 0

Stack

a a b

$ , , , b

a b

a a

q

0

$

(58)

Input

Time 1

Stack

a a b a

$

$ , , , b

a b

a a

(59)

Input

Time 2

Stack

a a b

q

0

a a

$

$ , , , b

a b

a a

(60)

Input

Time 3

Stack

a a b a

$

$ , , , b

a b

a a

(61)

Rejection example:

Input

Time 0

Stack

a b b

q

0

b

$

(62)

Input

Time 1

Stack

a b b b a

$

$ , , , b

a b

a a

(63)

Input

Time 2

Stack

q

0

a b b b

$

$ , , , b

a b

a a

(64)

Input

Time 3

Stack

a b b b

$ , , , b

a b

a a

(65)

Input

Time 4

Stack

q

0 Halt and Reject

a b b b

$ , , , b

a b

a a

(66)

Pushing Strings

q

1

a, bw q

2

Input symbol

Pop

symbol Push string

(67)

q

1

a, bcdf q

2

 a

  

b

top

input

stack

 a

  

Push

e h h

e d c

f

pushed string Example:

(68)

Another PDA example

a, $  0$

a, 0  00 a, 1  

b , $  1$

b , 1  11 b , 0  

PDA

M

)}

( )

( :

} ,

{ {

)

( M w a b

*

n w n w

L  

a

b

(69)

Time 0 Input

a b b b a

current state

a

$

Stack

$

$

, 

qq

a, $  0$

a, 0  00 a, 1  

b , $  1$

b , 1  11 b , 0  

Execution Example:

(70)

Time 1 Input

a b b b a a

$

Stack

0 a, $  0$

a, 0  00 a, 1  

b , $  1$

b , 1  11

b , 0  

(71)

Time 3 Input

a b b b a

$

Stack

a

$

$

$

, 

qq

a, $  0$

a, 0  00 a, 1  

b , $  1$

b , 1  11 b , 0  

0

(72)

Time 4 Input

a b b b a

$

Stack

a

1 a, $  0$

a, 0  00 a, 1  

b , $  1$

b , 1  11

b , 0  

(73)

Time 5 Input

a b b b a

$

Stack

a

1 1

$

$

, 

qq

a, $  0$

a, 0  00 a, 1  

b , $  1$

b , 1  11

b , 0  

(74)

Time 6 Input

a b b b a

$

Stack

a

1 a, $  0$

a, 0  00 a, 1  

b , $  1$

b , 1  11 b , 0  

1

(75)

Time 7 Input

a b b b a

$

Stack

a

1

$

$

, 

qq

a, $  0$

a, 0  00 a, 1  

b , $  1$

b , 1  11

b , 0  

(76)

Time 8 Input

a b b b a a

$

Stack

a, $  0$

a, 0  00 a, 1  

b , $  1$

b , 1  11

b , 0  

(77)

Formalities for PDAs

(78)

q

1

a, bw q

2

)}

, {(

) ,

,

( q a bq w

Transition function:

(79)

q

1

q

2

w

b

a , 

q

3

w

b

a , 

)}

, (

), ,

{(

) ,

,

( q

1

a bq

2

w q

3

w

Transition function:

(80)

Formal Definition

Pushdown Automaton (PDA)

) ,

, ,

δ , Γ , Σ ,

( Q q

0

z F

M

States Input

Final states

Stack

(81)

Instantaneous Description

) ,

,

( q u s

Current

state Remaining input

Current stack

contents

(82)

a,   a

Input

Stack

a a a b b b

$ a a

b, a  

Time 4:

Example: Instantaneous Description

$) ,

,

( q

1

bbb aaa

a

(83)

a,   a

b , a  

q q q q

Input

Stack

a a a b b b

$ a a

b, a  

Time 5:

 ,     , $  $

Example: Instantaneous Description

$) ,

,

( q

2

bb aa

a

(84)

We write:

$) ,

, (

$) ,

,

( q

1

bbb aaaq

2

bb aa

Time 4 Time 5

(85)

a,   a

b , a  

q

0

q

1

q

2

q

3

b, a  

 ,     , $  $ ,$) ,

( ,$)

, (

$) ,

, (

$) ,

, (

$) ,

, (

$) ,

, (

$) ,

, (

,$) ,

( ,$)

, (

3 2

2 2

1 1

1

1 0

q

q a

b q

aa bb

q

aaa bbb

q aa

abbb q

a aabbb q

aaabbb q

aaabbb q

A computation:

(86)

,$) ,

( ,$)

, (

$) ,

, (

$) ,

, (

$) ,

, (

$) ,

, (

$) ,

, (

,$) ,

( ,$)

, (

3 2

2 2

1 1

1

1 0

q

q a

b q

aa bb

q

aaa bbb

q aa

abbb q

a aabbb q

aaabbb q

aaabbb q

For convenience we write:

(87)

Formal Definition

Language of PDA :

M

)}

' , ,

( )

, ,

( :

{ )

( M w q

0

w s q s

L  

f

Initial state Final state

)

( M

L

(88)

Example:

,$) ,

( ,$)

,

( q

0

aaabbb

q

3

a,   a b , a  

PDA :

M

) ( M L

aaabbb

(89)

,$) ,

( ,$)

,

( q

0

a

n

b

n

q

3

a,   a

b, a  

q

0

q

1

q

2

q

3

b , a  

 ,     , $  $

) ( M L

b

a

n n

PDA :

M

(90)

a,   a b , a  

PDA :

M

} 0 :

{ )

( Ma b n

L

n n

Therefore:

Referensi

Dokumen terkait