Operasi Reguler

Download Report

Transcript Operasi Reguler

Yenni Astuti
Version 1.1.0
(5 + 3)  4
Ekspresi Aritmatika
32
Ekspresi Reguler (0  1)0*
semua string yang
berawal dengan
string 0 atau 1,
diikuti sembarang
jumlah 0
Ekspresi Reguler
Operasi reguler yang digunakan untuk
membentuk suatu bahasa (language).
Operasi Reguler:
1. 
2. ○
3. *
Language dari (0  1)0*
• (0  1) = ({0}  {1})
• 0* = {0}*  semua string yang anggotanya
simbol 0.
• (0  1)0* = (0  1) ○ 0*
• L = {00, 10, 000, 100, 0000, 1000, … }
Language dari (0  1)*
• Ekspresi ini dapat dituliskan sebagai *,
dengan  = {0,1}
• L = {0, 1, 00, 01, 10, 11, … }
Prioritas Operasi
Aritmatika
1.  (perkalian)
2. + (penambahan)
Reguler
1. * (operasi bintang)
2. ○ (sambungan)
3.  (union/ gabungan)
Definisi Matematis Ekspresi
Reguler
R merupakan ekspresi reguler jika R adalah:
1. a, dengan a anggota alfabet .
2. .
3. .
4. (R1  R2) dengan R1 dan R2 merupakan ekspresi
reguler.
5. R1 ○ R2 dengan R1 dan R2 merupakan ekspresi
reguler.
6. (R1)*, dengan R1 merupakan ekspresi reguler.
Contoh Ekspresi Reguler
 = {0,1}
1. 0*10* = {w|w memiliki tepat satu 1}
2. *1 * = {w|w memiliki sekurangnya satu 1}
3. *001 * = {w|w memiliki substring 001}
4. (  )* = {w|panjang w adalah kelipatan tiga}
5. 01  10 = {01, 10}
6. (0  )(1  ) = {, 0, 1, 01}
Operasi Identitas R
• R=R
Penambahan bahasa kosong ke sembarang
bahasa tidak akan mengubah R.
• R○=R
Penambahan string kosong ke sembarang
string tidak akan mengubah R.
Aplikasi Ekspresi Reguler
• Identifikasi pola suatu bahasa
• Pengecekan alamat e-mail
Pengecekan
Alamat
Email
[a-z][a-z|0-9|]*([_][a-z|0-9]+)*([.][a-z|0-9]+([_][a-z|0-9]+)*)?
Ekivalensi RE dan FA
RE dan FA memiliki kemampuan yang
sama dalam menggambarkan perilaku
suatu sistem transisi.
RE dapat diubah dalam bentuk FA yang dapat
mengenali bahasa yang sama.
RE menjadi NFA
1
• Jika R = a untuk sembarang a pada .
Maka L(R) = {a}
q0
a
q1
RE menjadi NFA
2
• Jika R = ,
Maka L(R) = {}
q0
• Jika R = ,
Maka L(R) = 
q0
RE menjadi NFA
• R = R1  R2
• R = R 1 ○ R2
• R = R1*
3
Contoh: RE menjadi FA
1
R = (ab  a)*
Cari NFA ekivalennya yang diberi nama NFA N.
a
a
b
b
Contoh: RE menjadi FA
2
R = (ab  a)*
Cari NFA ekivalennya yang diberi nama NFA N.
ab
ab  a
a


b

a
a

b
Contoh: RE menjadi FA
3
R = (ab  a)*
Cari NFA ekivalennya yang diberi nama NFA N.
(ab  a)*

a



a


b
Contoh: RE menjadi FA
4
R = (a  b)* aba
Cari NFA ekivalennya yang diberi nama NFA N1.
a
a
b
b
Contoh: RE menjadi FA
5
R = (a  b)* aba
Cari NFA ekivalennya yang diberi nama NFA N1.
ab


a
b
Contoh: RE menjadi FA
5
R = (a  b)* aba
Cari NFA ekivalennya yang diberi nama NFA N1.

(a  b)*
a



b

Contoh: RE menjadi FA
6
R = (a  b)* aba
Cari NFA ekivalennya yang diberi nama NFA N1.
aba
a

b

a
Contoh: RE menjadi FA
6
R = (a  b)* aba
Cari NFA ekivalennya yang diberi nama NFA N1.
(a  b)* aba
FA menjadi RE
1
R4
qj
qi
R1
qi
(R1)(R2)*(R3)  (R4)
R3
qr
R2
BEFORE
AFTER
qj
DFA menjadi RE
a
1
s
2

b
2
a
1
b
a, b
a

2
ab
(a)
(b)
DFA menjadi RE
s

1
a
3
s
b (a  b)*
a

a*b (a  b)*
a
(c)
(d)
Tahapan Mengubah DFA menjadi
RE
DFA 2 state
Ekspresi
Reguler
GNFA 4 state
GNFA 3 state
GNFA 2 state
DFA menjadi RE
4
DFA menjadi RE
5
DFA menjadi RE
6
DFA menjadi RE
7
DFA menjadi RE
7
DFA menjadi RE
8
SEE YOU ON UTS