Push-Down Automata
TIU & TIK
1. Mahasiswa memahami konsep push
down automata serta mampu merancang PDA untuk mengenali suatu bahasa yang diberikan
Pushdown Automaton -- PDA
Input String
Stack States
Simbol Stack awal
Stack Stack
$
z
Simbol spesial di bawah stack
kepala top
State
simbol Input
simbol
Pop SimbolPush
q
1a
,
b
c
q
2a
inputa
b
top stack Ganti tempate
h
e
h
c
q
1a
,
c
q
2a
a
inputb
b
c
top stackq
1a
,
b
q
2a
a
input Ambil/popb
e
h
e
h
top stackq
1a
,
q
2a
a
inputb
topb
stackq
1a
,
$
q
2a
a
input Stack Kosong Pop$
top stack kosongautomata tdk bisa digunakan
q
1a
,
$
b
q
2a
a
input Transisi yg mungkin Pop$
top stackb
Non-Determinan
q
2a
,
b
c
PDAs merupakan non-determinan
Transisi yg mengikuti non-deterministic
q
1a
,
b
c
q
3a
,
b
c
q
1
,
b
c
q
2transisi
Contoh PDA: ide dasar
PDAM
}
0
:
{
)
(
M
a
b
n
L
n na
,
a
b
,
a
}
0
:
{
)
(
M
a
b
n
L
n n Ide dasar: 1. Push a padastack 2. Sesuaikan inputan bdgn a pada stack
3. penyesuaian
,
a
,
a
b
,
a
q
0q
1q
2q
3b
,
a
, $
$
3. penyesuaian ditemukanContoh 1 Eksekusi : Input
a
a
a
b
b
b
Time 0 Stack$
a
,
a
State Saat inib
,
a
Input
a
a
a
b
b
b
Time 1 Stack$
a
,
a
b
,
a
q
0q
1q
2q
3b
,
a
,
, $
$
Input Stack
a
a
a
b
b
b
$
a
Time 2a
,
a
Stackb
,
a
Input Stack
a
a
a
b
b
b
$
a
a
Time 3a
,
a
b
,
a
q
0q
1q
2q
3b
,
a
,
, $
$
Input Stack
a
a
a
b
b
b
$
a
a
a
Time 4a
,
a
Stackb
,
a
Input
a
a
a
b
b
b
Stack$
a
a
a
Time 5a
,
a
b
,
a
q
0q
1q
2q
3 Stackb
,
a
,
, $
$
Input
a
a
a
b
b
b
$
a
Stack Time 6a
a
,
a
Stackb
,
a
Input
a
a
a
b
b
b
$
Stack Time 7a
a
,
a
b
,
a
q
0q
1q
2q
3b
,
a
,
, $
$
Input
a
a
a
b
b
b
Time 8$
Stacka
,
a
b
,
a
Sebuah string diterima jika :
Seluruh inputan dapat diselesaikan DAN
menuju ke state terakhir. menuju ke state terakhir.
Pada akhir komputasi,
input string
Apakah diterima oleh PDA:
aaabbb
}
0
:
{
a
b
n
L
n nApakah bahasa diterima oleh PDA: Secara general,
a
,
a
b
,
a
q
0q
1q
2q
3b
,
a
,
, $
$
Contoh yang ditolak: Input
a
a b
Time 0 Stack$
a
,
a
State Saat inib
,
a
Contoh yang ditolak : Input
a
a b
Time 1 Stack$
0q
a
,
a
b
,
a
q
1q
2q
3 State Saat inib
,
a
,
, $
$
Contoh yang ditolak : Input
a
a b
Time 2 Stack$
a
a
,
a
State Saat inib
,
a
Contoh yang ditolak : Input
a
a b
Time 3 Stack$
a
a
0q
a
,
a
b
,
a
q
1q
2q
3 State Saat inib
,
a
,
, $
$
Contoh yang ditolak : Input
a
a b
Time 4 Stack$
a
a
a
,
a
State Saat inib
,
a
Contoh yang ditolak : Input
a
a b
Time 4 Stack$
a
a
ditolak
0q
a
,
a
b
,
a
q
1q
2q
3 State Saat inib
,
a
,
, $
$
ditolak
Input string
Ditolak oleh PDA:
aab
Sebuah string ditolak jika :
Seluruh inputan tidak terselesaikan DAN
Tidak sampai ke state akhir Tidak sampai ke state akhir
Pada akhir komputasi,
Contoh PDA lain :
Apakah bahasanya?
PDAM
b
b
a
a
,
,
b
b
a
a
,
,
}
}
,
{
:
{
)
(
M
vv
v
a
b
L
R Ide Dasar: 1. Push vpd stack 2. Input utk
pindah state 3. sesuaikan pd input dgn v pada stack R
v
, $
$
q
q
b
b
a
a
,
,
,
q
b
b
a
a
,
,
4. Penyesuain ditemukanContoh 2 Eksekusi : Input Time 0 Stack
$
a
b
b
a
Stackb
b
a
a
,
,
b
b
a
a
,
,
Input
a
b
a
Time 1 Stack$
a
b
Stack
, $
$
q
q
b
b
a
a
,
,
,
q
b
b
a
a
,
,
Input Time 2 Stack
$
a
a
b
b
a
b
Stackb
b
a
a
,
,
b
b
a
a
,
,
Input Time 3 Stack
$
a
a
b
b
a
b
perpindahan Stack
, $
$
q
q
b
b
a
a
,
,
,
q
b
b
a
a
,
,
Input Time 4 Stack
$
a
a
b
b
a
b
Stackb
b
a
a
,
,
b
b
a
a
,
,
Input Time 5 Stack
$
a
b
b
a
a
Stack
, $
$
q
q
b
b
a
a
,
,
,
q
b
b
a
a
,
,
Input Time 6 Stack
$
a
b
b
a
Stackb
b
a
a
,
,
b
b
a
a
,
,
Contoh yg ditolak: Input Time 0 Stack
$
a
b
b
b
Stack
, $
$
q
q
b
b
a
a
,
,
,
q
b
b
a
a
,
,
Input Time 1 Stack
$
a
a
b
b
b
Stackb
b
a
a
,
,
b
b
a
a
,
,
Input Time 2 Stack
$
a
b
a
b
b
b
Stack
, $
$
q
q
b
b
a
a
,
,
,
q
b
b
a
a
,
,
Input Time 3 Stack
$
a
b
perpindahana
b
b
b
Stackb
b
a
a
,
,
b
b
a
a
,
,
Input Time 4 Stack
$
a
b
a
b
b
b
Stack
, $
$
q
q
b
b
a
a
,
,
,
q
b
b
a
a
,
,
Input Time 5 Stack
$
a
a
b
b
b
Transisi tidak mungkin Inputan tdk terselesaikan Stack
b
b
a
a
,
,
b
b
a
a
,
,
Komputasi lain pada string yg sama : Input Time 0 Stack
$
a
b
b
b
Stack
, $
$
q
q
b
b
a
a
,
,
,
q
b
b
a
a
,
,
Input Time 1 Stack
$
a
a
b
b
b
Stackb
b
a
a
,
,
b
b
a
a
,
,
Input Time 2 Stack
$
a
b
a
b
b
b
Stack
, $
$
q
q
b
b
a
a
,
,
,
q
b
b
a
a
,
,
Input Time 3 Stack
$
a
b
a
b
b
b
b
Stackb
b
a
a
,
,
b
b
a
a
,
,
Input Time 4 Stack
a
b
b
b
$
a
b
b
b
Stack
, $
$
q
q
b
b
a
a
,
,
,
q
b
b
a
a
,
,
Input Time 5 Stack
a
b
b
b
$
a
b
b
b
Tdk sampai State akhir Stackb
b
a
a
,
,
b
b
a
a
,
,
Tdk ada komputasi
Yg menerima string
abbb
)
(
M
L
abbb
, $
$
q
q
b
b
a
a
,
,
,
q
b
b
a
a
,
,
Teori Tentang
“Pushing Strings”
Input Pop symbol Push Input symbol symbol Push stringq
1a
,
b
cdf
q
2a
inputa
Contoh 1:b
top stack Pushe
h
h
e
c
d
f
String Yg di pushContoh 2
a
, $
0$
b
, $
1$
PDAM
)}
(
)
(
:
}
,
{
{
)
(
M
w
a
b
*n
w
n
w
L
a
ba
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Time 0
Input
a
b
b
b
a
a
$
a
, $
0$
b
, $
1$
Eksekusi untuk string abbbaa :
State Saat ini Stack
$
$
,
q
q
a
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Time 1 Input
a
b
b
b
a
a
$
Stack0
a
, $
0$
b
, $
1$
Stacka
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Time 3 Input
a
b
b
b
a
$
Stacka
$
a
, $
0$
b
, $
1$
0
Stack$
$
,
q
q
a
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Time 4 Input
a
b
b
b
a
$
Stacka
1
a
, $
0$
b
, $
1$
Stacka
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Time 5 Input
a
b
b
b
a
$
Stacka
1
1
a
, $
0$
b
, $
1$
Stack$
$
,
q
q
a
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Time 6 Input
a
b
b
b
a
$
Stacka
1
a
, $
0$
b
, $
1$
1
Stacka
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Time 7 Input
a
b
b
b
a
$
Stacka
1
a
, $
0$
b
, $
1$
Stack$
$
,
q
q
a
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
Time 8 Input
a
b
b
b
a
a
$
a
, $
0$
b
, $
1$
Stacka
, $
0$
a
, 0
00
a
, 1
b
, $
1$
b
, 1
11
b
, 0
q
1a
,
b
w
q
2Fungsi Transisi: Fungsi Transisi:
q
1q
2w
b
a
,
q
3w
b
a
,
q
3w
b
a
,
)}
,
(
),
,
{(
)
,
,
(
q
1a
b
q
2w
q
3w
Fungsi transisi:Formal Definition
Pushdown Automaton (PDA)
)
,
,
,
δ
,
Γ
,
Σ
,
(
Q
q
0z
F
M
States State akhir States Input SimbolDiskripsi Instan
)
,
,
(
q
u
s
State Isi stack
State
Saat ini Input
tersisa
Isi stack Saat ini
Input
a
a
a
b
b
b
a
a
Time 4:
Contoh : Diskripsi instan
$)
,
,
(
q
1bbb
aaa
a
a
,
a
Stack$
b
,
a
Input
a
a
a
b
b
b
a
a
Time 5:
Contoh : Diskripsi instan
$)
,
,
(
q
2bb
aa
a
a
,
a
b
,
a
q
q
q
q
Stack$
b
,
a
,
, $
$
Penulisan :
$)
,
,
(
$)
,
,
(
q
1bbb
aaa
q
2bb
aa
Time 4 Time 5,$)
,
(
,$)
,
(
$)
,
,
(
$)
,
,
(
$)
,
,
(
$)
,
,
(
$)
,
,
(
,$)
,
(
,$)
,
(
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
Komputasi :a
,
a
b
,
a
q
0q
1q
2q
3b
,
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
Penulisan akhir :Formal Definisi
bahasa pada PDA
M
:)}
'
,
,
(
)
,
,
(
:
{
)
(
M
w
q
0w
s
q
s
L
f
)
(
M
L
Contoh :
,$)
,
(
,$)
,
(
q
0aaabbb
q
3
PDAM
:)
(
M
L
aaabbb
a
,
a
b
,
a
PDA :,$)
,
(
,$)
,
(
q
0a
nb
nq
3
)
(
M
L
b
a
n n
PDAM
:a
,
a
b
,
a
q
0q
1q
2q
3b
,
a
,
, $
$
PDA :PDA
M
:}
0
:
{
)
(
M
a
b
n
L
n n Kemudian :a
,
a
b
,
a
PDA :Latihan
diketahui sebuah PDA M sebagai berikut :
a a,
)}
(
)
(
,
prefix
setiap
utk
:
}
,
{
{
)
(
*v
n
v
n
v
b
a
w
M
L
b a
a b a a , ,q
0 PDAM
Apakah string aabtermasuk dalam bahasa L(M) ?
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 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