Pertemuan 9 Sifat-sifat Bahasa Regular

Download Report

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.