Anda di halaman 1dari 83

Push-Down Automata

Pertemuan Ke - 12

Sri Handayaningsih, S.T., M.T.


Email : ning_s12@yahoo.com
Teknik Informatika
TIU & TIK

1. Mahasiswa memahami konsep push


down automata serta mampu merancang
PDA untuk mengenali suatu bahasa yang
diberikan

2
Pushdown Automaton -- PDA
Input String

Stack

States

3
Simbol Stack awal

Stack Stack

stack
$ z top
kepala

Simbol spesial di bawah


kelihatan pada waktu ke 0
4
State
simbol simbol Simbol
Input Pop Push

q1 a, b  c q2

5
a, b  c
q1 q2

input
 a   a 

stack
b top c
h Ganti tempat h
e e
$ $ 6
a,  c
q1 q2

input
 a   a 

stack c
b top b
h Tambah/push h
e e
$ $ 7
a, b  
q1 q2

input
 a   a 

stack
b top
h Ambil/pop h
e e
$ $ 8
a,  
q1 q2

input
 a   a 

stack
b top b
h Tdk ada h
e perubahan e
$ $ 9
Stack Kosong

a, $  
q1 q2
input
 a   a 

stack kosong
$ top Pop

automata tdk bisa digunakan


Tdk mungkin ada transisi setelah q2
10
Transisi yg mungkin

a, $  b
q1 q2
input
 a   a 

stack
$ top Pop b

11
Non-Determinan
PDAs merupakan non-determinan
Transisi yg mengikuti non-deterministic

q2
a, b  c
, b  c
q1 q1 q2
transisi
a, b  c q3
12
Contoh PDA: ide dasar
PDA M
L( M ) {a b : n 0}
n n

a,  a b, a  

q0 ,   q1 b, a   q2 , $  $ q3
13
L( M ) {a b : n 0}
n n

Ide dasar:

1. Push a pada 2. Sesuaikan inputan b


stack dgn a pada stack

3. penyesuaian
ditemukan
a,  a b, a  

q0 ,   q1 b, a   q2 , $  $ q3
14
Contoh 1 Eksekusi : Time 0
Input
a a a b b b
$
Stack

State a,  a b, a  
Saat ini
,   q b, a   q , $  $ q
q0 1 2 3
15
Time 1
Input
a a a b b b
$
Stack

a,  a b, a  

q0 ,   q1 b, a  q2 , $  $ q3
16
Time 2
Input
a a a b b b a
$
Stack

a,  a b, a  

q0 ,   q1 b, a  q2 , $  $ q3
17
Time 3
Input a
a a a b b b a
$
Stack

a,  a b, a  

q0 ,   q1 b, a  q2 , $  $ q3
18
Time 4
a
Input
a
a a a b b b a
$
Stack

a,  a b, a  

q0 ,   q1 b, a  q2 , $  $ q3
19
Time 5
a
Input
a
a a a b b b a
$
Stack

a,  a b, a  

q0 ,   q1 b, a   q2 , $  $ q3
20
Time 6
Input a
a a a b b b a
$
Stack

a,  a b, a  

q0 ,   q1 b, a   q2 , $  $ q3
21
Time 7
Input
a a a b b b a
$
Stack

a,  a b, a  

q0 ,   q1 b, a   q2 , $  $ q3
22
Time 8
Input
a a a b b b
$
Stack

a,  a b, a  
diterima

q0 ,   q1 b, a   q2 , $  $ q3
23
Sebuah string diterima jika :

Seluruh inputan dapat diselesaikan


DAN
menuju ke state terakhir.

Pada akhir komputasi,


tidak mempedulikan susunan isi pada stack

24
input string aaabbb
Apakah diterima oleh PDA:

a,  a b, a  

q0 ,   q1 b, a   q2 , $  $ q3
25
Secara general,

L {a b : n 0}
n n

Apakah bahasa diterima oleh PDA:

a,  a b, a  

q0 ,   q1 b, a   q2 , $  $ q3
26
Contoh yang ditolak: Time 0
Input
a a b
$
Stack

State a,  a b, a  
Saat ini
,   q b, a   q , $  $ q
q0 1 2 3
27
Contoh yang ditolak : Time 1
Input
a a b
$
Stack

State a,  a b, a  
Saat ini

q0 ,   q1 b, a   q2 , $  $ q3
28
Contoh yang ditolak :Time 2
Input
a a b a
$
Stack

State a,  a b, a  
Saat ini

