Anda di halaman 1dari 23

5/15/2014

Pertemuan 11
Pushdown Automata
Teori Bahasa dan Otomata (KOM208)
SKS: 3(3-0)

TIK, Subtopik dan Waktu Penyajian
• Tinjauan Instruksional Khusus:
• Mahasiswa akan dapat menjelaskan cara kerja

Pushdown Automata.
• Subtopik:
• Definisi formal Pushdown Automata
• Notasi grafis dari Pushdown Automata
• Bahasa dari Pushdown Automata
• Ekuivalensi Pushdown Automata dan tata bahasa
bebas konteks
• Deterministic Pushdown Automata
• Waktu penyajian: 1 x 150 menit

1

5/15/2014

Pendahuluan (1)
• Bahasa bebas konteks memiliki bentuk automata

yang mendefinisikannya.
• Automata ini dinamakan Pushdown Automata
(PDA)
• PDA merupakan perluasan dari nondeterministic
finite automaton dengan transisi , yang
merupakan suatu cara untuk mendefinisikan
bahasa regular.
• PDA secara esensial merupakan -NFA dengan
tambahan stack.

Pendahuluan (2)
• Stack tersebut dapat dibaca, di-push, dan di-pop hanya




pada bagian atas dari stack (top stack).
Stack adalah struktur data yang dapat digunakan untuk
menyimpan sejumlah simbol.
Stack hanya bisa diakses dengan aturan LIFO (Last In
First Out).
Penambahan dan pengambilan elemen dalam stack
melalui satu tempat, yaitu top stack.
Pengambilan elemen dari stack dinamakan operasi pop.
Pemasukan elemen ke dalam stack dinamakan operasi
push.

2

