Anda di halaman 1dari 22

Properties of Regular

Languages
Kelompok 9 :
1. Rini Muzayanah (4611420028)
2. M. Zhafran Ammar (4611420029)
3. Faiqotuzzulfa (4611420030)
Properti Closure Bahasa
Reguler
❏ Closure Operasi Set Sederhana

❖ Teorema 4.1

Jika L1 dan L2 adalah bahasa reguler, maka L1 ∪ L2,L1 ∩ L2,L1L2, , dan

Dikatakan bahwa keluarga bahasa reguler tertutup di bawah


union,intersection,penggabungan,complementation,dan star-closure.

Bukti:Jika L1 dan L2 beraturan,maka terdapat ekspresi reguler r1 dan r2 sehingga L1


= L(r1) dan L2 = L(r2).Menurut definisi,r1 + r2,r1r2,dan adalah ekspresi reguler yang
menunjukkan bahasa L1 ∪ L2,L1L2,dan masing-masing.Jadi,Closure langsung
berada di bawah union,concatenation,dan star-closure.
❖ Teorema 4.2

Keluarga bahasa reguler ditutup di bawah pembalikan.

Bukti:

Misalkan L adalah bahasa reguler.Kemudian dibangun sebuah nfa dengan satu


keadaan akhir untuk itu.Dalam graf transisi untuk nfa ini kita membuat simpul
awal menjadi simpul akhir,simpul akhir menjadi simpul awal,dan membalikkan
arah pada semua sisi.Ini adalah masalah yang cukup mudah untuk menunjukkan
bahwa nfa yang dimodifikasi menerima wR jika dan hanya jika nfa asli menerima
w.Oleh karena itu,nfa yang dimodifikasi menerima LR,membuktikan penutupan di
bawah pembalikan.
❏ Closure di bawah Operasi Lainnya

➔ Definisi 4.1

Misalkan Σ dan Γ adalah alfabet.Kemudian sebuah fungsi h:Σ → Γ disebut


homomorfisme. Dengan kata lain,homomorfisme adalah substitusi di mana
satu huruf diganti dengan string.Domain fungsi h diperluas ke string dengan
cara yang jelas; jika w=a1,a2,...,an,maka h(w)=h(a1),h(a2),...,h(an).Jika L adalah
bahasa pada Σ,maka citra homomorfiknya didefinisikan sebagai :

h(L)={h(w) : w ∈ L}
Contoh :

Misalkan Σ = {a, b, c} dan Γ = {a, b, c,} mendefinisikan h dengan

h(a) = ab

h(b) = bbc

Maka h(aba) = abbbcab. Bayangan homomorfik dari L = {aa, aba} adalah


bahasanya h (L) = {abab, abbbcab}.

Jika kita memiliki ekspresi reguler r untuk bahasa L, maka ekspresi reguler untuk h
(L) dapat diperoleh hanya dengan menerapkan homomorfisme pada setiap simbol
Σ dari r.
❖ Teorema 4.3

Biarkan h menjadi homomorfisme. Jika L adalah bahasa reguler, maka citra


homomorfiknya h (L) juga reguler. Oleh karena itu, rumpun bahasa reguler
tertutup di bawah homomorfisme arbitrer.

Bukti:

Biarkan L menjadi bahasa reguler yang dilambangkan dengan beberapa ekspresi


reguler r.ditemukan bahwa h(r) mengganti h(a) untuk setiap simbol a ∈ Σ dari r.Hal
ini dapat ditunjukkan secara langsung dengan banding ke definisi ekspresi reguler
bahwa hasilnya adalah ekspresi reguler.Sama mudahnya untuk melihat bahwa
ekspresi yang dihasilkan menunjukkan h(L).Kita hanya perlu menunjukkan bahwa
untuk setiap w ∈ L(r), h(w) yang bersesuaian ada di L(h(r)) dan sebaliknya setiap di
L(h(r)) ada sebuah w di L,sehingga υ = h(w).Dengan membiarkan detailnya sebagai
latihan, kita mengklaim bahwa h (L) teratur.
➔ Definisi 4.2

Biarkan L1 dan L2 menjadi bahasa pada alfabet yang sama. Maka hasil bagi
kanan L1 dengan L2 didefinisikan sebagai

L1/L2 : {x:xy ∈ L1 untuk beberapa y ∈ L2}

Untuk membentuk hasil bagi yang tepat dari L1 dengan L2,ambil semua string
di L1 yang memiliki akhiran milik L2. Setiap string tersebut, setelah
penghapusan akhiran ini, milik L1/L2

.
❖ Teorema 4.4

Jika L1 dan L2 adalah bahasa reguler, maka L1/L2 juga reguler.Dikatakan


