Back to IF2224 Teori Bahasa Formal dan Otomata

Topic: Mekanisme Eksekusi & Bahasa PDA

Questions/Cues

  • Apa itu ID?

  • Komponen ID (Snapshot)

  • Simbol vs

  • 2 Jenis Penerimaan

  • Accept by Final State

  • Accept by Empty Stack

  • Contoh Tracing ID

  • Analisis Rejection

  • Intuisi Ekuivalensi

  • Konversi Penerimaan

Reference Points

  • Bab 6 PDA.pdf (Halaman 22-25, 34-46)

  • Konsep “State of System”

1. Instantaneous Descriptions (ID)

Agar tidak bingung melacak “sedang apa mesin sekarang?”, kita butuh cara standar untuk memotret kondisi mesin. Foto kondisi ini disebut Instantaneous Description (ID) atau Deskripsi Sesaat.

Format ID:

Sebuah ID terdiri dari 3 komponen utama (Tripel):

  1. (Current State): Di lingkaran mana mesin berhenti saat ini?

  2. (Remaining Input): Apa sisa string input yang belum dibaca? (Input yang sudah dibaca hilang dari pandangan).

  3. (Stack Contents): Apa isi tumpukan saat ini? (Ditulis dari Top ke Bottom).

Contoh:

Artinya: Mesin di state , masih harus membaca string “101”, dan di stack ada di atas .

2. Relasi “Goes-To” ()

Ini adalah notasi matematika untuk menggambarkan “Langkah Pergerakan”.

SimbolNamaArti
One MoveMesin bergerak satu langkah saja. Dari ID A berubah menjadi ID B.
Zero or More MovesMesin bergerak banyak langkah (atau diam). Ini seperti tombol “Fast Forward”.

Logika Perubahan ID:

Jika ID1 ID2, artinya ada transisi di fungsi yang memungkinkan perubahan tersebut (state berubah, input berkurang 1 karakter, stack berubah sesuai push/pop).

3. Dua Cara Penerimaan (Acceptance)

Berbeda dengan Finite Automata yang hanya punya satu cara (sampai di Final State), PDA punya dua mode operasi untuk menerima string.

A. Acceptance by Final State ()

  • Logika: Persis seperti FA biasa.

  • Syarat Terima: String input habis dibaca () DAN mesin berhenti di salah satu state himpunan (lingkaran ganda).

  • Kondisi Stack: TIDAK PEDULI. Stack boleh masih penuh, boleh kosong, tidak masalah. Yang penting input habis dan state-nya “Final”.

  • Notasi Formal:

B. Acceptance by Empty Stack ()

  • Logika: “Bersih-bersih piring”.

  • Syarat Terima: String input habis dibaca () DAN tumpukan (Stack) menjadi benar-benar kosong ().

  • Kondisi State: TIDAK PEDULI. Mesin boleh berhenti di state mana saja, tidak harus “Final State”. Bahkan PDA jenis ini seringkali tidak punya himpunan .

  • Notasi Formal:

4. Contoh Studi Kasus (Tracing ID)

Menggunakan contoh PDA dari bagian sebelumnya, berikut adalah cara kita menuliskan sejarah pergerakan mesin secara formal.

A. Kasus Diterima (Input: 000111)

Mesin membaca input sampai habis dan mencapai state final.

(Push X)

(Push X)

(Push X)

(Baca 1 pertama, Pindah state qp, Pop X)

(Pop X)

(Pop X, Input Habis)

(Transisi , Masuk Final)

Kesimpulan: Karena , maka input Diterima.

B. Kasus Ditolak (Input: 0001111)

Apa yang terjadi jika jumlah angka 1 lebih banyak?

Analisis Kegagalan:

Perhatikan ID terakhir .

  1. Mesin ada di state Final ().

  2. TAPI, input belum habis (masih ada sisa 1 di komponen ).

  3. Tidak ada transisi yang didefinisikan untuk alias mesin macet.

Kesimpulan: Input Ditolak karena syarat penerimaan adalah input harus terkonsumsi sepenuhnya ().

5. Ekuivalensi Dua Mode

Apakah PDA Final State lebih hebat dari PDA Empty Stack? TIDAK. Keduanya setara.

Teorema Ekuivalensi:

Jika sebuah bahasa bisa dikenali oleh PDA jenis Final State, pasti ada PDA jenis Empty Stack yang bisa mengenali juga, dan sebaliknya.

Intuisi Konversi:

  • Final State Empty Stack: Buat mesin baru yang jika mencapai final state, ia akan memicu mode “mengamuk” (loop) untuk mengosongkan (pop) semua isi stack sampai habis.

  • Empty Stack Final State: Bungkus stack asli dengan tanda dasar baru (misal ). Jika mesin mendeteksi stack asli sudah habis (kelihatan ), suruh mesin pindah ke state khusus yang Final.

Contoh Konversi:

1. PDA Empty Stack Asli ()

Mesin ini akan memasukkan untuk setiap , lalu menghapus untuk setiap . Di akhir, ia menghapus .

StateInputTop StackHasil (Next State, Push/Pop)Keterangan
Input pertama, simpan
Input selanjutnya, tumpuk
Ketemu pertama, mulai hapus
Hapus untuk setiap
Input habis, hapus (Stack Kosong!)

2. Hasil Konversi ke Final State ()

Kita tambahkan state baru (awal), (akhir), dan simbol .

Transisi Tambahan:

  1. Inisialisasi:

    (Taruh di atas , lalu masuk ke logika utama)

  2. Logika Utama:

    (Gunakan semua tabel di atas tanpa perubahan)

  3. Loncatan ke Final State:

    (Hanya jika stack asli sudah kosong dan mesin melihat “lantai” , barulah ia pindah ke state final )

Ringkasan Perbedaan
  • Empty Stack: Berhenti dan terima ketika stack benar-benar kosong (setelah transisi terakhir ).

  • Final State: Berhenti dan terima karena berada di , meskipun di dalam stack mungkin masih tersisa (jika kita tidak melakukan pop pada transisi terakhir).

Summary

PDA menggunakan notasi Instantaneous Description (ID) sebagai “snapshot” kondisi mesin untuk melacak proses komputasi. Perubahan antar ID dinotasikan dengan simbol Goes-To ( untuk satu langkah, untuk banyak langkah). Uniknya, PDA memiliki dua mekanisme penerimaan yang setara: Acceptance by Final State (fokus pada posisi state akhir, stack bebas) dan Acceptance by Empty Stack (fokus pada stack kosong, state bebas). Kita bisa mengubah PDA dari satu mode ke mode lainnya tanpa mengurangi kemampuan komputasinya.