Bahasa Formal
PDA yang Diterima Bahasa Bebas Konteks
Pertemuan Ke-13
Sri Handayaningsih, S.T., M.T. Email : [email protected]
TIU & TIK
Memahami konsep PDA yang diterima oleh CFG antara lain :
1. PDA untuk CFG
2. Deterministik PDA
Bahasa bebas konteks (Gramer) Bahasa yg diterima Oleh PDA Teorema: 3
Bahasa bebas konteks (Gramer) Bahasa yg diterima Oleh PDA Pembuktian - langkah 1: 4
Konversikan gramer bebas konteks Pada PDA dengan
G
Bahasa bebas konteks (Gramer) Bahasa yg diterima Oleh PDA Pembuktian - langkah 2: 5
Konversikan PDA ke grammer bebas konteks
G
dengan :M
)
(
)
(
G
L
M
L
Konversikan
Grammer bebas konteks
ke
Pembuktian - langkah 1
6
ke
PDA
Bahasa bebas konteks (Gramer) Bahasa yg diterima Oleh PDA 7
Konversikan grammer bebas konteks Pada PDA dengan
G
Ke PDA
M
sebagai berikut : Konversi grammerG
8
M
Simulasi menggunakan derivasi kiri PadaG
Produksi pada
w
A
Terminal padaa
G
G
Konversi grammer
G
ke PDAM
9
q
0
,
S
q
1
, $
$
q
2w
A
,
a
,
a
S Grammer Derivasi kiri $) , , ( ,$) , ( 1 1 1 1 1 0 S q q n k k n k k Komputasi PDA Simulasi grammer Derivasi kiri 10 n k k m k X X 1 1 1 1 ,$) , ( $) , , ( 2 1 1 1 q X X q k n m Variabel kiri
Grammer PDA
b
S
aSTb
S
,
,
T
Ta
T
b
S
aSTb
S
Contoh
11q
0
,
S
q
1
, $
$
q
2
T
Ta
T
b
S
,
,
,
T
b
b
a
a
,
,
abTb
aSTb
S
$) , , ( $) , , ( $) , , ( $) , , ( ,$) , ( 1 1 1 0 Tb ab q bTb bab q STb bab q S abab q abab q Derivsi Grammer Komputasi PDA
12
abab
abTab
,$) , ( ,$) , ( $) , , ( $) , , ( $) , , ( $) , , ( 2 1 1 1 1 1 q q b b q ab ab q Tab ab q Tb ab q
b
S
aSTb
S
,
,
Input Stack$
a
b
a
Time 0b
Derivasi: 13 0q
,
S
q
1
, $
$
q
2
T
Ta
T
b
S
,
,
,
b
b
a
a
,
,
Stack
b
S
aSTb
S
,
,
Input Stack$
a
b
a
b
S
Time 0 Derivasi: S 14q
0
,
S
q
1
, $
$
q
2
T
Ta
T
b
S
,
,
,
b
b
a
a
,
,
Stack
b
S
aSTb
S
,
,
Input Stack$
a
b
a
b
a
b
S
T
Time 1 Derivasi: S aSTb 15q
0
,
S
, $
$
q
2
T
Ta
T
b
S
,
,
,
b
b
a
a
,
,
Stackq
1
b
S
aSTb
S
,
,
Input Stack$
a
b
a
b
a
b
S
T
Time 2 aSTb S Derivasi: 16q
0
,
S
, $
$
q
2
T
Ta
T
b
S
,
,
,
b
b
a
a
,
,
Stackq
1
b
S
aSTb
S
,
,
Input Stack$
a
b
a
b
b
T
b
Time 3Derivasi : S aSTb abTb
17
q
0
,
S
, $
$
q
2
T
Ta
T
b
S
,
,
,
b
b
a
a
,
,
Stackq
1
b
S
aSTb
S
,
,
Input Stack$
a
b
a
b
b
T
b
Time 4Derivasi: S aSTb abTb
18
q
0
,
S
, $
$
q
2
T
Ta
T
b
S
,
,
,
b
b
a
a
,
,
Stackq
1
b
S
aSTb
S
,
,
Input Stack$
a
b
a
b
b
T
a
Time 5Derivasi: S aSTb abTb abTab
19
q
0
,
S
, $
$
q
2
T
Ta
T
b
S
,
,
,
b
b
a
a
,
,
Stackq
1
b
S
aSTb
S
,
,
Input Stack$
a
b
a
b
b
T
a
Time 6Derivasi: S aSTb abTb abTab abab
20
q
0
,
S
, $
$
q
2
T
Ta
T
b
S
,
,
,
b
b
a
a
,
,
Stackq
1
b
S
aSTb
S
,
,
Input Stack$
a
b
a
b
b
a
Time 7Derivasi: S aSTb abTb abTab abab
21
q
0
,
S
, $
$
q
2
T
Ta
T
b
S
,
,
,
b
b
a
a
,
,
Stackq
1
b
S
aSTb
S
,
,
Input Stack$
a
b
a
b
b
Time 8Derivasi: S aSTb abTb abTab abab
22
q
0
,
S
, $
$
q
2
T
Ta
T
b
S
,
,
,
b
b
a
a
,
,
Stackq
1
b
S
aSTb
S
,
,
Input Stack$
a
b
a
b
Time 9Derivasi: S aSTb abTb abTab abab
23
q
0
,
S
q
1
, $
$
q
2
T
Ta
T
b
S
,
,
,
b
b
a
a
,
,
Stack diterimaGrammer dgn string
G
PDA menerimaM
Secara Umum, dapat dilihat :
w
Jika danw
Hanya jika 24w
S
*
(
q
0,
w
,$)
(
q
2,
,$)
Hanya jika sehinggaL
(
G
)
L
(
M
)
Kesimpulan :
Untuk setiap bahasa bebas konteks maka PDA dapat menerima
L
L
25 Bahasa bebas konteks (Gramer) Bahasa yg diterima Oleh PDAKonversi
PDA
ke
Pembuktian - langkah 2 26ke
Bahasa bebas konteks (Gramer) Bahasa yg diterima Oleh PDA 27
Konversika PDA ke grammer bebas konteks
G
denganM
)
(
)
(
G
L
M
L
Konversikan PDA
M
keGrammer bebas konteks
G
sbg berikut:Komputasikan Simulasi dari
28
M
Komputasikan Simulasi dariDengan derivasi kiri
Beberapa Modifikasi Penting
1. stack tdk pernah kosong selama komputasi 2. Jika hanya ada satu state yg diterima
dan stack kosong ketika stack menerima string
29
1. stack tdk pernah kosong selama komputasi Stack 30
$
a
OK$
OK NOT OK$
a
$
Penyelesain :
Perkebalkan simbol baru utk menandai Stack paling bawah
#
31
$
a
#
$
#
#
PDA asli
Menambahkan
#
pada awal PDAinitial state baru 32 $# ,$ asli initial state baru
i
q
,
s
q
jKonversikan seluruh transisi
setelah popping pada automata yg
tdk selesai
$
} {# x pop$
33 iq
,
s
q
j halting statex
x
,
x{#} pop$
PDA
,
x
Stack kosong } {# x2. Modifikasi PDA pada akhir stack dgn stack kosong dan
menerima state yg unik
34
f
q
,
x
menerima states lama
,#
Menerima State
3. Modifikasikan PDA yg tidak ada transisi popping : i
q
, yq
j
35 iq
, yq
j}
{#
a
, $
0$
b
, $
1$
)}
(
)
(
:
}
,
{
{
)
(
M
w
a
b
*n
w
n
w
L
a
b Contoh :(modifikasi yg tidak perlu)
36
,
$
0q
q
fa
, 0
00
a
, 1
b
, 1
11
b
, 0
Kontruksi Grammer
A
Pada grammer
G
:Terminal :
simbols stack PDA
Variabel :
a
simbols input PDA37
Terminal :
a
simbols input PDAq
a
,
A
q
1 transisi PDA38
transisi PDA
q
a
,
A
B
1B
2
B
mq
139
S Derivasi Grammer kiri ,$) , (q1 1 kk 1 n Komputasi PDA 40 n k k m k X X 1 1 1 1 ) , , ( ) , , ( 2 1 1 1 q X X q k n m Variabel kiri
Contoh PDA:
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
41 0q
q
f Grammer:$
a
0
$
00
0
a
a
1
$
1
$
b
11
1
b
b 0$
a
0
$
$
Derivasi Kiri Grammer : Komputasi PDA:$)
0
,
,
(
,$)
,
(
0 0bba
q
abba
q
42abba
abba
abb
ab
$
$
1
$
)
,
,
(
,$)
,
(
$)
1
,
,
(
,$)
,
(
0 0 0
fq
q
a
q
ba
q
a
, $
0$
b
, $
1$
$ Derivasi:a
b b
a
Time 0 43
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
a
, $
0$
b
, $
1$
$ Derivasi:a
b b
a
Time 1
0
$ 0 a 44
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Stack$
a
, $
0$
b
, $
1$
$ Derivasi:a
b b
a
Time 2
a0$
ab$ 45
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Stack$
a
, $
0$
b
, $
1$
$ Derivasi:a
b b
a
Time 3
a0$
ab$1
$ 1 abb
46
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Stack$
a
, $
0$
b
, $
1$
Derivasi:a
b b
a
Time 4 $
a0$
ab$
abb1$ $ abba 47
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Stack$
a
, $
0$
b
, $
1$
Derivasi:a
b b
a
Time 5 kosong
abba $
a0$
ab$
abb1$ $ abba 48
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Stack kosongBagaimanapun juga, konversi grammer Tdk dpt bekerja pada seluruh PDAs:
A
b
,
$
$
,
A
a
$
,
A
A
a
49 0q
b
,
A
q
1
,
$
q
f}
1
:
{
)
(
M
a
b
n
L
n n
A
b
,
0q
q
f$
$
,
A
a
$
,
A
A
a
A
b
,
1q
,
$
50 Grammer:$
$
aA
A
aA
$
b
A
$
Derivasi yg buruk:
)
(
$
$
$
aaA
aab
aab
L
M
aA
S
51 Grammer:$
$
aA
A
aA
$
b
A
$
Kontruksi Grammer Yg Benar
)
(
q
iAq
jPada grammer
G
:simbol stack PDA
Variabel:
52 Terminals: simbol input pada PDA
q
a
,
A
q
1 Transisi PDA53
Transisi PDA
q
a, A B1B2 Bmq
1 54 Produksi Grammer)
(
)
)(
(
)
(
qAq
m
a
q
1B
1q
2q
2B
2q
3
q
mB
mq
m1Utk seluruh state yg mungkin
pada PDA 2 1
,
,
q
mq
Variabel awal :
(
q
oZq
f)
Simbol stack bawah
#
or
$
55
Contoh ::
a
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
56
,
$
0q
q
fa
q
q
1
)
(
0 0 Produksi Grammar:Contoh :
a
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
57
,
$
0q
q
f)
$
)(
1
(
|
)
$
)(
1
(
)
$
(
)
$
)(
1
(
|
)
$
)(
1
(
)
$
(
0 0 0 0 0 0 0 0 0 0 0 0 0 f f f f f f fq
q
q
q
b
q
q
q
q
b
q
q
q
q
q
q
b
q
q
q
q
b
q
q
Produksi Grammer :Contoh:
a
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
58
,
$
0q
q
f Produksi Grammer:(
q
0$
q
f)
)
$
)(
1
(
|
)
$
)(
1
(
)
$
(
)
$
)(
1
(
|
)
$
)(
1
(
)
$
(
0 0 0 0 0 0 0 0 0 0 0 0 0 f f f f f f fq
q
q
q
b
q
q
q
q
b
q
q
q
q
q
q
b
q
q
q
q
b
q
q
)
1
)(
1
(
|
)
1
)(
1
(
)
1
(
q
0q
0
b
q
0q
0q
0q
0b
q
0q
fq
fq
0Kesimpulan Grammer:
(
q
0$
q
f)
:
start vari
able
59
)
1
)(
1
(
|
)
1
)(
1
(
)
1
(
)
1
)(
1
(
|
)
1
)(
1
(
)
1
(
0 0 0 0 0 0 0 0 0 0 0 0 0 f f f f f f fq
q
q
q
b
q
q
q
q
b
q
q
q
q
q
q
b
q
q
q
q
b
q
q
)
$
)(
0
(
|
)
$
)(
0
(
)
$
(
)
$
)(
0
(
|
)
$
)(
0
(
)
$
(
0 0 0 0 0 0 0 0 0 0 0 0 0 f f f f f f fq
q
q
q
a
q
q
q
q
a
q
q
q
q
q
q
a
q
q
q
q
a
q
q
)
0
)(
0
(
|
)
0
)(
0
(
)
0
(
)
0
)(
0
(
|
)
0
)(
0
(
)
0
(
0 0 0 0 0 0 0 0 0 0 0 0 0 f f f f f f fq
q
q
q
a
q
q
q
q
a
q
q
q
q
q
q
a
q
q
q
q
a
q
q
b
q
q
a
q
q
)
0
(
)
1
(
0 0 0 0 60b
q
q
0
)
(
0 0
)
$
(
q
0q
f)
$
(
q
0q
f)
$
)(
0
(
q
0q
0q
0q
fa
)
$
(
q
q
ab
(
,
,$)
$)
0
,
,
(
,$)
,
(
0 0ba
q
bba
q
abba
q
Derivasi Grammar Kiri Komputasi PDA 61)
$
(
q
0q
fab
)
$
)(
1
(
q
0q
0q
0q
fabb
)
$
(
q
0q
fabba
abba
(
,
,
)
,$)
,
(
$)
1
,
,
(
,$)
,
(
0 0 0
fq
q
a
q
ba
q
a
, $
0$
b
, $
1$
) $ (q0 q f Derivasi:a
b b
a
Time 0 62
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
a
, $
0$
b
, $
1$
) $ (q0 q f Derivasi:a
b b
a
Time 1
0
) $ )( 0 (q0 q0 q0 q f a 63
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Stack$
a
, $
0$
b
, $
1$
) $ (q0 q f Derivasi:a
b b
a
Time 2
a(q00q0)(q0$q f )(
$
)
0q
fq
ab
64
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Stack$
a
, $
0$
b
, $
1$
) $ (q0 q f Derivasi:a
b b
a
Time 3
a(q00q0)(q0$q f )(
$
)
0q
fq
ab
1
) $ )( 1 (q0 q0 q0 q f abb
65
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Stack$
a
, $
0$
b
, $
1$
) $ (q0 q f Derivasi:a
b b
a
Time 4
a(q00q0)(q0$q f )(
$
)
0q
fq
ab
) $ )( 1 (q0 q0 q0 q f abb
abba(q0 $qf ) 66
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Stack$
a
, $
0$
b
, $
1$
) $ (q0 q f Derivasi:a
b b
a
Time 5
a(q00q0)(q0$q f )(
$
)
0q
fq
ab
) $ )( 1 (q0 q0 q0 q f abb
abba(q0 $qf )
abba
kosong 67
,
$
0q
q
fa
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Stack kosongSecara Umum:
wB
Aq
q
)
(
Jika dan Hanya Grammer PDA)
,
,
(
)
,
,
(
q
w
A
q
B
68wB
Aq
q
i j)
(
Hanyajika(
q
i,
w
,
A
)
(
q
j,
,
B
)
Thus:
Jika dan Hanya Grammer dg
general PDA menerima
)
,
,
(
,$)
,
(
q
w
q
w
w
69w
q
q
f
)
$
(
0 Hanya jika(
q
0,
w
,$)
(
q
f,
,
)
sehingga:
Untuk setiap PDA
Merupakan grammer bebas kontek Akan menerima bahasa yg sama
70 Bahasa Bebas konteks (Grammer) bahasa diterima Oleh PDA
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 &
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