Pushdown Automata PDA
Download
Report
Transcript Pushdown Automata PDA
Pushdown Automata
PDA
1
Pushdown Automaton -- PDA
String Masukan
Tumpukan
Keadaan
2
Simbol Tumpukan Awal
Tumpukan
Kepala
Tumpukan
$
Tumpukan
z
atas
Simbol khusus penanda posisi dasar
Sudah ada saat waktu ke-0
3
The States
Simbol
Masukan
Simbol
‘pop’
Simbol
‘push’
a,
b
c
q1
q2
4
q1
a, b c
q2
Masukan
a
a
Tumpukan
b
h
e
$
atas
Gantikan
c
h
e
$
5
q1
a, c
q2
Masukan
a
Tumpukan
b
h
e
$
atas
Push
a
c
b
h
e
$
6
a,
b
q1
q2
Masukan
a
a
Tumpukan
b
h
e
$
atas
Pop
h
e
$
7
q1
a,
q2
Masukan
a
a
Tumpukan
b
h
e
$
atas
No Change
b
h
e
$
8
Tumpukan Kosong
q1
a, $
q2
Masukan
a
Tumpukan
$
a
kosong
atas
Pop
Keadaan HALTS
Tidak ada transisi setelah q2
9
Transisi seperti ini dapat terjadi:
q1
a, $ b
q2
Masukan
a
a
Tumpukan
$
atas
Pop
b
10
Non-Deterministik
PDA adalah non-deterministik
a, b c
q2
q1
a, b c
q1
q3
,b c
q2
transisi
11
Contoh PDA
PDA M
L(M ) {a b : n 0}
n n
a, a
q0
,
q1
b,a
b,a
q2
,$ $
q3
12
L(M ) {a b : n 0}
n n
Ide pokok:
2. Cocokkan ‘b’ sbg input
dg ‘a’ dlm tumpukan
1. Push ‘a’ ke dalam
tumpukan
a, a
q0
,
q1
b,a
b,a
q2
3. Cocok!
,$ $
q3
13
Contoh Eksekusi: Waktu ke-0
Masukan
a a a b b b
$
Tumpukan
a, a
Keadaan
saat ini
q0
,
q1
b,a
b,a
q2
,$ $
q3
14
Waktu ke-1
Masukan
a a a b b b
$
Tumpukan
a, a
q0
,
q1
b,a
b,a
q2
,$ $
q3
15
Waktu ke-2
Masukan
a a a b b b
a
$
Tumpukan
a, a
q0
,
q1
b,a
b,a
q2
,$ $
q3
16
Waktu ke-3
a
a
$
Masukan
a a a b b b
Tumpukan
a, a
q0
,
q1
b,a
b,a
q2
,$ $
q3
17
Waktu ke-4
Masukan
a a a b b b
a
a
a
$
Tumpukan
a, a
q0
,
q1
b,a
b,a
q2
,$ $
q3
18
Waktu ke-5
Masukan
a a a b b b
a
a
a
$
Tumpukan
a, a
q0
,
q1
b,a
b,a
q2
,$ $
q3
19
Waktu ke-6
a
a
$
Masukan
a a a b b b
Tumpukan
a, a
q0
,
q1
b,a
b,a
q2
,$ $
q3
20
Waktu ke-7
Masukan
a
$
a a a b b b
Tumpukan
a, a
q0
,
q1
b,a
b,a
q2
,$ $
q3
21
Waktu ke-8
Masukan
a a a b b b
$
Tumpukan
a, a
b,a
diterima
q0
,
q1
b,a
q2
,$ $
q3
22
Suatu string diterima jika:
Semua Masukan selesai dieksekusi
DAN
Keadaan terakhir merupakan keadaan yang
diterima
Pada keadaan akhir, isi tumpukan tidak
diperdulikan (isi tumpukan dapat kosong)
23
String Masukan aaabbb
dapat diterima oleh PDA:
a, a
q0
,
q1
b,a
b,a
q2
,$ $
q3
24
Secara umum,
L {a b : n 0}
n n
Merupakan BAHASA yang diterima oleh PDA:
a, a
q0
,
q1
b,a
b,a
q2
,$ $
q3
25
Waktu ke-0
Contoh ditolak:
Masukan
a a b
$
Tumpukan
a, a
keadaan
saat ini
q0
,
q1
b,a
b,a
q2
,$ $
q3
26
Waktu ke-1
Contoh ditolak:
Masukan
a a b
$
Tumpukan
a, a
keadaan
saat ini
q0
,
q1
b,a
b,a
q2
,$ $
q3
27
Waktu ke-2
Contoh ditolak:
Masukan
a
a a b
$
Tumpukan
a, a
keadaan
saat ini
q0
,
q1
b,a
b,a
q2
,$ $
q3
28
Waktu ke-3
Contoh ditolak:
a
a
Masukan
a a b
$
Tumpukan
a, a
keadaan
saat ini
q0
,
q1
b,a
b,a
q2
,$ $
q3
29
Waktu ke-4
Contoh ditolak:
a
a
Masukan
a a b
$
Tumpukan
a, a
keadaan
saat ini
q0
,
q1
b,a
b,a
q2
,$ $
q3
30
Waktu ke-4
Contoh ditolak:
a
a
Masukan
a a b
$
Tumpukan
a, a
keadaan
saat ini
q0
,
q1
ditolak
b,a
b,a
q2
,$ $
q3
31
String Masukan aab
ditolak oleh PDA:
a, a
q0
,
q1
b,a
b,a
q2
,$ $
q3
32
Suatu string ditolak jika tidak memenuhi:
Semua Masukan selesai dieksekusi
DAN
Keadaan terakhir merupakan keadaan yang
diterima
Pada keadaan akhir, isi tumpukan tidak
diperdulikan.
33
Contoh lainnya: PDA
PDA M
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
34
Ide Dasar:
L(M ) {vv : v {a, b} }
1. ‘Push’ v
ke dalam
tumpukan
3. Cocokkan
R
a, a
b, b
q0
,
pada
input dengan v
pada tumpukan
2. Tebak posisi
tengah
input
a, a
b, b
v
R
q1
4. Cocok!
,$ $
q2
36
Contoh Eksekusi: Waktu ke-0
Masukan
a b b a
$
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
37
Waktu ke-1
Masukan
a b b a
a
$
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
38
Waktu ke-2
Masukan
b
a
$
a b b a
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
39
Waktu ke-3
Masukan
b
a
$
a b b a
Tebak posisi
tengah input
a, a
b, b
a, a
b, b
q0
Tumpukan
,
q1
,$ $
q2
40
Waktu ke-4
Masukan
b
a
$
a b b a
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
41
Waktu ke-5
Masukan
a b b a
a
$
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
42
Waktu ke-6
Masukan
a b b a
$
Tumpukan
a, a
b, b
a, a
b, b
diterima
q0
,
q1
,$ $
q2
43
Contoh ditolak:
Waktu ke-0
Masukan
a b b b
$
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
44
Waktu ke-1
Masukan
a b b b
a
$
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
45
Waktu ke-2
Masukan
b
a
$
a b b b
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
46
Waktu ke-3
Masukan
b
a
$
a b b b
Tebak posisi
tengah input
a, a
b, b
a, a
b, b
q0
Tumpukan
,
q1
,$ $
q2
47
Waktu ke-4
Masukan
b
a
$
a b b b
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
48
Waktu ke-3
Tidak ada transisi lagi
Masukan
a b b b
Input belum selesai
dieksekusi
a
$
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
49
Cara eksekusi lainnya (untuk string yang sama)
Masukan
Waktu ke-0
a b b b
$
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
50
Waktu ke-1
Masukan
a b b b
a
$
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
51
Waktu ke-2
Masukan
b
a
$
a b b b
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
52
Waktu ke-3
b
b
a
$
Masukan
a b b b
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
53
Waktu ke-4
b
b
b
a
$
Masukan
a b b b
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
54
Waktu ke-5
Masukan
a b b b
Keadaan diterima
tidak tercapai
b
b
b
a
$
Tumpukan
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
55
String abbb
tidak diterima
abbb L(M )
a, a
b, b
a, a
b, b
q0
,
q1
,$ $
q2
56
Contoh PDA lainnya
L(M ) {w {a, b} :
*
dengan banyakstring: n(a) n(b) 1}
a, a
b, a
b, $
PDA
M
q0
57
Contoh Eksekusi: Waktu ke-0
Masukan
a a b
a, a
b, a
b, $
$
Tumpukan
q0
58
Waktu ke-1
Masukan
a a b
a, a
b, a
b, $
a
$
Tumpukan
q0
59
Waktu ke-2
Masukan
a a b
a, a
b, a
b, $
a
a
$
Tumpukan
q0
60
Waktu ke-3
Masukan
a a b
a
$
a, a
b, a
b, $
Tumpukan
diterima
q0
61
Contoh ditolak:
Waktu ke-0
Masukan
a b b b
$
Tumpukan
q0
62
Waktu ke-1
Masukan
a b b b
a, a
b, a
b, $
a
$
Tumpukan
q0
63
Waktu ke-2
Masukan
a b b b
a, a
b, a
b, $
$
Tumpukan
q0
64
Waktu ke-3
Masukan
a b b b
a, a
b, a
b, $
Tumpukan
q0
65
Waktu ke-4
Masukan
a b b b
a, a
b, a
b, $
Tumpukan
Halt dan Ditolak
q0
66
‘Push’ String
Simbol
Masukan
Simbol
‘Pop’
String
yang di
‘push’
a,
b
w
q1
q2
67
Contoh
q1
a, b cdf
q2
Masukan
a
a
Tumpukan
b
h
e
$
atas
Push
c
d
f
h
e
$
String
yang di
‘push’
68
Contoh (lagi)
L(M ) {w {a, b} : n(a) n(b)}
*
PDA
a, $ 0$
a, 0 00
a, 1
M
b, $ 1$
b, 1 11
b, 0
q1
, $ $
q2
69
Contoh Eksekusi:
Waktu ke-0
Masukan
a b
b b a a
a, $ 0$
a, 0 00
a, 1
Keadaan
saat ini
b, $ 1$
b, 1 11
b, 0
q1
, $ $
$
Tumpukan
q2
70
Waktu ke-1
Masukan
a b
b b
a, $ 0$
a, 0 00
a, 1
a a
b, $ 1$
b, 1 11
b, 0
q1
, $ $
0
$
Tumpukan
q2
71
Waktu ke-2
Masukan
a b
b b a a
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 1 11
b, 0
q1
, $ $
0
$
Tumpukan
q2
72
Waktu ke-3
Masukan
a b
b b a a
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 1 11
b, 0
q1
, $ $
1
$
Tumpukan
q2
73
Waktu ke-4
Masukan
a b
b b a a
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 1 11
b, 0
q1
, $ $
1
1
$
Tumpukan
q2
74
Waktu ke-5
Masukan
a b
b b a a
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 1 11
b, 0
q1
, $ $
1
1
$
Tumpukan
q2
75
Waktu ke-6
Masukan
a b
b b a a
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 1 11
b, 0
q1
, $ $
1
$
Tumpukan
q2
76
Waktu ke-7
Masukan
a b
b b a a
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 1 11
b, 0
$
Tumpukan
diterima
q1
, $ $
q2
77
Formalitas PDA
78
a,
b
w
q1
q2
Fungsi Transisi:
(q1, a, b) {(q2 , w)}
79
a, b w
q2
q1
a, b w
q3
Fungsi Transisi:
(q1, a, b) {(q2 , w), (q3 , w)}
80
7-Tuple PDA
M (Q, Σ, Γ, δ, q0 , z, F )
Keadaan
Simbol
awal
tumpukan
Alfabet
Masukan
Alfabet
Tumpukan
Keadaan
akhir
Fungsi
Transisi
Keadaan
awal
81
Deskripsi Instan
( q, u , s )
Keadaan
saat ini
Input tersisa
Isi tumpukan
saat ini
82
Deskripsi Instan
Contoh:
(q1, bbb, aaa$)
Waktu ke-4:
a
a
a
$
Masukan
a a a b b b
b,a
a, a
q0
,
q1
b,a
q2
Tumpukan
,$ $
q3
83
Deskripsi Instan
Contoh:
(q2 , bb, aa$)
Waktu ke-5:
a
a
a
$
Masukan
a a a b b b
b,a
a, a
q0
,
q1
b,a
q2
Tumpukan
,$ $
q3
84
Kita tuliskan sebagai:
(q1, bbb, aaa$) (q2 , bb, aa$)
Waktu ke-4
Waktu ke-5
85
Proses Eksekusi:
(q0 , aaabbb,$) (q1 , aaabbb,$)
(q1 , aabbb, a$) (q1 , abbb, aa$) (q1 , bbb, aaa$)
(q2 , bb, aa$) (q2 , b, a$) (q2 , ,$) (q3 , ,$)
b,a
a, a
q0
,
q1
b,a
q2
,$ $ q
3
86
(q0 , aaabbb,$) (q1 , aaabbb,$)
(q1 , aabbb, a$) (q1 , abbb, aa$) (q1 , bbb, aaa$)
(q2 , bb, aa$) (q2 , b, a$) (q2 , ,$) (q3 , ,$)
Kesepakatan umum, dituliskan sebagai:
(q0 , aaabbb,$) (q3 , ,$)
87
Definisi Formal (Bahasa dan Deskripsi Instan)
Bahasa L(M ) dari PDA M :
L(M ) {w : (q0 , w, s) (q f , , s' )}
Keadaan awal
Keadaan akhir
88
Contoh:
(q0 , aaabbb,$) (q3 , ,$)
aaabbb L(M )
PDA M :
b,a
a, a
q0
,
q1
b,a
q2
,$ $ q
3
89
(q0 , a b ,$) (q3 , ,$)
n n
a b L(M )
n n
PDA M :
b,a
a, a
q0
,
q1
b,a
q2
,$ $ q
3
90
Sehingga:
L( M ) {a b : n 0}
n n
PDA M :
b,a
a, a
q0
,
q1
b,a
q2
,$ $ q
3
91