29
Created by : AQIL AZIZI DERJA ARMAL SYAHPUTRA

TI304-052098-746-23

Embed Size (px)

Citation preview

Page 1: TI304-052098-746-23

Created by :

AQIL AZIZI

DERJA ARMAL SYAHPUTRA

Page 2: TI304-052098-746-23

Push Down Automata (PDA) merupakan mesin otomata dari bahasa bebas konteks. PDA di gambarkan sebagai tempat penyipanan yang tidak terbatas berupa stack/tumpukan.

Finite State Automata (FSA) adalah mesin otomata pada bahasa reguler

Perbedaan PDA dan FSA :• 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

Page 3: TI304-052098-746-23

Stack (tumpukan) adalah suatu struktur data yang menggunakan prinsip LIFO (Last In First Out).

Sebuah stack selalu memiliki top of stack dan elemen-elemen stack itu yang akan masuk ke dalam stack dengan method “push”dan akan keluar dari stack dengan method “pop”.

Page 4: TI304-052098-746-23

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

Contoh Stack

A

D

E

Top Stack

Page 5: TI304-052098-746-23

A

D

E

A

D

E

Operasi pop

D

E

Operasi push B

B

D

E

Page 6: TI304-052098-746-23

Tujuh tupel untuk Push Down Automata adalah :

Q = himpuanan state = himpunan simbol input = simbol-simbol stack = fungsi transisiS = state awalF = himpunan state akhirZ = simbol awal stack / top stack

Page 7: TI304-052098-746-23

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

Page 8: TI304-052098-746-23

Bahasa dari Sebuah PDA

Terdapat dua pendekatan untuk mendefinisikan bahasa dari PDA, yaitu:

Acceptance by final stateAcceptance 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.

Page 9: TI304-052098-746-23

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 .

Page 10: TI304-052098-746-23

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 stack-nya.

Page 11: TI304-052098-746-23

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 teorema-teorema 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).

Page 12: TI304-052098-746-23

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.

GrammarPDA by

empty stackPDA by

final state

Page 13: TI304-052098-746-23

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).

Page 14: TI304-052098-746-23

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} = V {Z0}

Page 15: TI304-052098-746-23

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.

Page 16: TI304-052098-746-23

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)}.

Page 17: TI304-052098-746-23

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 .

2. Jika (q, a, X) tidak kosong, untuk suatu a dalam , maka (q, , X) haruslah kosong.

Page 18: TI304-052098-746-23

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 :

No State

Input

Top stack

Hasil

1 q0 a Z (q0,AZ)

2 q0 b Z (qo,BZ)

3 q0 a A (q0,AA)

4 q0 b A (qo,BA)

5 q0 a B (q0,AB)

6 q0 b B (q0,BB)

No State

Input

Top stack

Hasil

7 q0 c Z (q1,Z)

8 q0 c A (q1,A)

9 q0 c B (q1,B)

10 q1 a A (q1, ɛ)

11 q1 b B (q1, ɛ)

12 q1 ɛ Z (q2,Z)

PDA Deterministik

Page 19: TI304-052098-746-23

Diterima atau tidak?

Bagaimana untuk string ‘acb’? Bagaimana untuk string ‘abab’? Bagaimana untuk string ‘bbaacc’?

Page 20: TI304-052098-746-23

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

Page 21: TI304-052098-746-23

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 stack

Hasil

1 q0 a Z (q0,AZ),(q1,Z)

2 q0 b Z (qo,BZ),(q1,Z)

3 q0 a A (q0,AA),(q1,A)

4 q0 b A (qo,BA),(q1,A)

5 q0 a B (q0,AB),(q1,B)

6 q0 b B (q0,BB),(q1,B)

No

State

Inp Top stack

Hasil

7 q0 ɛ Z (q1,Z)

8 q0 ɛ A (q1,A)

9 q0 ɛ B (q1,B)

10 q1 a A (q1, ɛ)

11 q1 b B (q1, ɛ)

12 q1 ɛ Z (q2, ɛ)

Page 22: TI304-052098-746-23

Diterima atau tidak?

String ‘aba’? String ‘baab’? Sting ‘abc’?

Page 23: TI304-052098-746-23

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)

Page 24: TI304-052098-746-23

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 stack3. Konstruksikan empat tipe transisi, yaitu :

Page 25: TI304-052098-746-23

(q1,,Z) = {(q2,SZ)} (q2,,A) = {(q2,w) | Aw adalah sebuah

aturan produksi } untuk semua variabel A (q2,a,a) ={(q2,)} untuk setiap simbol

terminal (q2,,Z) = {(q3,Z)}

Bila semua input telah dibaca dan top stack adalah Z, berarti string input sukses diterima oleh PDA (q3 state akhir)

Page 26: TI304-052098-746-23

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)

Page 27: TI304-052098-746-23

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)}

Page 28: TI304-052098-746-23

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)}

Page 29: TI304-052098-746-23