Anda di halaman 1dari 29

Created by :

AQIL AZIZI ARMAL SYAHPUTRA

DERJA

Push Down Automata (PDA) merupakan mesin otomata dari bahasa bebas konteks. PDA di gambarkan sebagai tempat penyipanan yang tidak terbatas berupa stack/tumpukan. State Automata (FSA) adalah mesin otomata pada bahasa reguler
PDA Tempat penyimpanan tidak terbatas berupa stack/tumpukan Dari Deterministic PDA bisa diubah ke Nondeterministic PDA FSA Mempunyai kemapuan memori yang terbatas Dari Nondeterministic FSA bisa diubah ke Deterministic FSA

Finite

Perbedaan

PDA dan FSA :

Stack

(tumpukan) adalah suatu struktur data yang menggunakan prinsip LIFO (Last In First Out). stack selalu memiliki top of stack dan elemen-elemen stack itu yang akan masuk ke dalam stack dengan method pushdan akan keluar dari stack dengan method pop.

Sebuah

Stack adalah kumpulan dari elemen-elemen sejenis dengan sifat penambahan elemen dan pengambilan elemen melalui suatu tempat yang disebut top stack Operasi Pop adalah pengambilan elemen dari stack Operasi Push adalah memasukkan elemen ke dalam stack
A

Contoh Stack

D E

Top Stack

Operasi pop
A D E D E

Operasi push B
A D E B D E

Tujuh tupel untuk Push Down Automata adalah :

Q S F Z

= = = = = = =

himpuanan state himpunan simbol input simbol-simbol stack fungsi transisi state awal himpunan state akhir simbol awal stack / top stack

PDA memiliki 2 jenis transisi, yaitu yang merima simbol input, simbol top of stack, dan state. Setiap pilihan terdiri dari state berikutnya dan simbol-simbol. Penggantian isi stack dilakukan dengan opersi push dan pop. Jenis transisi yang kedua adalah transisi . Transisi tidak melakukan pembacaan input namun hanya menerima simbol top of stack dan state. Transisi ini memungkinkan PDA untuk memanipulasi isi stack dan berpindah antar state tanpa membaca input

Bahasa dari Sebuah PDA


Terdapat dua pendekatan untuk mendefinisikan bahasa dari PDA, yaitu: Acceptance by final state Acceptance by empty stack Kedua pendekatan tersebut adalah ekuivalen sebuah bahasa L memiliki PDA yang menerima bahasa tersebut dengan final state jhj memiliki PDA yang menerima bahasa tersebut dengan stack kosong.

Acceptance by Final State Jika P = (Q, , , , q0, Z0, F) adalah PDA. Maka L(P), bahasa yang diterima oleh P dengan final state, adalah {w | (q0, w, Z0) p* (q, , )} untuk suatu state q dalam F dan suatu string stack .

Acceptance by Empty Stack Untuk setiap PDA P = (Q, , , , q0, Z0, F), didefinisikan N(P) = {w | (q0, w, Z0) * (q, , )} untuk suatu state q. Bahwa N(P) adalah himpunan input-input w yang dapat dibaca oleh P dan pada waktu yang sama mengosongkan stacknya.

Hubungan pendekatan acceptance by final state dan accepted by empty stack


PN : PDA yang menerima bahasa L by empty stack. PF : PDA yang menerima bahasa L by final state. Hubungan kedua pendekatan untuk mendefinisikan bahasa dari PDA, yaitu acceptance by final state dan accepted by empty stack dinyatakan dalam teoremateorema berikut: Jika L = N(PN) untuk PDA PN = (Q, , , N, q0, Z0, F), maka terdapat sebuah PDA PF sedemikian sehingga L = L(PF). Misalkan L adalah L(PF) untuk PDA PF = (Q, , , F, q0, Z0, F). Maka terdapat sebuah PDA sedemikian sehingga L =N(PN).

Ekuivalensi PDA dan CFG


Ketiga kelas bahasa berikut adalah kelas-kelas yang sama. 1. CFL, yaitu bahasa yang didefinisikan oleh CFG 2. Bahasa yang diterima dengan final state oleh suatu PDA. 3. Bahasa yang diterima dengan empty stack oleh suatu PDA.
Grammar PDA by empty stack PDA by final state

Dari Grammar ke PDA


Misalkan G = (V, T, Q, S) adalah sebuah CFG. Buat PDA P yang menerima L(G) dengan empty stack sebagai berikut: P = ({q}, T, V T, , q, S) Dimana fungsi transisi didefinisikan oleh 1. Untuk setiap variabel A, (q, , A) = {(q, ) | A adalah sebuah produksi dari G} 2. Untuk setiap terminal a, (q, a, a) = {(q, )} Teorema: Jika PDA P dikonstruksi dari CFG G dengan konstruksi di atas, maka N(P) = L(G).

Konstruksi PDA dari CFG Misalkan G = (V, , S, P) adalah sebuah CFG. Dari CFG tersebut dapat dibuat PDA P = (Q, , , , q0, Z0, F), yang menerima L(G) dengan final state (L(P) = L(G)).

Konstruksi dilakukan sebagai berikut: 1. Definisikan Q ={q0, q1, q2} Start state: q0 F = {q2}

2. Dalam keadaan awal, PDA mem-push Z0 pada top stack : - Jika top stack dari simbol stack adalah sutau non terminal (misal A), top stack tersebut diganti dengan bagian body dari produksi yang head-nya A. Misal A x, maka top stack diganti x. - Jika top stack dari simbol stack adalah sebuah terminal dan jika top stack tersebut menyamai simbol masukkan berikutnya, pop top stack tersebut.

