Back to IF2224 Teori Bahasa Formal dan Otomata

Topic

Questions/Cues

  • Apa tujuan pembuktian?
  • Apa strategi pembuktian dua bagian?
  • Bagaimana cara membuktikan L(A)subseteqT?
  • Apa itu Hipotesis Induktif?
  • Mengapa hipotesis harus diperkuat?
  • Bagaimana cara membuktikan TsubseteqL(A)?
  • Apa itu bukti Kontrapositif?

Reference Points

  • 2021_Bab-2-FSA.pdf: 42-51

Tujuan Pembuktian Kesetaraan

Setelah mendesain sebuah DFA, kita perlu membuktikan secara formal bahwa mesin tersebut benar-benar bekerja sesuai keinginan. Tujuannya adalah untuk membuktikan bahwa dua himpunan string ini adalah sama:

  1. : Bahasa yang diterima oleh DFA kita (semua string yang berakhir di final state).
  2. : Bahasa yang kita inginkan sesuai deskripsi (misalnya, “himpunan semua string tanpa ‘11’ berurutan”).

Kita harus membuktikan bahwa .

Strategi Pembuktian Dua Bagian

Untuk membuktikan bahwa dua himpunan (S dan T) adalah sama, kita harus membuktikan dua hal secara terpisah:

  • : Jika sebuah string w ada di himpunan S, maka w juga pasti ada di himpunan T.
  • : Jika sebuah string w ada di himpunan T, maka w juga pasti ada di himpunan S.

Dalam konteks kita:

  1. Jika sebuah string diterima oleh DFA, maka string tersebut memenuhi deskripsi bahasa.
  2. Jika sebuah string memenuhi deskripsi bahasa, maka string tersebut diterima oleh DFA.

**Ambil contoh: **

  • S = the language of our running DFA, and
  • T = “no consecutive 1’s.”

Bagian 1: Membuktikan (Metode Induksi)

Pernyataan: Jika string w diterima oleh DFA, maka w tidak memiliki “11” berurutan.

Metode yang paling umum digunakan adalah induksi matematika berdasarkan panjang string ∣w∣. Namun, ada sebuah trik penting: kita perlu memperkuat hipotesis kita. Daripada hanya membuat pernyataan tentang state akhir, kita membuat pernyataan tentang arti dari setiap state.

Hipotesis Induktif yang Diperkuat (untuk contoh DFA ‘no 11’):

  • Jika , maka w tidak memiliki “11” DAN tidak diakhiri dengan ‘1’.
  • Jika , maka w tidak memiliki “11” DAN diakhiri dengan satu buah ‘1’.
  • Jika , maka w pasti memiliki “11”.

Langkah Pembuktian Induksi:

  • Langkah Basis: Buktikan hipotesis di atas benar untuk string dengan panjang 0, yaitu w=epsilon.

    • . String tidak punya “11” dan tidak diakhiri ‘1’. (Hipotesis 1 terbukti).
    • Hipotesis 2 dan 3 benar secara hampa (vacuously true) karena tidak menghasilkan B atau C.
  • Langkah Induksi: Asumsikan hipotesis benar untuk semua string x dengan panjang . Kita harus buktikan hipotesis juga benar untuk w. Kita bisa tulis (dimana a adalah simbol terakhir).

    • Kasus 1: Buktikan Hipotesis 1 untuk . Jika , maka dari diagram kita tahu bahwa harus ‘0’ dan bisa A atau B. Berdasarkan asumsi induksi untuk , string tidak punya “11”. Karena kita hanya menambahkan ‘0’ di akhir, maka juga tidak punya “11” dan tidak diakhiri ‘1’. (Terbukti).
    • Kasus 2: Buktikan Hipotesis 2 untuk . Jika , maka dari diagram kita tahu harus ‘1’ dan harus A. Berdasarkan asumsi, tidak punya “11” dan tidak diakhiri ‘1’. Karena kita menambahkan ‘1’, maka tetap tidak punya “11” dan sekarang diakhiri ‘1’. (Terbukti).

Bagian 2: Membuktikan (Metode Kontrapositif)

Pernyataan: Jika string w tidak memiliki “11” berurutan, maka w diterima oleh DFA.

Membuktikan ini secara langsung bisa jadi sulit. Seringkali lebih mudah untuk membuktikan kontrapositif-nya.

  • Kontrapositif: Jika sebuah pernyataan “Jika X maka Y” benar, maka “Jika bukan Y maka bukan X” juga pasti benar.
  • Pernyataan Kontrapositif kita: Jika w TIDAK diterima oleh DFA, maka w PASTI memiliki “11” berurutan.

Langkah Pembuktian Kontrapositif:

  1. “Tidak diterima oleh DFA” berarti proses pembacaan string w harus berakhir di state non-final. Dalam contoh kita, satu-satunya state non-final adalah C.
  2. Jadi, pernyataan kita menjadi: Jika , maka w pasti memiliki “11”.
  3. Sekarang kita lihat diagram. Bagaimana cara mencapai state C? Satu-satunya cara untuk sampai ke state C adalah dari state B dengan input ‘1’.
  4. Bagaimana cara mencapai state B? Salah satu caranya adalah dari state A dengan input ‘1’.
  5. Ini berarti, untuk mencapai C, string w harus memiliki potongan (substring) yang menyebabkan transisi . Potongan ini adalah “11”.
  6. Jadi, terbukti bahwa jika sebuah string berakhir di state C, ia pasti mengandung “11”. (Terbukti).

Karena kedua bagian () telah terbukti, maka DFA kita dinyatakan benar.

Summary

Pembuktian kebenaran DFA adalah proses formal untuk memvalidasi bahwa bahasa yang diterima oleh mesin (L(A)) identik dengan bahasa target (T). Ini dilakukan melalui strategi pembuktian dua bagian: pertama, menggunakan induksi matematika untuk menunjukkan bahwa semua string yang diterima DFA sesuai dengan aturan bahasa (); dan kedua, seringkali menggunakan bukti kontrapositif untuk menunjukkan bahwa semua string yang sesuai aturan bahasa pasti diterima oleh DFA ().