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