q0 ,   q1 b, a   q2 , $  $ q3
29
Contoh yang ditolak :Time 3
Input a
a a b a
$
Stack

State a,  a b, a  
Saat ini

q0 ,   q1 b, a   q2 , $  $ q3
30
Contoh yang ditolak :Time 4
Input a
a a b a
$
Stack

State a,  a b, a  
Saat ini

q0 ,   q1 b, a   q2 , $  $ q3
31
Contoh yang ditolak :Time 4
Input a
a a b a
$
Stack
ditolak
State a,  a b, a  
Saat ini

q0 ,   q1 b, a   q2 , $  $ q3
32
Input string aab
Ditolak oleh PDA:

a,  a b, a  

q0 ,   q1 b, a   q2 , $  $ q3
33
Sebuah string ditolak jika :

Seluruh inputan tidak terselesaikan


DAN
Tidak sampai ke state akhir

Pada akhir komputasi,


Tidak dipedulikan isi kontens stack
34
Contoh PDA lain :
Apakah bahasanya?

PDA M

a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 35

Ide Dasar: L( M ) {vv : v {a, b} }
R

R
1. Push v 3. sesuaikanv pd input
pd stack 2. Input utk dgn v pada stack
pindah state

a,  a a, a   4. Penyesuain
ditemukan
b,  b b, b  

q0 ,   q1 , $  $ q2 36
Contoh 2 Eksekusi : Time 0
Input
a b b a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 37
Time 1
Input
a b b a
a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 38
Time 2
Input
b
a b b a
a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 39
Time 3
Input
b
a b b a
a
perpindahan $
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 40
Time 4
Input
b
a b b a
a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 41
Time 5
Input
a b b a
a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   , $  $ q2
q1 42
Time 6
Input
a b b a
$
Stack
a,  a a, a  
b,  b b, b  
diterima
q0 ,   q1 , $  $ q2 43
Contoh yg ditolak: Time 0
Input
a b b b
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 44
Time 1
Input
a b b b
a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 45
Time 2
Input
b
a b b b
a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 46
Time 3
Input
b
a b b b
a
perpindahan $
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 47
Time 4
Input
b
a b b b
a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 48
Time 5
Input Transisi tidak mungkin

a b b b Inputan tdk
a
terselesaikan $
Stack
a,  a a, a  
b,  b b, b  

q0 ,   , $  $ q2
q1 49
Komputasi lain pada string yg sama :

Input Time 0

a b b b
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 50
Time 1
Input

a b b b
a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 51
Time 2
Input
b
a b b b
a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 52
Time 3
Input b
b
a b b b
a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 53
Time 4 b
Input b
b
a b b b
a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 54
Time 5 b
Input b
Tdk sampai b
a b b b State akhir
a
$
Stack
a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 55
Tdk ada komputasi
Yg menerima string abbb

abbb L(M )

a,  a a, a  
b,  b b, b  

q0 ,   q1 , $  $ q2 56
Teori Tentang
“Pushing Strings”

Input Pop Push


symbol symbol string

q1 a, b  w q2

57
Contoh 1:
a, b  cdf
q1 q2

input

 a
 

 
 a
 

c String
stack d Yg di push
b top f
Push
h h
e e
$ $ 58
Contoh 2
L( M ) {w {a, b} : na ( w) nb ( w)}
*

PDA
M

a, $  0$ b, $  1$
a, 0  00 b, 1  11
a, 1   b, 0  

q1 , $  $ q2 59
Eksekusi untuk string abbbaa :Time 0
Input
a b b b a a

$
a, $  0$ b, $  1$
Stack
a, 0  00 b, 1  11
a, 1   b, 0  
State
Saat ini , $  $
q1 q2 60
Time 1
Input
a b b b a a
0
$
a, $  0$ b, $  1$
Stack
a, 0  00 b, 1  11
a, 1   b, 0  

q1 , $  $ q2 61
Time 3
Input
a b b b a a
0
$
a, $  0$ b, $  1$
Stack
a, 0  00 b, 1  11
a, 1   b, 0  

q1 , $  $ q2 62
Time 4
Input
a b b b a a
1
$
a, $  0$ b, $  1$
Stack
a, 0  00 b, 1  11
a, 1   b, 0  

q1 , $  $ q2 63
Time 5
Input
a b b b a a 1
1
$
a, $  0$ b, $  1$
Stack
a, 0  00 b, 1  11
a, 1   b, 0  