3. Berdasarkan aturan tsb, dapat diperoleh 4 bentuk fungsi transisi: - (q0, , Z0) = {(q1, q0Z0)} - (q1, , A) = {(q1, x) | A x adalah sebuah produksi dalam CFG} untuk suatu non terminal A. - (q1, a, a) = {(q1, )} untuk setiap simbol terminal. - (q1, , Z0) = {(q2, Z0)}.

Deterministic PDA
Sebuah PDA P = (Q, , , , q0, Z0, F) adalah deterministic (DPDA) jika dan hanya jika ditemui kondisi-kondisi berikut: 1. (q, a, X) memiliki paling banyak satu anggota untuk suatu q dalam Q, a dalam atau a = , dan X dalam . 1. Jika (q, a, X) tidak kosong, untuk suatu a dalam , maka (q, , X) haruslah kosong.

PDA Deterministik

PDA : M = (Q, , ,S, Z , , F) Q = {q0 , q1 , q2 }, S={q0}, F = { q2 }, = {a, b, c}, = {A, B, Z }, Z={Z}, dan fungsi transisi :
State Input Top Hasil stack No State Input Top Hasil stack

No

1 2 3 4 5 6

q0 q0 q0 q0 q0 q0

a b a b a b

Z Z A A B B

(q0,AZ) (qo,BZ) (q0,AA) (qo,BA) (q0,AB) (q0,BB)

7 8 9 10 11 12

q0 q0 q0 q1 q1 q1

c c c a b

Z A B A B Z

(q1,Z) (q1,A) (q1,B) (q1, ) (q1, ) (q2,Z)

Diterima atau tidak?


Bagaimana untuk string acb? Bagaimana untuk string abab? Bagaimana untuk string bbaacc?

Apakah string abcba di terima?


Penyelesaian (q0,abcba,Z)(q0,bcba,AZ) (q0,bcba,AZ)(q0,cba,BAZ) (q0,cba,BAZ)(q1,ba,BAZ) (q1,ba,BAZ)(q1,a,AZ) (q1,a, AZ)(q1,, Z) (q1,,Z)(q2,Z)

Karena state terakhir di q2, maka abcba di terima, dgn top stack Z

PDA Non-deterministik

NPDA : M = (Q, , ,S, Z , , F) Q = {q0 , q1 , q2 }, S={q0}, F = { q2 }, = {a, b}, = {A, B, Z }, Z= {Z}, dan fungsi transisi :
No State Inp Top Hasil stack No State Inp Top Hasil stack

1 2 3 4 5

q0 q0 q0 q0 q0

a b a b a

Z Z A A B

(q0,AZ),(q1,Z) (qo,BZ),(q1,Z) (q0,AA),(q1,A) (qo,BA),(q1,A) (q0,AB),(q1,B)

7 8 9

q0 q0 q0

a b

Z A B A B Z

(q1,Z) (q1,A) (q1,B) (q1, ) (q1, ) (q2, )

10 q1 11 q1 12 q1

Diterima atau tidak?


String aba? String baab? Sting abc?

JAWAB
aba (q0,aba,Z)(q0,ba,AZ) (1.kiri) (q0,ba,AZ)(q0,a,BAZ) (4.kiri) (q0,a,BAZ)(q0,,ABAZ) (5.kiri) (q0,,ABAZ) ditolak aba (q0,aba,Z)(q0,ba,AZ) (1.kiri) (q0,ba,AZ)(q1,a,AZ) (4.kanan) (q1,a,AZ)(q1,,Z) (10) (q1,,Z)(q2,) finish di q2 (diterima)

Sebuah PDA dapat dibuat dari kumpulan aturan produksi dari suatu tata bahasa bebas konteks dengan langkah-langkah :
1.

Definisikan Q = {q1,q2,q3} S = q1 F = {q3}

= simbol terminal = semua simol variabel, terminal, dan Z (simbol awal stack) 2. Dimulai dengan mem-push Z pada top stack 3. Konstruksikan empat tipe transisi, yaitu :

(q

,,Z) = {(q2,SZ)} (q ,,A) = {(q ,w) | Aw adalah sebuah 2 2 aturan produksi } untuk semua variabel A (q ,a,a) ={(q ,)} untuk setiap simbol 2 2 terminal (q ,,Z) = {(q ,Z)} 2 3 Bila semua input telah dibaca dan top stack adalah Z, berarti string input sukses diterima oleh PDA (q3 state akhir)
1

Tahapan PDA untuk suatu tata bahasa bebas konteks dapat dinyatakan dalam bentuk deskripsi seketika (instantanoeous description). Perubahan dari suatu kondisi keberikutnya dipisahkan dengan | Konfigurasi pada suatu saat dinyatakan dengan triplet : (q,w,u)

Final State PDA ke Null Stack PDA Tupel Final State PDA M1= (Q,,,,S,F,Z) berubah menjadi M2 = (Q U {qs.qf}, , U {X}, , qs, , X)
Ada penambahan fungsi transisi :
(qs, , X) = {(S,ZX)} (q, , X) = {(qf,X)}

Null Stack PDA ke Final State PDA Tupel Final State PDA M1= (Q,,,,S,F,Z) berubah menjadi M2 = (Q U {qs.qf}, , U {X}, , qs, {qf}, X)
Ada penambahan fungsi transisi :
(qs, , X) = {(S,ZX)} (q, , X) = {(qf,X)}

Null Stack PDA ke Final State PDA Tupel Final State PDA M1= (Q,,,,S,F,Z) berubah menjadi M2 = (Q U {qs.qf}, , U {X}, , qs, {qf}, X)
Ada penambahan fungsi transisi :
(qs, , X) = {(S,ZX)} (q, , X) = {(qf,X)}

Anda mungkin juga menyukai