EKSPRESI REGULAR

Download 8 Apr 2015 ... EKSPRESI REGULAR. • Bahasa disebut reguler jika terdapat FSA yang dapat menerimanya. • Bahasa reguler dinyatakan secara sede...

2 downloads 858 Views 536KB Size
EKSPRESI REGULAR MATERI MINGGU KE KE--4

• • • •

EKSPRESI REGULAR

Bahasa disebut reguler jika terdapat FSA yang dapat menerimanya. Bahasa reguler dinyatakan secara sederhana dengan ekspresi reguler/regular expression (RE). Contoh penerapan : searching string pada file RE -> NFA dengan e Move -> DFA

Definisi ekspresi reguler 1. Ø = {} = (himpunan kosong) adalah sebuah ekspresi regular 2. { ɛ } =string kosong adalah ekspresi regular 3. Untuk setiap a ϵ ∑, maka a adalah ekspresi regular 4. Jika a dan b adalah ekspresi regular maka a ∪ b , ab dan a* adalah ekspresi regular. “Ø yang melambangkan himpunan kosong, atau tidak punya anggota, sedangkan { ɛ } adalah himpunan yang memiliki satu anggota , yaitu string kosong.”

2 8 April 2015

Teori Bahasa dan Otomata

Notasi a ∪ b , ab dan a* adalah penyederhanaan notasi yang diperoleh dari notasi asli sebagai berikut : Jika dimiliki himpunan A,B sebagai himpunan berikut : • Ekspresi a ∪ b maksudnya : A={a} dan B={b} A ∪ B = gabungan/union antara himpunan A dengan himpunan B = {a,b} Dinotasikan secara singkat sebagai : a ∪ b • Ekspresi ab maksudnya : A={a} dan B={b} AB = CONCATENATION antara himpunan A dengan himpunan B = {ab} Dinotasikan secara singkat sebagai : ab • Ekspresi a* maksudnya : A={a} A* = CLEENE closure dari himpunan A, didefinisikan : A0 ∪ A1 ∪ A2 ∪....∪ A∞, yang menghasilkan suatu himpunan : { ɛ , a, aa, aaa, aaaa, ….}, dinotasikan sebagai a*

3 8 April 2015

Teori Bahasa dan Otomata

Akibat Logis Ekspresi Reguler Reguler,, berdasarkan Aturan Aturan--Aturan dalam Teori Himpunan Himpunan,, 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

a∪b=b∪a a∪Ø=Ø∪a a∪a=a (a ∪ b) ∪ c = a ∪(b ∪ c) aɛ = ɛa = a aØ = Øa = Ø (ab)c=a(bc) a(b ∪ c)=ab ∪ ac = dan (a ∪ b)c = ac ∪ bc a* = a** = a*a* = (ɛ ∪ a)*=a*(a ∪ ɛ) = (a ∪ ɛ)a* = ɛ ∪ aa* aa*= a*a 4

8 April 2015

Teori Bahasa dan Otomata

CONTOH

Ekspresikan dalam bentuk ekspresi reguler kalimat-kalimat berikut : • Sederatan NOL minimal nol buah Ekspresinya : 0* • Sederatan NOL minimal satu buah Ekspresinya : 00* • Sederetan NOL minimal satu buah diikuti sederetan SATU sebanyak satu buah atau lebih Ekspresinya : 00*11* • Sederetan bit NOL dan SATU sembarang yang diawali dengan NOL dan diakhiri dengan SATU Ekspresinya : 0(0,1)*1 atau ditulis : 0(0 ∪ 1)*1 • Sederetan SATU dengan jumlah GENAP Ekspresinya : 11(11)* • Sederetan NOL dengan jumlah GENAP diikuti sederetan SATU dengan jumlah GANJIL Ekspresinya : 00(00)*1(11)*

5 8 April 2015

Teori Bahasa dan Otomata

CONTOH String apakah ekspresi-ekspresi regular berikut : a. Ekspresi : (1,0)* → Sederetan bit NOL dan SATU dengan jumlah sembarang dan susunan sembarang. b. Ekspresi : (0,1)*1* → Sederetan bit NOL dan SATU dengan jumlah sembarang urutan sembarang diikuti dengan deretan bit SATU dengan jumlah nol atau lebih. c. Ekspresi : (00)*(11)* → Deretan NOL kosong atau Genap diikuti deretan SATU kosong atau genap. a. Ekspresi : (11)* ∪ (00)* → String kosong atau berisi bit NOL genap atau bit SATU genap dengan posisi sembarang 6 8 April 2015

Teori Bahasa dan Otomata

Bahasa Reguler Apabila r adalah RE, maka L(r) adalah bahasa reguler yang dibentuk menggunakan ekspressi reguler r. Contoh : Tentukan bahasa reguler yang dibentuk oleh r=(aa)* Jawab L(r) = L( (aa)* ) = { λ, aa, aaaa, aaaaaa, ... } = {a2n | n ≥ 0 } menyatakan himpunan string a dengan jumlah genap