bahwa keluarga bahasa reguler tertutup di bawah hasil bagi yang tepat
dengan bahasa reguler.
Pertanyaan Dasar tentang
Bahasa Reguler
Teorema 5
Diberikan representasi standar dari setiap bahasa reguler L pada dan sembarang
w *, terdapat sebuah algoritma untuk menentukan apakah w ada di L .
Bukti: Kita dapat mewakili bahasa oleh beberapa dfa, kemudian menguji w untuk
melihat apakah itu diterima oleh automaton ini.
Pertanyaan penting lainnya adalah apakah suatu bahasa terbatas atau tidak
terbatas, apakah dua bahasa itu sama, dan apakah satu bahasa merupakan
bagian dari bahasa lain. Untuk bahasa reguler setidaknya, ini pertanyaan mudah
dijawab.
Teorema 6
Ada algoritma untuk menentukan apakah bahasa reguler, diberikan dalam standar
representasi, kosong, terbatas, atau tak terbatas.
Bukti: Jawabannya jelas jika kita merepresentasikan bahasa sebagai grafik transisi
dari dfa. Jika ada jalur sederhana dari simpul awal ke simpul akhir mana pun,
maka bahasanya tidak kosong.
Untuk menentukan apakah suatu bahasa tidak terbatas, temukan semua simpul
yang merupakan basis dari beberapa siklus. Jika salah satu dari ini berada di jalur
dari titik awal ke titik akhir, bahasanya tidak terbatas. Sebaliknya,itu terbatas
Teorema 6
Pertanyaan tentang kesetaraan dua bahasa juga merupakan masalah praktis yang
penting. Seringkali ada beberapa definisi bahasa pemrograman, dan kita perlu
tahu, meskipun penampilannya berbeda, mereka merupakan bahasa yang sama.
Ini umumnya merupakan masalah yang sulit. Bahkan untuk bahasa biasa
argumennya tidak jelas. Tidak mungkin untuk memperdebatkan perbandingan
kalimat demi kalimat, karena ini hanya berfungsi untuk bahasa yang terbatas. Juga
tidak mudah untuk melihat jawabannya dengan melihat ekspresi reguler, tata
bahasa, atau dfa. Solusi elegan menggunakan closure properties yang ada.
Teorema 7
 
Mengidentifikasi Bahasa Nonreguler
Bahasa reguler bisa jadi tidak terbatas, namun fakta bahwa bahasa reguler
diasosiasikan dengan automata yang memiliki memori terbatas, mengharuskan
adanya batasan-batasan pada struktur bahasa reguler. Beberapa batasan
tersebut harus diperhatikan untuk menjaga konsistensinya. Jika menggunakan
intuisi, pada dasarnya suatu bahasa dapat dikatakan reguler jika suatu string yang
diproses dalam tahap apapun akan menyimpan informasi yang sangat terbatas.
Hal ini dapat dibenarkan, tetapi ada cara lain yang lebih sistematis untuk
mengidentifikasi bahasa nonreguler, antara lain:
Menggunakan Prinsip Pigeonhole
Dalam matematika, prinsip pigeonhole (sangkar
merpati) menyatakan bahwa jika ada n item
dimasukkan ke dalam m kontainer dengan n>m maka
setidaknya harus ada satu wadah yang berisi lebih
dari satu item. Misalnya, jika seseorang memiliki tiga
buah sarung tangan, maka setidaknya harus ada dua
sarung tangan tangan kanan, atau setidaknya dua
sarung tangan kiri, karena ada tiga benda, tetapi
hanya dua kategori untuk klasifikasinya.
Prinsip ini secara otomatis dapat membuktikan bahasa
nonreguler, karena bahasa nonreguler pasti tidak teratur
Contoh

Apakah bahasa L = {an b n : n ≥ 0} adalah bahasa reguler? Jawabannya tidak.


Berikut penjabarannya menggunakan bukti kontradiksi

Misalkan L reguler. Maka beberapa dfa M = (Q, {a, b},δ, q0, F) ada untuknya.
Sekarang perhatikan δ* (q0,ai) untuk i = 1, 2, 3,…. Karena ada jumlah i yang tidak
terbatas, tetapi dalam M hanya berlaku keadaan jumlah yang terbatas, prinsip
pigeonhole menyatakan bahwa harus ada suatu keadaan, katakanlah q, sehingga

δ* (q0,am) = q dan δ* (q0,an) = q

dengan n ≠ m .
Tetapi karena M menerima a n b n maka

δ* (q, bn) = qf ∈ F

Dari sini dapat disimpulkan bahwa

δ* (q0, am bn) = δ*(δ* (q0, am ), bn)

= δ* (q, bn)

= qf

Ini bertentangan dengan asumsi awal bahwa M menerima a m b n

hanya jika n = m , dan mengarah pada kesimpulan bahwa L bukan

bahasa reguler.
Pumping Lemma

Dalam istilah matematika, Lemma dikenal sebagai satu teori kecil (mini theory)
dan hanya pumping lemma yang menyatakan bahwa jika suatu bahasa reguler,
maka setiap string dalam bahasa tersebut akan memiliki bagian yang dapat
diulang atau dipompa beberapa kali dan masih dalam bahasa itu. Pumping
lemma menyatakan bahwa semua string dalam bahasa dapat diulang atau
dipompa setidaknya sama panjang dengan standar panjang tertentu yang
disebut panjang pemompaan untuk contoh penyebutan panjang pemompaan ini
p. Setiap bahasa reguler pasti akan memenuhi pumping lemma. Sebaliknya, jika
tidak memenuhi, maka bahasa tersebut tidak bisa menjadi bahasa reguler.
Contoh

Buktikan bahwa B = {0 n 1 n | n > 0} adalah bahasa nonreguler!

Penyelesaian :
● Asumsikan bahwa B adalah bahasa reguler
● Dilakukan proses pumping lemma yang memberikan panjang pemompaan p
● Bahasa B menjadi B = {0 p 1 p | n > 0}
● Diubah menjadi 3 bagian : string sebelum dipompa, string yang sedang
dipompa, string setelah dipompa
B = {0 p 1 p | n > 0}

● 0 p 1 p ⇒ 0….0….0….0 0 p 1 p ∉ B (jumlah 0 > 1, p ≠ p)


● 0 p 1 p ⇒ 0 p 1 p 1....1....1... 0 p 1 p ∉ B (jumlah 1 > 0, p ≠ p)
● 0 p 1 p ⇒ 0…. 01...01...01….1 0 p 1 p ∉ B (memiliki pola yang berbeda
dengan bahasa B)

Sehingga 0 p 1 p tidak bisa dipompa (tidak memenuhi). Kesimpulannya B bukan


bahasa reguler.

Anda mungkin juga menyukai