q1 , $  $ q2 64
Time 6
Input
a b b b a a 1
1
$
a, $  0$ b, $  1$
Stack
a, 0  00 b, 1  11
a, 1   b, 0  

q1 , $  $ q2 65
Time 7
Input
a b b b a a
1
$
a, $  0$ b, $  1$
Stack
a, 0  00 b, 1  11
a, 1   b, 0  

q1 , $  $ q2 66
Time 8
Input
a b b b a a

$
a, $  0$ b, $  1$
Stack
a, 0  00 b, 1  11
a, 1   b, 0  
diterima
q1 , $  $ q2 67
PDAs: Definisi Formal

68
q1 a, b  w q2

Fungsi Transisi:

(q1, a, b) {( q2 , w)}

69
q2
a, b  w

q1

a, b  w
q3

Fungsi transisi:

(q1, a, b) {( q2 , w), (q3 , w)}


70
Formal Definition
Pushdown Automaton (PDA)

M (Q, Σ, Γ, δ
, q0 , z , F ) State
akhir
States

Input
Simbol
alphabet
Fungsi Mulai
State
Stack transisi Stack
awal
alphabet
71
Diskripsi Instan

( q, u , s )

State Isi stack


Saat ini Input Saat ini
tersisa

72
Contoh : Diskripsi instan
(q1, bbb, aaa$)
a
Time 4: Input a
a a a b b b a
$
Stack
a,  a b, a  

q0 ,   q1 b, a  q2 , $  $ q3
73
Contoh : Diskripsi instan
(q2 , bb, aa$)
a
Time 5: Input a
a a a b b b a
$
Stack
a,  a b, a  

q0 ,   q1 b, a  q2 , $  $ q3 74
Penulisan :

( q1, bbb, aaa$)  (q2 , bb, aa$)


Time 4 Time 5

75
Komputasi :

(q0 , aaabbb,$) (q1, aaabbb,$) 


(q1, aabbb, a$) (q1, abbb, aa$) (q1, bbb, aaa$) 
(q2 , bb, aa$) (q2 , b, a$) (q2 , ,$) (q3 , ,$)

a,  a b, a  

q0 ,   q1 b, a  q2 , $  $ q3
76
(q0 , aaabbb,$) (q1, aaabbb,$) 
(q1, aabbb, a$) (q1, abbb, aa$) (q1, bbb, aaa$) 
(q2 , bb, aa$) (q2 , b, a$) (q2 , ,$) (q3 , ,$)

Penulisan akhir :


(q0 , aaabbb,$)  (q3, ,$)

77
Formal Definisi
bahasa L(M ) pada PDA M :


L(M ) {w : (q0 , w, s )  (q f , , s' )}

State awal State akhir

78
Contoh : 
( q0 , aaabbb,$)  ( q3 , ,$)

aaabbb L(M )

PDA M :

a,  a b, a  

q0 ,   q1 b, a  q2 , $  $ q3
79

( q0 , a b ,$)  ( q3 , ,$)
n n

a b L(M )
n n

PDA M :

a,  a b, a  

q0 ,   q1 b, a  q2 , $  $ q3
80
Kemudian : L( M ) {a b : n 0}
n n

PDA M :

a,  a b, a  

q0 ,   q1 b, a  q2 , $  $ q3
81
Latihan
diketahui sebuah PDA M sebagai berikut :

L ( M ) {w {a, b} :
*

utk setiap prefix v, na (v ) nb (v )}


a,,  a
a
b, a  
PDA
M Apakah string aab
termasuk dalam
q0 bahasa L(M) ?
82
Pustaka
1. Tedy Setiadi, Diktat Teori Bahasa dan Otomata,
Teknik Informatika UAD, 2005
2. Hopcroft John E., Rajeev Motwani, Jeffrey D. Ullman,
Introduction to Automata Theory, Languages, and
Computation, 2rd, Addison-Wesley,2000
3. Martin C. John, Introduction to Languages and Theory of
Computation, McGraw-Hill Internatioanal edition,1991
4. Linz Peter,Introduction to Formal Languages & Automata,
DC Heath and Company, 1990
5. Dulimarta Hans, Sudiana, Catatan Kuliah Matematika
Informatika, Magister Teknik Informatika ITB, 1998
6. Hinrich Schütze, IMS, Uni Stuttgart, WS 2006/07,
Slides based on RPI CSCI 2400

TEORI BAHASA OTOMATA


83

Anda mungkin juga menyukai