Konkatenasi bahasa reguler
Misalkan ada dua bahasa reguler L1, L2. Kita akan membuktikan bahwa konkatenasi (penyambungan) keduanya, L = L1 ∘ L2, juga merupakan bahasa reguler.
Apa itu konkatenasi
Konkatenasi dua string “010” dan “1111” menghasilkan string “0101111”. Konkatenasi bahasa menghasilkan bahasa baru yang dibentuk dengan menyambung setiap string dari satu bahasa dengan setiap string dari bahasa lainnya. Konkatenasi dua string maupun dua bahasa kita tulis dengan lingkaran kecil: ∘. Dengan begitu, konkatenasi bahasa L1 dan L2 dapat didefinisikan sebagai berikut:
Ide pembuktian
Ada dua bahasa reguler L1, L2 dan dua otomaton yang menerima bahasa-bahasa tersebut:
Kita konstruksi otomaton nondeterministik A = ⟨Q, Σ, δ, q, F⟩ yang “memuat” kedua otomaton A1 dan A2. Ide dasarnya: kita mulai menerima string dengan otomaton A1, dan ketika otomaton A1 sampai di state akhir, kita mencoba menerima sisa string dengan otomaton A2. Jika otomaton ini juga menerima bagian string tersebut, otomaton A menerima string tersebut.
Contoh
Misalkan ada otomaton A1 berikut, yang menerima string tak kosong yang hanya tersusun atas angka nol, serta string yang terdiri atas angka satu yang diikuti hanya oleh angka nol (1, 10, 100, …):
Misalkan juga ada otomaton A2 berikut, yang menerima string yang diakhiri 01:
Kedua otomaton kita sambung dengan menambahkan transisi epsilon dari semua state akhir otomaton A1 ke state awal otomaton A2, lalu state akhir A1 kita jadikan state biasa. State awal otomaton baru secara keseluruhan adalah state awal otomaton A1:
Bagaimana otomaton ini bekerja? Kita mulai menyimulasikan kerja otomaton A1. Jika kita berpindah ke bekas state akhir q1 atau q2, kita tahu bahwa otomaton A1 menerima sebagian string ini. Agar seluruh string termasuk bahasa L1 ∘ L2, sisa string masih harus diterima oleh otomaton kedua, A2 — karena itulah dari semua bekas state akhir ada transisi epsilon ke state awal semula otomaton A2.
Sebagai contoh, ambil string 0001. String ini termasuk konkatenasi kedua bahasa, karena dapat dibentuk dengan konkatenasi string 00 ∘ 01. Namun, string ini juga dapat dibentuk dengan konkatenasi string 0 ∘ 001. Pada otomaton kita, kedua cara dapat disimulasikan. Otomaton dapat menempuh jalur berikut:
Pada jalur ini, otomaton mula-mula “menerima” bagian string 00, lalu bagian string 01. Otomaton juga dapat menempuh jalur berikut:
sehingga otomaton mula-mula “menerima” bagian string 0, lalu bagian string 001. Pada kedua kasus, tentu saja kita sampai di state akhir p2.
Prosedur formal
Sekali lagi: ada dua bahasa reguler L1, L2 dan dua otomaton yang menerima bahasa-bahasa tersebut:
Kita konstruksi otomaton nondeterministik A = ⟨Q, Σ, δ, q, F⟩ dengan:
- Q = Q1 ∪ Q2 (sekaligus kita asumsikan Q1 ∩ Q2 = ∅)
- Σ= Σ1 ∪ Σ2
- q = q0
- F = F2
Fungsi transisi δ kita susun bagian demi bagian:
Sumber
Daftar isi: Sifat ketertutupan bahasa reguler, Gabungan bahasa reguler, Irisan bahasa reguler, Selisih bahasa reguler, Komplemen bahasa reguler, Konkatenasi bahasa reguler, Penutup bahasa reguler