EKSPRESI REGULAR
EKSPRESI REGULAR
MATERI MINGGU
EKSPRESI REGULAR
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.”
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
Akibat
Akibat Logis
Logis Ekspresi
Ekspresi Reguler
Reguler, , berdasarkan
berdasarkan Aturan
Aturan--Aturan
Aturan dalam
dalam
Teori
Teori Himpunan
Himpunan,,
1.
a ∪ b = b ∪ a
2.
a ∪ Ø = Ø ∪ a
3.
a ∪ a = a
4.
(a ∪ b) ∪ c = a ∪(b ∪ c)
5.
aɛ = ɛa = a
6.
aØ = Øa = Ø
7.
(ab)c=a(bc)
8.
a(b ∪ c)=ab ∪ ac = dan (a ∪ b)c = ac ∪ bc
9.
a* = a** = a*a* = (ɛ ∪ a)*=a*(a ∪ ɛ) = (a ∪ ɛ)a* = ɛ ∪ aa*
10.
aa*= a*a
CONTOH
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
CONTOH
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
Bahasa
Bahasa Reguler
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, ... }
= {a
2n | n ≥ 0 }
CONTOH
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 :
Sifat
Sifat Bahasa
Bahasa Reguler
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}
CONTOH
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
ᴦ
= {b,c,d} dan didefinisikan h(a) = dbcc 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)*
Hubungan
Hubungan
Ekuivalensi
Ekuivalensi NFA, DFA,
NFA, DFA, dan
dan RG
RG
• DFA bisa dibentuk dari NFA.
• RG bisa dibentuk dari DFA.
• NFA bisa dibentuk dari RG
DFA RG
Pembentukan
Pembentukan DFA
DFA dari
dari NFA
NFA
1.
Diberikan sebuah NFA F = (K, V
T, M, S, Z). Akan dibentuk sebuah
DFA F’ = (K’, V ’, M’, S’, Z’) dari NFA F tersebut. Algoritma
pembentukannya adalah sbb. :
2.
Tetapkan : S’ = S dan V
T’ = V
T3.
Copykan tabel NFA F sebagai tabel DFA F’. Mula-mula K’ = K dan
M’ = M
4.
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.
5.
Ulangi langkah (3) sampai tidak diperoleh stata baru.
CONTOH
CONTOH
Berikut ini diberikan sebuah NFA F = (K, V , M, S, Z) dengan :
K = {A, B, C}, V
T= {a, b},
S = A,
Z = {C}, dan M didefinisikan sebagai
berikut :
Tentukan DFA hasil transformasinya !
STATA K NFA F Input
a b
A [A,B] C
B A B
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 :
3. 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’ Input
a b
A [A,B] C
B A B
C B [A,B]
STATA K’ NFA F’ Input
a b
A [A,B] C
4. Langkah (3) di atas menghasilkan stata baru yaitu [B,C]. Setelah pemetaan terhadap [B,C] diperoleh tabel berikut :
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 :
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]
Pembentukan
Pembentukan RG
RG dari
dari DFA
DFA
Diketahui sebuah DFA F = (K, V
T, M, S, Z). Akan dibentuk
RG G = (V
T’,V
N, S’, Q).
Algoritma pembentukan RG dari DFA adalah sebagai berikut :
•
Tetapkan V
T’ = V
T, S’ = S, V
N= S
•
Jika A
p, A
qϵ K dan a ϵ V
T, maka :
M(A
p, a) = A ekuivalen dengan produksi
Z
A
jika
,
a
A
Z
A
jika
,
aA
A
q p q q pCONTOH
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 M(S,1) = A S 1A M(A,0) = C A 0C M(A,1) = S A 1 M(B,0) = S B 0 M(B,1) = C B 1C M(C,0) = A C 0A 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,
STATA K DFA F INPUT 0 1 S B A A C S B S C C A B
Pembentukan
Pembentukan NFA
NFA dari
dari RG
RG
Diketahui RG G = (V
T, V
N, S, Q). Akan dibentuk NFA F = (K, V
T’, M, S’, Z).
Algoritma pembentukan NFA dari RG :
1.
Tetapkan V
T’ = V
T, S’ = S, K = V
N2.
Produksi A
p
a A
qekuivalen dengan M(A
p, a) = A
qProduksi A
p
a ekuivalen dengan M(A
p, a) = X, dimana X V
3.
K = K ∪ {X}
CONTOH
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 :
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 STATA K NFA F INPUT a b S S A A [A,B] ⌽ B ⌽ X X ⌽ ⌽