0% menganggap dokumen ini bermanfaat (0 suara)
488 tayangan8 halaman

Push Down Automata

Push Down Automata (PDA) adalah mesin otomata dari bahasa bebas konteks yang digambarkan sebagai tumpukan tak terbatas. PDA menggunakan operasi push dan pop untuk menambahkan atau menghapus simbol dari tumpukan saat berpindah antar state. Konfigurasi PDA terdiri dari state, string masukan yang tersisa, dan isi tumpukan. String diterima jika konfigurasi akhir mencapai state penerima atau tumpukan kosong

Diunggah oleh

QayyumLadela
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
488 tayangan8 halaman

Push Down Automata

Push Down Automata (PDA) adalah mesin otomata dari bahasa bebas konteks yang digambarkan sebagai tumpukan tak terbatas. PDA menggunakan operasi push dan pop untuk menambahkan atau menghapus simbol dari tumpukan saat berpindah antar state. Konfigurasi PDA terdiri dari state, string masukan yang tersisa, dan isi tumpukan. String diterima jika konfigurasi akhir mencapai state penerima atau tumpukan kosong

Diunggah oleh

QayyumLadela
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 8

Push Down Automata(PDA)

Push Down Automata (PDA) merupakan mesin otomata dari bahasa


bebas konteks. PDA di gambarkan sebagai tempat penyipanan yang tidak
terbatas berupa stack/tumpukan.
Stack ialah kumpulan dari elemen-elemen sejenis dengan sifat penambahan
elemen dan pengambilan elemen melalui suatu tempat yang disebut top of
stack (puncak stack). Prinsip pada stack adalah L!". Pengambilan elemen
dari stack dinyatakan dengan operasi pop# sedang memasukkan elemen ke
dalam stack dengan operasi push.
$ontoh stack %
A
D
&
'ika dilakukan operasi pop %
'ika dilakukan operasi push (# maka kondisi stack akan menjadi %
Definisi % PDA adalah pasangan ) tuple
* + (,# # -. # !# # , Z. )# dimana %
, % himpunan hingga state#
% alfabet input#
% alfabet/simbol stack#
-. % state a0al# - . ,
1. % simbol a0al stack# 1.
! % himpunan state penerima# ! ,
D
&
(
D
&
2
Top stack
*enjadi top
stack# karena
elemen A
diambil (pop)
*enjadi top stack karena dimasukkan elemen (
% fungsi transisi # % , ( 34) 5
* ,
(himpunan
bagian dari , 6)
(- . # a# 1. ) + (- . # A1. ). Push/insert
(- . # a# A) + (-
2
# ). Pop /delete
7ntuk state - ,# simbol input a # dan simbol stack 8 #
(-# a# 8) + (p# ) berarti % PDA bertransisi ke state p dan
mengganti 8 pada stack dengan string .
9onfigurasi PDA pada suatu saat dinyatakan sebagai triple (-# :#
)# dimana %
- , % state pada saat tersebut# : 6 % bagian string input
yang belum dibaca# dan 6 % string yang menyatakan isi
stack dengan karakter terkiri menyatakan top of stack.
*isalkan (p# ay# 8) adalah sebuah konfigurasi# dimana % a #
y 6# 8 # dan 6. *isalkan pula (p# a# 8) + (-# )
untuk - , dan 6. Dapat kita tuliskan bah0a % (p# ay# 8)
(-# y# ).
$ontoh (PDA Deterministik)%
PDA % * + (,# # # -. # 1. # # !)
pengenal palindrome L + 3:c:
;
: (ab)64# dimana :
;
adalah
cermin(:)# mempunyai tuple %
, + 3-. # -2# - 5 4# ! + 3 - 5 4# + 3a# b# c4# + 3A# (# 1. 4# dan
fungsi transisi terdefinisi melalui tabel berikut %
5

Sebagai contoh# perhatikan bah0a fungsi transisi <o. 2 dapat
dinyatakan sebagai % (-. # a# 1. ) + (-. # A1. ). Pada tabel transisi
tersebut terlihat bah0a pada state - . PDA akan melakukan P7S=
jika mendapat input a atau b dan melakukan transisi state ke state -
2 jika mendapat input c. Pada state -2 PDA akan melakukan P"P.
(erikut ini pengenalan dua string oleh PDA di atas %
2. abcba % (-. # abcba# 1. ) (- . # bcba# A1. ) (2)
(- . # cba# (A1. ) (>)
(-2# ba# (A1. ) (?)
(-2# a# A1. ) (22)
(-2# # 1. ) (2.)
(- 5 # # 1. ) (25) (diterima)
@
Dapat ditulis (-# a# 1) + (-# A1)
*esin dengan konfigurasi %
State -
.
dan top stack 1 membaca inputAaA
konfigurasi menjadi State -
.
#push A ke stack
A# A menjadi top stack
Dapat ditulis (-
2
#a# A) + (-
2
#)
*esin dengan konfigurasi %
State -
2
dan top stack A membaca inputAaA
konfigurasi menjadi State -
2
# A di pop#
elemen diba0ah A menjadi top stack
5. acb % (-. # acb# 1. ) (- . # cb# A1. ) (2)
(-2# b# A1. ) (B)#
(halt/crash ditolak)
@. ab % (-. # ab# 1. ) (- . # b# A1. ) (2)
(- . # # (A1. ) (>) (crash ditolak)
Penerimaan dan penolakan tiga string di atas dapat dijelaskan
sebagai berikut %
2. string abcba diterima karena tracing sampai di state penerima (-
5 ) dan string CabcbaD selesai dibaca (string yang belum dibaca
+ )
5. string acb ditolak karena konfigurasi akhir (-2# b# a 1. )
sedangkan fungsi transisi (-2# b# a) tidak terdefinsi
@. string ab ditolak karena konfigurasi akhir (- . # # ba1. )
sedangkan fungsi transisi (-. # # b) tidak terdefinsi
lustrasi graf fungsi transisi PDA di atas ditunjukkan melalui
gambar berikut %
b# 1 . /(1 . a# A/
a# 1
.
/A1
.
a# A/AA
c# A/A
c# (/(
start -
.
c# 1
.
/ 1
.
-
2
# 1
.
/ 1
.
-
5
a# (/A( b# (/((
b# A/(A b# (/
<otasi (p# ay# 8) (-# y# ) dapat diperluas menjadi %
(p# :# ) 6 (-# y# )# yang berarti konfigurasi (-# y# ) dicapai
melalui sejumlah (. atau lebih) transisi.
>
Ada dua cara penerimaan sebuah kalimat oleh PDA# yang
masing-masing terlihat dari konfigurasi akhir# sebagaimana
penjelasan berikut %
'ika * + (,# # # -. # 1. # # !) adalah PDA dan : 6# maka
: diterima dengan state akhir (accepted by final state) oleh
PDA * jika % (- . # :# 1. ) 6 (-# # ) untuk 6 dan -
A. : diterima dengan stack hampa (accepted by empty stack)
oleh PDA * jika % (- . # :# 1. ) 6 (-# # ) untuk - ,.
$ontoh (PDA <on-Deterministik)%
<PDA % * + (,# # # -. # 1. # # !) mempunyai komponen tuple
berikut %
, + 3-. # -2# - 5 4# ! + 3- 5 4# + 3a# b# c4# + 3D#A#(#$# 14#
dan fungsi transisi %
2. (- . # E# 1) + (-
2
# D1)
5. (-
2
# E# D) + (-
2
# ADA)# (-
2
# (D()# (-
2
# $)
@. (-
2
# a# A) + (-
2
# E)
>. (-
2
# b# () + (-
2
# E)
F. (-
2
# c# $) + (-
2
# E)
G. (-
2
# E# 1) + (-
5
# 1)
-.#abc#1+-2#abc#D1 (2)
+-2#abc#ADA1 (5 kiri)
+-2#bc#DA1 (@)
+-2#bc#(D(A1 (5 tengah)
+-2#c#D(A1 (>)
+-2#c#$(A1
+-2# E# (A1+halt ditolak
-.# c#1+(-2#c#D1) (2)
+ (-2#c#$1) (5 kanan)
+ (-2# E# 1) (F)
F
+ (-5# E#1) (G) diterima
-.#acb#1 + -2#acb#D1+-2#acb#ADA1+-2#cb#DA1+-2#cb#$A1+
+-2#b#A1+halt. Ditolak
-.#aca#1 + -2#aca#D1+-2#aca#ADA1+-2#ca#DA1+-2#ca#$A1+
+ -2#a#A1+-2# E#1+-5 diterima
-.#abcab#1+-2#abcab#D1+-2#abcab#ADA1+-2#bcab#DA1
+-2#bcab#(D(A1+ -2#cab#D(A1+-2#cab#$(A1
+ -2#ab#(A1+halt ditolak
abcba# abbcbba diterima
$ontoh (PDA <on-Deterministik)%
PDA * + (,# # # -. # 1. # # !) pengenal palindrome L + 3::
;
: (ab)64 mempunyai komponen tuple berikut %
, + 3-. # -2# - 5 4# ! + 3 - 5 4# + 3a# b4# + 3a# b# 1. 4# dan
fungsi transisi terdefinisi melalui tabel berikut %
<o. St. n. TopS =asil <o. St. n. TS =asil
2 -
.
a 1
.
(-
.
# a1
.
)# (-
2
# 1
.
) ) -
.
1
.
(-
2
# 1
.
)
5 -
.
b 1
.
(-
.
# b1
.
)# (-
2
# 1
.
) B -
.
a
(-
2
# a)
@ -
.
a a (-
.
# aa)# (-
2
# a) ? -
.
b (-
2
# b)
> -
.
b a (-
.
# ba)# (-
2
# a) 2. -
2
a a (-
2
# )
F -
.
a b (-
.
# ab)# (-
2
# b) 22 -
2
b b (-
2
# )
G -
.
b b (-
.
# bb)# (-
2
# b) 25 -
2
1
.
(-
5
# )
-.#aba#H + -.#ba#aH (2 kiri)
+ -2# a# aH (> kanan)
+ -2# # H(2.)
+-5# # (25) diterima
G
-.#aba#H + -.#ba#aH (2 kiri)
+ -.# a# ba1 (> kiri)
+ -2# #ba1 (F kanan)
+ halt
-.# aa# 1+-.# a# a1+-.# # aa1+-2# #aa1+halt
-.# aa# 1+-o# a# a1+-2# #a1+halt
-.# aa# 1+-2# a# 1+halt
-.# abba# 1+ -.# bba# a1+-.# ba# ba1+-.#a#bba1+-.# #abba1+-2#
Pada tabel transisi tersebut terlihat bah0a pada state - . PDA akan
melakukan P7S= jika mendapat input a atau b dan melakukan
transisi state ke state -2 jika mendapat input . Pada state -2 PDA
akan melakukan P"P. 9edua $ontoh di atas menunjukkan bah0a
PDA dapat dinyatakan sebagai mesin P7S=-P"P.
(erikut ini pengenalan string CbaabD oleh PDA di atas %
2. (- . # baab# 1. ) (- . # aab# b1. )(5 kiri)
(- . # ab# ab1. )(F kiri)
(-2# b# ab1. ) (@ kanan)
(-2# b# b1. ) (22)
(-2# # 1. ) (2.)
(- 5 # # 1. ) (25) (diterima)
5. (- . # baab# 1. ) (-2# baab# 1. ) (5 kanan) (crash
ditolak)
@. (- . # baab# 1. ) (- . # aab# b1. )(5 kiri)
(- . # ab# ab1. )(F kiri)
(- . # b# aab1. )(@ kiri)
(-2# b# aab1. )(> kanan) (crash ditolak)
>. (- . # baab# 1. ) (- . # aab# b1. )(5 kiri)
(- . # ab# ab1. )(F kiri)
)
(- . # b# aab1. )(@ kiri)
(- . # # baab1. ) (> kiri)
(-2# # baab1. ) (?) (crash ditolak)
-.#aba#H + -.#ba#aH + -2# a# aH + -2# # H +-5# #
B

Anda mungkin juga menyukai