. F) • Komponen-komponen dari PDA adalah: • Q: Himpunan berhingga dari state. • : Himpunan berhingga dari alphabet stack. seperti dalam FA. Z0. . q0. .5/15/2014 Komponen-komponen dalam PDA Input Accept/ Reject Finite State Control Stack • Finite-state control membaca input 1 simbol pada suatu waktu Definisi Formal PDA (1) • PDA melibatkan tujuh komponen. 3 . Spesifikasi dari PDA dituliskan sebagai berikut: P = (Q. seperti dalam FA.  merupakan himpunan dari simbol-simbol yang di-push ke dalam stack. • : Himpunan berhingga dari simbol-simbol input.

X   Definisi Formal PDA (3) – fungsi transisi • Output dari  adalah sebuah himpunan berhingga dari pasangan (p.5/15/2014 Definisi Formal PDA (2) – fungsi transisi () • Seperti dalam FA. •  : string dari simbol-simbol stack yang menggantikan X pada top stack. maka X diganti kan oleh Z. dan Y di-push ke dalam stack. • jika  = X. ). dimana: • q adalah sebuah state dalam Q • a adalah sebuah simbol input dalam  atau a =  (string kosong). yang asumsikan bukan merupakan sebuah simbol input. maka stack tidak berubah • jika  = YZ. maka stack di-pop.  menentukan perilaku dari otomata. •  memiliki 3 argumen. X). 4 . • X adalah sebuah symbol stack. • Sebagai contoh: • jika  = . • p: state baru. a. (q.

stack dari PDA terdiri dari start symbol. Pada awalnya. • F: himpunan accepting state atau final state. 1}. Contoh 1 • Diberikan bahasa Lwwr: Lwwr = {wwR | w adalah dalam (0 + 1)*} • Lwwr dirujuk sebagai w-w-reversed. • Z0: start symbol. PDA berada pada start state sebelum membuat transisi.5/15/2014 Definisi Formal PDA (4) • q0: start state. • Lwwr merupakan CFL String-string dalam bahasa ini dibangkitkan oleh grammar berikut: P P  0P0 P  1P1 5 . merupakan kumpulan string-string palindrom-palindrom dengan panjang genap pada alphabet {0.

1}  = {0. q2}  = {0. Z0) = {(q0. Start symbol: Z0 Accepting state: {q2} Contoh 1 (lanjutan) Fungsi transisi (): • (q0. dan memasukkan (push) input tersebut ke dalam stack. Z0} Start state: q0. Z0) = {(q0. 1. 0. dan melihat start symbol Z0 pada top stack. 0Z0)} dan (q0. q1. • Kemudian PDA membaca input pertama. 1. 6 .5/15/2014 Contoh 1 (lanjutan) • Komponen PDA: Q = {q0. 1Z0)} • Pada saat awal PDA berada pada state q0.

Z0)}. 0) = {(q1. . 0) = {(q0. 1) = {(q1. 1)} • PDA menuju state q1 dari state q0 (pada input ). (q0. 1) = {(q0. meninggalkan simbol apapun pada top stack. . . 1. (q0. dan membaca input. (q1. 1. (q0. Z0) = {(q1. • (q1.5/15/2014 Contoh 1 (lanjutan) • (q0. (q0. Z0) = {(q2. 00)}. 7 . dan mem-pop top stack ketika simbol-simbol sesuai. Z0)} • Input dengan bentuk wwR telah ditemukan. dan menerima input. 1) = {(q0. dan memasukkan (push) input-input ke dalam top stack dan meninggalkan top stack sebelumnya. 0. 1. PDA menuju state q2. 01)}. 11)} • PDA berada pada state q0. 0) = {(q1. 0. • (q0. 0. dapat dilakukan pencocokan simbol- simbol input terhadap simbol-simbol pada top stack. 0)}. 0) = {(q0. . (q0. Contoh 1 (lanjutan) • (q1. )}. 10)}. 1) = {(q1. )} • Dalam state q1.

• Arc yang berkaitan dengan transisi dari PDA. • Sebuah arc diberi label a. dan juga memberikan simbol lama dan baru dari top stack. Diagram transisi untuk Contoh 1       8 . X) mengandung pasangan (p. a.5/15/2014 Diagram transisi untuk PDA • Terdiri dari: • Node-node yang berkaitan dengan state-state dari PDA • Anak panah dengan label Start yang menunjukkan start state. ). • Label dari arc menyatakan input apa yang digunakan. state dengan lingkaran ganda adalah accepting state.X/ dari state q ke state p yang berarti bahwa (q.

• Anggap (q. yang dinamakan deskripsi instantaneous (ID) dari PDA. 9 . yaitu . • Sisa dari input adalah w. w. • Maka untuk semua string w dalam * dan  dalam *: (q. a. Z0. Definisikan ├p. F) adalah sebuah PDA. w. . aw. dimana • q adalah state • w adalah input sisa •  menyatakan isi stack Deskripsi Instantaneous dari PDA (2) • Misalkan P = (Q. Isi stack yang ada di bawah top stack. X) mengandung (p.5/15/2014 Deskripsi Instantaneous dari PDA (1) • Konfigurasi PDA dinyatakan dengan sebuah triple (q. ). • PDA bergerak dari state q ke state p. ). . tidak terpengaruh oleh aksi PDA. q0. . atau ├ . X) ├ (p. ) • Bentuk ini berarti bahwa dengan membaca a (yang dapat berupa ) dari input dan mengganti X pada top stack dengan .

dan untuk semua i = 1. ... 2. • ID-ID dari PDA pada input 1111 ditunjukkan dalam gambar berikut: 10 . bahwa: • Basis: I ├* I. 1111..5/15/2014 Deskripsi Instantaneous dari PDA (3) • Notasi ├p*. diperoleh Ki├ Ki+1. J = Kn. n1. Z0). maka ID awal adalah (q0. Bahwa I ├* J jika terdapat sebuah urutan dari ID-ID K1. K3.. untuk ID I. K2. • Karena start state adalah q0. Kn sedemikian sehingga I = K1.. Pergerakan PDA pada Contoh 1 • Akan dilihat pergerakan PDA jika diberikan input 1111. atau ├* digunakan untuk menyatakan nol atau lebih pergerakan dari PDA. dan start symbol adalah Z0.. • Induksi: I ├* J jika terdapat ID K sedemikian sehingga I ├ K dan K ├* J. .

Z0) ├ (q2. 111. PDA menuju state q1. 1111. Z0) 11 . . Z0) menyatakan tanpa membaca input. 1111. 11Z0) ├ (q1. 1Z0) ├ (q1. • Urutan ID yang benar untuk PDA pada Contoh 1 untuk input 1111 adalah (q0.5/15/2014      Pergerakan PDA pada Contoh 1 • Dari ID awal terdapat dua pilihan pergerakan yaitu • (q0. 11Z0) ├ (q1. 1Z0) ├ (q0. Z0) ├ (q0. Z0). karena input tidak seluruhnya dibaca. • ID (q2. 1. Z0). • (q1. • Selanjutnya PDA menuju ID (q2. . 1111. 11. Z0) bukan merupakan accepting ID. menuju ke ID (q1. 1111. 11. 1Z0) menyatakan sebuah 1 dibuang dari input dan di-push ke dalam stack. 111. 1111.

Teorema • Jika P = (Q. Jika sebuah komputasi adalah legal untuk PDA P. . . 3. dan (q. maka ujung tersebut dapat dibuang dari input dalam setiap ID. . dan ujung dari input tidak dibaca. Z0. maka komputasi yang dibentuk oleh penambahan simbolsimbol stack tambahan yang sama juga legal. F) adalah PDA. yw. . maka untuk string w dalam * dan  dalam *. maka komputasi yang dibentuk dengan penambahan string input tambahan yang sama ke akhir dari input pada setiap ID juga legal. dan komputasi yang dihasilkan masih legal. ) ├ * (p. y. xw. x. Jika sebuah komputasi adalah legal untuk PDA P. y. ) ├ * (p. q0.5/15/2014 Prinsip yang penting tentang ID dan transisinya: 1. yw. . dan (q. • Jika P = (Q. . 2. ) ├p* (p. ). ). adalah benar bahwa (q. Jika sebuah urutan ID-ID (komputasi) adalah legal untuk PDA P. q0. ). Z0. ) maka juga benar bahwa (q. x. 12 . F) adalah PDA. ) ├p* (p. xw.

F) adalah PDA. )} untuk suatu state q dalam F dan suatu string stack . bahasa yang diterima oleh P dengan final state. q0. Maka L(P). w. . Z0. . adalah {w | (q0. . 13 . Acceptance by Final State • Jika P = (Q. .5/15/2014 Bahasa dari Sebuah PDA • Terdapat dua pendekatan untuk mendefinisikan bahasa dari PDA. Z0) ├p* (q. 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.

perhatikan bahwa (q0. wRZ0) ├* (q1. Z0) ├ (q2. wR. wwR. . 1}. 14 . merupakan palindrom-palindrom dengan panjang genap pada alphabet {0. Z0) dengan demikian x = wwR diterima dengan final state. Z0) ├* (q0. Bukti (if): • (If) Jika x = wwR. . wRZ0) ├ (q1. wR. Lwwr merupakan CFL String-string dalam bahasa ini di-generate oleh grammar berikut: P P  0P0 P  1P1 • PDA P menerima string x dengan final state jika dan hanya jika x berbentuk wwR.5/15/2014 Contoh 1 (lanjutan) • Diberikan bahasa Lwwr : Lwwr = {wwR |w adalah dalam (0+1)*} • Lwwr dirujuk sebagai w-w-reversed.

.5/15/2014 Bukti (only if): • Perhatikan bahwa satu-satunya cara memasuki accepting state q2 adalah berada dalam state q1. ): 1. x. Z0) ├* (q1. x. Terdapat dua pergerakan yang dibuat P dari ID (q0. maka || < | |. • Komputasi yang diterima dari P berawal dari state q0. • Dengan demikian. x. • P hanya dapat mem-pop stack ketika PDA berada dalam state q1. ) maka x berbentuk wwR. Bukti (only if): • Basis: Jika x = . perlu ditentukan kondisi pada x sedemikian sehingga (q0. . dan memiliki Z0 pada top stack. ) ├* (q1. ). dan tidak pernah kembali ke q0. x.an untuk n  0. maka x adalah berbentuk wwR (dengan w = ). ) ├* (q1. • Pernyataan berikut akan ditunjukkan dengan menggunakan induksi pada |x|: jika (q0. x diterima P dengan final state. • Induksi: Anggap x = a1a2. x. 15 . x. ). . membuat satu transisi ke q1.. . Z0). ) ├ (q1. dan |x| > 0. (q0. Dengan demikian konklusi adalah benar. • P harus mem-pop stack dengan setiap simbol input dibaca oleh P. • Dengan demikian jika (q1.

an. a1) ├* (q1. a1)..an. (q0.. a1).. y. dan (q. khususnya w = a1y. Dalam kasus ini. Satu-satunya cara sebuah urutan dari pergerakan dapat berakhir di (q1. a1a2. x. • simbol an dapat dibuang dari ujung input karena tidak digunakan. a1) ├ (q1...an-1 berbentuk yyR untuk suatu y. xw. disimpulkan bahwa w berbentuk wwR . q0.an-1. Z0.. dan diketahui a1 = an. Bukti (only if): • Berdasarkan Teorema: • Jika P = (Q. Dengan demikian (q0.5/15/2014 Bukti (only if): 2.. hipotesis induksi dapat digunakan dan diperoleh kesimpulan bahwa a2.an. • Karena x = a1yyRan. ) ├ (p. ) maka juga benar bahwa (q. F) adalah PDA. 16 . • Karena panjang input untuk urutan ini lebih kecil dari n. ). ). .. ) ├ (q0. ) adalah jika pergerakan terakhir melakukan operasi pop: (q1.. Diketahui bahwa (q0. yw. a1) ├* (q1. . .. an.an. . haruslah dipenuhi bahwa a1 = an. a2. ) ├ (p. a2. . a1). a2. .

Z0. . Z0) = {(q2. )}. . Z0) = {(q2.5/15/2014 Acceptance by Empty Stack • Untuk setiap PDA P = (Q. didefinisikan N(P) = {w | (q0. q0. dengan modifikasi. . L(P) = N(P) = Lwwr 17 . • Daripada menggunakan transisi (q1. Contoh 2 • PDA P tidak pernah mengosongkan stack-nya. F). Z0)}. . sehingga N(P) = . Z0) ├* (q. gunakan (q1. . P dapat menerima Lwwr dengan empty stack. • Walaupun demikian. . )} untuk suatu state q. w. • Bahwa N(P) adalah himpunan input-input w yang dapat dibaca oleh P dan pada waktu yang sama mengosongkan stack-nya.

• Hubungan kedua pendekatan untuk mendefinisikan bahasa dari PDA. F. F). • Misalkan L adalah L(PF) untuk PDA PF = (Q. • PF : PDA yang menerima bahasa L by final state. Ekuivalensi PDA dan CFG Ketiga kelas bahasa berikut adalah kelas-kelas yang sama. N. . CFL. q0. Bahasa yang diterima dengan final state oleh suatu PDA. . q0.5/15/2014 Hubungan pendekatan acceptance by final state dan accepted by empty stack • PN : PDA yang menerima bahasa L by empty stack. maka terdapat sebuah PDA PF sedemikian sehingga L = L(PF). . Z0. Bahasa yang diterima dengan empty stack oleh suatu PDA. . 1. yaitu acceptance by final state dan accepted by empty stack dinyatakan dalam teoremateorema berikut: • Jika L = N(PN) untuk PDA PN = (Q. F). Maka terdapat sebuah PDA sedemikian sehingga L = N(PN). 3. yaitu bahasa yang didefinisikan oleh CFG 2. Z0. 18 .

. Q. V  T. )} Teorema: Jika PDA P dikonstruksi dari CFG G dengan konstruksi di atas. +. (. Contoh 3 • Konversikan CFG berikut ke PDA I  a | b | Ia | Ib | I0 | I1 E  I | E + E | E * E | (E) • Himpunan terminal dari PDA adalah {a. ). b. • Simbol-simbol ini beserta simbol I dan E membentuk alphabet stack. (q. . S) Dimana fungsi transisi  didefinisikan oleh 1. T. Untuk setiap variabel A. Untuk setiap terminal a. S) adalah sebuah CFG. 19 . T. a) = {(q. Buat PDA P yang menerima L(G) dengan empty stack sebagai berikut: P = ({q}. q. 1.5/15/2014 Dari Grammar ke PDA • Misalkan G = (V. 0. A) = {(q. (q. maka N(P) = L(G). a. *}. ) | A   adalah sebuah produksi dari G} 2.

E+E). (q. a.(q.E*E). q0. S.b.+) = {(q. .Ib).1) = {(q. .(q.(. • Konstruksi dilakukan sebagai berikut: 1.b) = {(q.)}. E) = {(q.0. (q.5/15/2014 Contoh 3 (lanjutan) Fungsi transisi PDA adalah: • (q. (q. Z0.)}. .1. .+. I) = {(q. • Dari CFG tersebut dapat dibuat PDA P = (Q. (q. Konstruksi PDA dari CFG (1) • Misalkan G = (V.b).)}.I0). yang menerima L(G) dengan final state (L(P) = L(G)). F). a) = {(q. (q.)}.(q. (q. q1. Definisikan • Q ={q0. sedangkan bentuk fungsi transisi c diperoleh dari aturan 2.(E))} • (q. (q.*. (q. *) = {(q.(q. (q. ). .)}.)}.)}.Ia). P) adalah sebuah CFG.I1)} • (q.I).(q. .0) = {(q. (q. q2} • Start state: q0 • F = {q2} •  = V    {Z0} 20 .a).) ) = {(q.( ) = {(q. Bentuk fungsi transisi a dan b diperoleh dari aturan 1.)}.

Z0) = {(q1. Z0)}. SZ0)} • (q1. A) = {(q1. Z0) = {(q2. a) = {(q1. . top stack tersebut diganti dengan bagian body dari produksi yang head-nya A. • Jika top stack dari simbol stack adalah sebuah terminal dan jika top stack tersebut menyamai simbol masukkan berikutnya. Konstruksi PDA dari CFG (3) 3. x) | A x adalah sebuah produksi dalam CFG} untuk suatu non terminal A. a. maka top stack diganti x. )} untuk setiap simbol terminal. Misal A  x. . . • (q1. • (q1. pop top stack tersebut. Berdasarkan aturan tsb. PDA mem-push Z0 pada top stack 2. • Jika top stack dari simbol stack adalah suatu non terminal (misal A).5/15/2014 Konstruksi PDA dari CFG (2) Dalam keadaan awal. 21 . dapat diperoleh 4 bentuk fungsi transisi: • (q0.

a dalam  atau a = . untuk suatu a dalam . X) haruslah kosong. 2. DPDA yang menerima Lwcwr (Buktikan !) DPDA yang menerima Lwcwr    22 . • Tetapi bahasa Lwcwr = {wcwR | w dalam (0 + 1)*} dapat diterima oleh DPDA. . . . maka (q.5/15/2014 Deterministic PDA • Sebuah PDA P = (Q. a. (q. . q0. X) memiliki paling banyak satu anggota untuk suatu q dalam Q. X) tidak kosong. dan X dalam . Jika (q. Z0. Contoh 4 • Bahasa Lwwr adalah sebuah CFL yang bukan merupakan DPDA. a. F) adalah deterministic (DPDA) jika dan hanya jika ditemui kondisi-kondisi berikut: 1.

Ullman. 2001. and Computation. Hopcroft. Introduction to Automata Theory. Jeffrey D. Addison-Wesley 23 .5/15/2014 Daftar Pustaka • John E. Languange. Rajeev Motwani. Edisi ke-2.