7 8 April 2015

Teori Bahasa dan Otomata

CONTOH •

Tentukan bahasa reguler yang dibentuk oleh r =(aa*)(bb)*b Jawab : L ( r ) = L((aa)*(bb)*b) = { an b2m+1 | n, m ≥ 0}



Tentukan ekspresi reguler pembentuk bahasa pada S = {0,1}, yaitu L(r) = { w ϵ ∑* | w memiliki substring ‘00’ } Jawab : r = (0+1)*00(0+1)*



Tentukan ekspresi reguler pembentuk bahasa pada ∑ = {a,b}, yaitu L(r) = { abnw | n ≥ 3 , w ϵ {a , b}+ } Jawab : r = abbb(a+b)(a+b)*

8 8 April 2015

Teori Bahasa dan Otomata

Sifat Bahasa Reguler •

Tertutup terhadap operasi himpunan sederhana Jika L1 dan L2 adalah bahasa reguler, maka L1 U L2 L1 ∩ L2, L1L2, ~ (L1) dan L1* adalah bahasa reguler juga



Tertutup terhadap homomorphic image Jika L1 adalah bahasa reguler, maka homomorphic image h(L1) adalah bahasa reguler juga. Dimisalkan ∑ dan ᴦ adalah alfabet, maka fungsi homomorphic dinyatakan denganh : ∑→ᴦ jika w = a1 a2 ... an maka h(w) = h(a1) h(a2 ) ... h(an) Jika L adalah bahasa pada ∑ maka homomorphic image bahasa L adalah h(L)= { h(w) | w ϵ L}

9 8 April 2015

Teori Bahasa dan Otomata

CONTOH •

Dimisalkan ∑ = {a,b} dan ᴦ = {a,b,c} dan didefinisikan h(a) = ab dan h(b) =bbc homomorphic image bahasa L = {aa,aba } adalah h(L)= { abab, abbbcab}



Dimisalkan ∑= {a,b} dan h(b) =bdc



homomorphic image bahasa L(r) yang dibentuk dari ekspresi reguler r = (a+b*)(aa)* adalah h(L(r)) yang dibentuk dengan ekspresi reguler r = (dbcc + (bdc)*) (dbccdbcc)*

ᴦ = {b,c,d} dan didefinisikan h(a) = dbcc dan

10 8 April 2015

Teori Bahasa dan Otomata

Hubungan RE dan NFA

11 8 April 2015

Teori Bahasa dan Otomata

Hubungan RE dan NFA

12 8 April 2015

Teori Bahasa dan Otomata

Ekuivalensi NFA, DFA, dan RG

• DFA bisa dibentuk dari NFA. • RG bisa dibentuk dari DFA. • NFA bisa dibentuk dari RG

NFA

DFA

RG

13 8 April 2015

Teori Bahasa dan Otomata

Pembentukan DFA dari NFA 1.

2. 3. 4.

5. 6.

Diberikan sebuah NFA F = (K, VT, M, S, Z). Akan dibentuk sebuah DFA F’ = (K’, V ’, M’, S’, Z’) dari NFA F tersebut. Algoritma pembentukannya adalah sbb. : Tetapkan : S’ = S dan VT’ = VT Copykan tabel NFA F sebagai tabel DFA F’. Mula-mula K’ = K dan M’ = M Setiap stata q yang merupakan nilai (atau peta) dari fungsi M dan q  K, ditetapkan sebagai elemen baru dari K’. Tempatkan q tersebut pada kolom Stata M’, lakukan pemetaan berdasarkan fungsi M. Ulangi langkah (3) sampai tidak diperoleh stata baru. Elemen Z’ adalah semua stata yang mengandung stata elemen Z. 14

8 April 2015

Teori Bahasa dan Otomata

CONTOH

Berikut ini diberikan sebuah NFA F = (K, V , M, S, Z) dengan : K = {A, B, C}, VT = {a, b}, S = A, Z = {C}, dan M didefinisikan sebagai berikut : STATA K NFA F

Input a

b

A

[A,B]

C

B

A

B

C

B

[A,B]

Tentukan DFA hasil transformasinya !

15 8 April 2015

Teori Bahasa dan Otomata

Jawab: Berdasarkan algoritma di atas, maka : 1. S’ = S = A, VT’ = VT = {a, b}. 2. Hasil copy tabel NFA F menghasilkan tabel DFA F’ berikut : STATA K’ NFA F’

3.

Input a

b

A

[A,B]

C

B

A

B

C

B

[A,B]

