Back to IF2224 Teori Bahasa Formal dan Otomata

Ekuivalensi PDA & CFG (Bagian 3: Deterministic Pushdown Automata - DPDA)

Questions/Cues

  • Apa itu Deterministic PDA (DPDA)?

  • Apa 2 kondisi determinisme?

  • Contoh:

  • Bagaimana hirarki bahasa (Regular, L(DPDA), CFL)?

  • Kenapa bukan L(DPDA)?

  • Apa itu Prefix Property?

  • Hubungan DPDA (Empty Stack) & Prefix Property

  • Teorema 6.19

  • Hubungan DPDA & Ambiguitas

  • Teorema 6.20 & 6.21

Reference Points

  • Slide 12_2023_Equivalence PDA and CFG.pdf (hlm. 21-25)

Apa itu Deterministic PDA (DPDA)?

Sebuah Deterministic Pushdown Automata (DPDA) adalah PDA yang tidak pernah memiliki pilihan (non-determinisme) dalam langkah komputasinya.

Untuk setiap konfigurasi (state, input, top stack), hanya ada paling banyak satu langkah selanjutnya yang mungkin.

Dua Kondisi Determinisme

Sebuah PDA bersifat deterministik jika kedua kondisi berikut terpenuhi:

  1. Tidak Ada Pilihan Ganda untuk Input:

    • selalu berisi paling banyak satu anggota. (PDA tidak bisa memilih antara dan ).

  2. Tidak Ada Pilihan vs Input:

    • Jika tidak kosong (ada transisi ), maka harus kosong untuk setiap . (PDA tidak bisa memilih antara “melakukan transisi ” atau “membaca input ”).

Contoh:

Bahasa (contoh: “01c10”) dapat dikenali oleh DPDA.

  • Cara Kerja:

    1. Di , PUSH semua simbol input ke stack.

    2. Jika membaca ‘c’, pindah ke state (tanpa mengubah stack).

    3. Di , POP stack untuk setiap input yang cocok.

    4. Jika stack kosong () di akhir, pindah ke (final state).

  • Kenapa Deterministik? Simbol ‘c’ bertindak sebagai penanda yang jelas. PDA tidak perlu “menebak” kapan harus beralih dari mode PUSH ke POP.

Hirarki Bahasa (Regular L(DPDA) CFL)

DPDA mendefinisikan kelas bahasa baru, .

  1. Regular L(DPDA): Setiap bahasa Regular dapat dikenali oleh DPDA (yang pada dasarnya mengabaikan stack-nya, seperti DFA).

  2. L(DPDA) CFL:

    • Ada bahasa yang tidak Regular (contoh: ).

    • Ada bahasa CFL yang tidak L(DPDA) (contoh: ).

Kenapa bukan L(DPDA)?

Bahasa (palindrom genap, misal “0110”) tidak bisa dikenali oleh DPDA.

  • Alasan: PDA untuk harus “menebak” di mana titik tengah string (batas antara dan ).

  • Sebuah DPDA tidak bisa menebak. Jika ia melihat input “0110”, ia tidak tahu apakah harus PUSH ‘1’ (karena masih di ) atau POP ‘1’ (karena sudah di ).

Prefix Property

Sebuah bahasa memiliki prefix property jika tidak ada string di yang merupakan prefix (awalan) dari string lain di .

  • Contoh Punya: . String “0c0” ada di , tapi “0c01c1” tidak. Tidak ada string yang jadi awalan string lain.

  • Contoh Tidak Punya: . String “0” ada di dan juga merupakan prefix dari “00” yang juga ada di .

Teorema 6.19: DPDA (Empty Stack) & Prefix Property

Metode penerimaan sangat penting untuk DPDA.

  • DPDA yang menerima via empty stack () memiliki masalah: jika diterima (stack kosong), DPDA tidak bisa melanjutkan komputasi untuk (karena stack sudah kosong).

  • Teorema: Sebuah bahasa adalah untuk suatu DPDA jika dan hanya jika memiliki prefix property DAN adalah untuk suatu DPDA (by final state).

DPDA & Ambiguitas

DPDA memiliki hubungan erat dengan grammar yang tidak ambigu.

  • Ambiguitas: Grammar G bersifat ambigu jika ada setidaknya satu string yang memiliki dua atau lebih leftmost derivation (atau parse tree) yang berbeda.

  • Teorema 6.20 & 6.21: Jika sebuah bahasa diterima oleh DPDA (baik maupun ), maka dijamin memiliki CFG yang unambiguous.

  • Poin Penting:

    1. Himpunan Bahasa Non-Ambigu.
    2. Kebalikannya tidak berlaku. memiliki grammar non-ambigu (), tapi bukan L(DPDA).

Summary

Sebuah Deterministic PDA (DPDA) adalah PDA yang tidak memiliki pilihan (non-determinisme) pada setiap langkahnya, yang diatur oleh dua kondisi ketat. Kelas bahasa yang dikenali DPDA, , lebih kuat dari Regular (bisa mengenali ) tetapi lebih lemah dari CFL (tidak bisa mengenali karena DPDA tidak bisa “menebak”). DPDA yang menerima via empty stack hanya bisa mengenali bahasa dengan prefix property. Yang terpenting, setiap bahasa yang diterima oleh DPDA dijamin dapat dibangkitkan oleh CFG yang tidak ambigu.