Transcript Pertemuan 9 Sifat-sifat Bahasa Regular
Pertemuan 9 Sifat-sifat Bahasa Regular
Teori Bahasa dan Otomata (KOM208 ) SKS: 3(3-0)
TIK, Subtopik dan Waktu Penyajian
• Tinjauan Instruksional Khusus: – Mahasiswa akan dapat menjelaskan sifat-sifat bahasa regular . • Subtopik: – Pembuktian bahwa sebuah bahasa bukan bahasa regular – Sifat-sifat penutup dari bahasa regular • Waktu penyajian: 1 x 150 menit
Pendahuluan
• Sifat-sifat penting dalam bahasa regular digunakan sebagai alat untuk membuktikan bahwa sebuah bahasa bukan regular. • Alat dan sifat tersebut adalah
pumping lemma closure
.
dan
sifat • Dengan sifat-sifat bahasa regular, dapat dibuat alat untuk mengenal bahasa-bahasa yang dikonstruksi dari bahasa bahasa yang lain dengan menggunakan operasi tertentu. – Sebagai contoh, irisan dari dua bahasa regular adalah regular. – Dengan menggunakan automata yang mengenal dua bahasa yang berbeda, kita dapat membentuk sebuah
automaton
yang mengenali secara tepat irisan dari dua bahasa regular tersebut. • Sifat
closure
dapat digunakan untuk membangun automata yang kompleks.
Membuktikan Bahasa Bukan Regular
• Perhatikan bahasa L 01 = {0 n 1 n | n 1}. • Bahasa ini mengandung semua string 01, 0011, 000111, dan seterusnya. • String tersebut terdiri dari satu atau lebih para 0 dan diikuti oleh jumlah yang sama dari para 1. • Bahasa tersebut bukan bahasa regular. • Jika L 01 adalah bahasa regular maka akan ada sebuah DFA A yang menerima bahasa tersebut.
Teorema 1: (
Pumping lemma
bahasa regular) untuk
Misalkan L adalah bahasa regular. Maka terdapat sebuah konstanta n (yang tergantung pada L) sedemikian sehingga untuk setiap string w di dalam L sedemikian sehingga |w| y |xy| n Untuk semua k 0, string xy n, kita dapat memecah w ke dalam tiga string, w = xyz, sedemikian sehingga: k z juga di dalam L.
Bahwa kita selalu dapat menemukan string tak kosong y tidak begitu jauh dari awal w yang dapat di “pump”; bahwa pengulangan y beberapa kali, atau penghapusan y (dalam kasus k = 0), tetap menghasilkan string dalam bahasa L.
Contoh 1
• Dengan menggunakan ditunjukkan bahwa bahasa berikut bukan bahasa regular
Pumping lemma
dapat – L eq yang mengandung semua string dengan banyaknya para 0 dan para 1 adalah sama (tidak dalam urutan tertentu).
– L pr yang mengandung semua string dari para 1 yang memiliki panjang adalah bilangan prima.
Sifat-sifat
Closure
dari Bahasa Regular
1.
2.
3.
4.
5.
6.
7.
8.
9.
Gabungan dari dua bahasa regular adalah regular Irisan dari dua bahasa regular adalah regular Komplemen dari sebuah bahasa regular adalah regular Beda dari dua bahasa regular adalah regular
Reversal
dari sebuah bahasa regular adalah regular
Closure
(
star
) dari sebuah bahasa regular adalah regular Perangkaian dari bahasa-bahasa regular adalah regular Sebuah
homomorphism
(substitusi dari string untuk simbol) dari sebuah bahasa regular adalah regular.
Inverse
homomorphism
adalah regular dari sebuah bahasa regular
Closure
dari Bahasa Regular pada Operasi-operasi Boolean (1)
• Sifat
closure
yang pertama adalah tiga operasi Boolean, yaitu gabungan, irisan dan komplemen: 1. Misalkan L dan M adalah bahasa pada alphabet . Maka L M adalah bahasa yang mengandung semua string yang berada di L atau M, atau keduanya.
2. Misalkan L dan M adalah bahasa pada alphabet . Maka L dalam M adalah bahasa yang mengandung semua string yang berada di L dan M.
3. Misalkan L adalah bahasa pada alphabet komplemen dari L, adalah himpunan dari string-string * yang tidak dalam L.
. Maka L’, • Bahasa regular tertutup di bawah ketiga operasi Boolean tersebut.
Closure
dari Bahasa Regular pada Operasi-operasi Boolean (2)
• Gabungan dan irisan dari dua bahasa dapat diperoleh dari bahasa-bahasa dengan alphabet yang berbeda. • Contoh, L . 1 {a, b} sedangkan L string dengan simbol dalam 2 • Sehingga, kita dapat menyatakan L 1 {a, b, c}. • Tetapi, jika sebuah bahasa L terdiri dari string , maka L dapat dipandang sebagai bahasa pada sejumlah berhingga alphabet yang merupakan superset dari dan L 2 sebagai bahasa pada aplhabet {a, b, c, d}.
Closure
dari Bahasa Regular pada Operasi-operasi Boolean (3)
• Komplemen dari bahasa L adalah sebuah subset dari * untuk alphabet terhadap alphabet 2 1 , • Kita dapat memilih untuk mengambil komplemen yaitu sebuah superset dari 1 . • Jika demikian, maka komplemen L adalah 2 * L, yaitu komplemen dari L terhadap 2 meliputi semua string di dalam 2 * yang memiliki sedikitnya satu simbol yang ada dalam 2 tetapi tidak ada dalam 1 .
a.
Closure
pada gabungan
Teorema 2: Jika L dan M adalah bahasa regular, maka demikian halnya dengan L M.
Bukti: • Karena L dan M adalah regular, maka kedua bahasa tersebut memiliki ekspresi regular; katakanlah L = L(R) dan M = L(S). • Maka L M = L(R + S) dengan menggunakan definisi dari operator + untuk ekspresi regular.
b.
Closure
pada operasi komplemen (1)
• Berikut tahapan untuk menentukan ekspresi regular untuk komplemen dari bahasa yang diberikan: 1. Konversikan ekspresi regular ke dalam bentuk NFA.
2. Konversikan -NFA ke sebuah DFA dengan menggunakan konstruksi subset.
3. Komplemenkan
accepting state
dari DFA tersebut.
4. Kembalikan komplemen dari DFA ke dalam bentuk ekspresi regular dengan menggunakan konstruksi yang telah dibahas sebelumnya.
b.
Closure
pada operasi komplemen (2)
Teorema 3: • Jika L adalah bahasa regular pada alphabet , maka L’ = * L adalah juga bahasa regular.
Bukti: • Misalkan L = L(A) untuk suatu DFA A = (Q, , , q0, F). • Maka L’ = L(B), dimana B adalah DFA (Q, , , q0, Q F). • Bahwa B seperti A, hanya saja
accepting state accepting state
adalah dalam Q dari B, dan sebaliknya. • Maka w adalah dalam L(B) jika dan hanya jika tidak di dalam L(A).
dari A bukan q 0 , w F, yang muncul jika dan hanya jika w
Contoh 2
• Misalkan A adalah automata yang dinyatakan dalam diagram transisi di bawah ini. • DFA tersebut menerima semua string dari para 0 dan pada 1 yang diakhiri dengan 01. • Dalam bentuk ekspresi regular, bahasa yang diterima oleh DFA tersebut dinyatakan sebagai L = (0 + 1)*01.
Start 1 0 1 0 q 0 , q 1 0 1 q 0 , q 2
Contoh 2 (lanjutan)
• Komplemen dari L(A) adalah semua string dari para 0 dan para 1 yang tidak diakhiri dengan 01. Gambar berikut menunjukkan
automaton
untuk {0, 1}* L(A). • Gambar tersebut sama seperti diagram transisi untuk DFA , tetapi
accepting state
dijadikan bukan
accepting state
dan dua
state state
.
yang bukan
accepting state
dijadikan
accepting
Start 0 1 0 0 q 0 , q 1 1 q 0 , q 2 0 1
c.
Closure
pada irisan
• Operasi irisan dari dua bahasa dapat diperoleh dari operasi gabungan dan komplemen (dikatakan sebagai hukum De Morgan). L M = (L’ M’)’ • Hukum De Morgan yang lain adalah L M = (L’ M’)’ • Konstruksi langsung dapat dilakukan untuk irisan dari dua bahasa. Konstruksi ini menjalankan dua DFA secara paralel.
Teorema 4: • Jika L dan M adalah bahasa regular, maka demikian juga dengan L M.
Contoh 3
• DFA pada Gambar a menerima semua string yang memiliki sebuah 0, • DFA pada Gambar b menerima semua string yang memiliki sebuah 1. • DFA pada Gambar c adalah produk dari kedua DFA dalam gambar a dan b. •
State
-
state state
-
state
dari DFA pada gambar c diberi label oleh pasangan dari dari automata dalam gambar a dan b.
1 1 0,1 start p 0 0 (a) q 0,1 start pr 0 1 1 qr ps 0 qs start r 1 (b) s 0 0,1 (c)
d.
Closure
pada beda
• Dalam istilah bahasa, L M, beda dari L dan M, adalah himpunan string-string yang ada dalam bahasa L tetapi tidak dalam bahasa M. • Bahasa regular juga tertutup pada operasi beda himpunan.
Teorema 5: • Jika L dan M adalah bahasa regular, maka demikian juga dengan L M.
Reversal
(1) •
Reversal
dari sebuah string a 1 a 2 ...a
n adalah string yang ditulis terbalik, bahwa, a n a n 1 ...a
1 . • Notasi w R digunakan untuk
reversal
dari string w. Contoh: 0010 R adalah 0100, dan R = .
•
Reversal
dari bahasa L, ditulis L R , adalah bahasa yang terdiri dari
reversal
dari semua stringnya. Contoh, jika L = {001, 10, 111}, maka L R = {100, 01, 111}.
Reversal
(2) Teorema 6: • Jika L adalah bahasa regular, maka demikian juga dengan L R . • Pembuktian pernyataan ini dapat dilakukan dengan dua cara: menggunakan automata dan ekspresi regular.
Reversal
(3) • Diberikan sebuah bahasa L yaitu L(A) untuk suatu finite
automaton
, bisa berupa non determistik atau -transition, konstruksi
automaton
untuk L R dilakukan sebagai berikut: – Reverse semua arc dalam diagram transisi untuk A.
– Buatlah
start state
yang baru.
dari A menjadi – Buatlah
start state accepting state
yang baru p 0 dari A.
accepting state
dari
automaton
dengan transisi pada ke semua • Hasilnya adalah sebuah
automaton
reverse” yang mensimulasi A “in menerima sebuah string w jika dan hanya jika A menerima w R .
Contoh 4
• Misalkan L didefinisikan oleh ekspresi regular (0 + 1)0* • Maka L R adalah bahasa dari (0*) R (0 + 1) R , dengan menggunakan aturan perangkaian. • Jika aturan untuk
closure
dan gabungan digunakan untuk dua bagian ini, dan kemudian digunakan aturan basis yang menyatakan bahwa
reversal
dari 0 dan 1 adalah tetap, didapatkan bahwa L R memiliki ekspresi regular 0*(0 + 1).
Homomorphism
(1)
• Sebuah
homomorphism
string adalah sebuah fungsi pada string yang bekerja dengan mensubtitusikan sebuah string tertentu untuk setiap simbol.
Contoh 5: • Fungsi h didefinisikan oleh h(0) = ab dan h(1) =
homomorphism
. adalah • Diberikan string dari para 0 dan para 1, semua para 1 dengan string kosong.
homomorphism
mengganti semua para 0 oleh string ab dan menggantikan • Sebagai contoh, h yang diaplikasikan ke string 0011 adalah abab.
Homomorphism
(2)
• Jika h adalah sebuah
homomorphism
alphabet , dan w = a 1 a 2 ... a n dari simbol pada , maka pada adalah sebuah string h(w) = h(a 1 )h(a 2 )... h(a n ). h diaplikasikan ke setiap simbol dari w dan merangkai hasilnya, sesuai dengan urutan simbol simbol pada w. • Contoh, jika h adalah
homomorphism
Contoh 5, dan w = 0011, maka dalam h(w) = h(0)h(0)h(1)h(1) = (ab)(ab)( )( ) = abab.
Homomorphism
(3)
•
Homomorphism
dengan mengaplikasikannya ke setiap string dalam bahasa. dapat diaplikasikan ke sebuah bahasa Bahwa, jika L adalah bahasa pada alphabet , dan h adalah
homomorphism
pada , maka h(L) = {h(w) | w adalah dalam L}. • Contoh: jika L adalah bahasa dari ekspresi regular 10*1, yaitu sejumlah para 0 yang dilingkupi oleh satu buah simbol 1, maka h(L) adalah bahasa (ab)*. •
Homomorphism
h pada Contoh 5 menggantikan para 1 dengan , dan menggantikan 0 dengan ab.
Homomorphism
(4)
Teorema 7: • Jika L adalah bahasa reguler pada alphabet , dan h adalah
homomorphism
pada , maka h(L) juga regular.
Bukti: dapat dilihat pada buku rujukan
Daftar Pustaka
• John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. 2001.
Introduction to Automata Theory, Languange, and Computation
. Edisi ke-2. Addison-Wesley.