Pada tabel DFA F’ di atas terdapat stata baru yaitu [A,B]. Pemetaan [A,B] adalah : M([A,B],a) = M(A,a) ∪ M(B,a) = [A,B] ∪ A = [A,B], dan M([A,B],b) = M(A,b) ∪ M(B,b) = C ∪ B = [B,C], sehingga diperoleh tabel berikut : STATA K’ NFA F’

8 April 2015

Input a

b

A

[A,B]

C

B

A

B

C

B

[A,B]

[A,B]

[A,B]

[B,C] Teori Bahasa dan Otomata

16

4.

Langkah (3) di atas menghasilkan stata baru yaitu [B,C]. Setelah pemetaan terhadap [B,C] diperoleh tabel berikut : STATA K’ NFA F’

Input a

b

A

[A,B]

C

B

A

B

C

B

[A,B]

[A,B]

[A,B]

[B,C]

[B,C]

[A,B]

[A,B]

5. Setelah langkah (4) di atas tidak terdapat lagi stata baru. Dengan demikian DFA F’ yang dihasilkan adalah : DFA F’ = (K’, VT’, M’, S’, Z’), dimana : K’ = {A, B, C, [A,B], [B,C]}, VT’ = {a, b}, S’ = A, Z’ = {C, [B,C]}. Fungsi transisi M’ serta Graf dari DFA F’ adalah sebagai berikut :

17 8 April 2015

Teori Bahasa dan Otomata

Pembentukan RG dari DFA Diketahui sebuah DFA F = (K, VT, M, S, Z). Akan dibentuk RG G = (VT’,VN, S’, Q). Algoritma pembentukan RG dari DFA adalah sebagai berikut : • Tetapkan VT’ = VT, S’ = S, VN = S • Jika Ap, Aq ϵ K dan a ϵ VT, maka : M(Ap, a) = A ekuivalen dengan produksi A p  aA q , jika A q  Z

  A p  a, jika A q  Z

18 8 April 2015

Teori Bahasa dan Otomata

CONTOH Diketahui sebuah DFA F dengan Z = {S} dan fungsi transisi M sebagai berikut : Dengan algoritma di atas maka diperoleh Q(RG)sbb. : M(S,0) = B  S  0B STATA K DFA INPUT F M(S,1) = A S  1A 0 1 M(A,0) = C  A  0C S B A M(A,1) = S A  1 A C S M(B,0) = S  B  0 M(B,1) = C B 1C B S C M(C,0) = A  C  0A C A B M(C,1) = B C  1B RG yang dihasilkan adalah G(VT’, VN, S’, Q), dengan VT’ = {0,1}, VN = {S, A, B, C}, S’ = S, dan Q = {S  0B, S  1A, A  0C, B 1C, C  0A, C  1B, A  1, B  0}

19 8 April 2015

Teori Bahasa dan Otomata

Pembentukan NFA dari RG Diketahui RG G = (VT, VN, S, Q). Akan dibentuk NFA F = (K, VT’, M, S’, Z). Algoritma pembentukan NFA dari RG : 1. Tetapkan VT’ = VT, S’ = S, K = VN 2. Produksi Ap  a Aq ekuivalen dengan M(Ap, a) = Aq Produksi Ap  a ekuivalen dengan M(Ap , a) = X, dimana X  V 3. K = K ∪ {X} 4. Z = {X}

20 8 April 2015

Teori Bahasa dan Otomata

CONTOH Diketahui RG G = (VT, VN , S, Q) dengan : VT = {a, b}, VN = {S, A, B}, S = S, dan Q = {S  aS, S  bA, A  aA, A  aB, B  b} Tabel M :

STATA K NFA F

INPUT a

b

S

S

A

A

[A,B]



B



X

X





Terapkan algoritma di atas untuk memperoleh NFA F sebagai berikut : 1. VT’ = VT = {a, b}, S’ = S, K = VN = {S, A, B} 2. S  aS  M(S,a) = S, S  bA  M(S,b) = A, A  aA  M(A,a) = A, A  aB  M(A,a) = B, B  b  M(B,b) = X NFA yang diperoleh : F(K, VT’, M, S’, Z), dengan K = {S, A, B, X}, VT’ = {a, b}, S’ = S, Z = {X},

21

8 April 2015

Teori Bahasa dan Otomata

Ekuivalensi NFA NFA-- Dengan ER (Ekspresi (Ekspresi Regular)

22 8 April 2015

Teori Bahasa dan Otomata

CONTOH

Tentukan NFA untuk ekspresi regular r = 0(1  23)* Jawab : r1 = 0  r2 = 1  r3= 23 

r4= r2 r3 = 1 23 

23 8 April 2015

Teori Bahasa dan Otomata

CONTOH r5= r4* = (1 23)* 

r = r5= 0(1 23)* 

24 8 April 2015

Teori Bahasa dan Otomata

TERIMAKASIH Lilis Setyowati

25 8 April 2015

Teori Bahasa dan Otomata