Anda di halaman 1dari 6

A. Dari Finite Automata ke Ekspresi Reguler.

Diberikan sebuah DFA M. Kita dapat menurunkan ekspresi reguler r yang menyatakan
bahsa yang diterima oleh DFA tersebut, L(M).
Ada beberapa cara untuk memperoleh ekspresi reguler dari suatu DFA :
1. Menggunakan teorema 2.4 dari buku [3]
2. Menggunakan persamaan ekspresi reguler.

Di dalam kuliah ini kita hanya mempelajari cara kedua.


Sekarang kita pelajari cara memperoleh sistem persamaan ekspresi reguler.
Tinjau DFA M = (Q, ∑, δ, q0, F). Untuk setiap q1 di dalam Ԛ kita definisikan
Xi = { w di dalam ∑* | δ(qi, w) di dalam F }
Artinya Xi adalah himpunan string terhadap ∑* yang menggerakan M dari q1 ke status akhir.
Dengan mengingat bahwa bahasa yang diterima oleh M, dilambangkan dengan L(M), adalah
himpunan
L = { w | δ(q0, w) di dalam F }
maka perhatikan bahwa X0 = L(M) karena
X0 = { w di dalam ∑* | δ(qi, w) di dalam F }
yakni, δ(q0, w) di dalam F. Perhatikan juga bahwa dimungkinkan Xi = ∅. Jika q1 adalah elemen
F, maka kita dapatkan bahwa ∈ adalah elemen Xi.

Sebagai contoh, pandang DFA yang diagram transisinya ditunjukkan pada gambar berikut :

a b
Start q0 q1 q2

a, b
a

b q5

b a, b

a
q3 q4

Dari DFA di atas kita dapatkan :

X5 = ∅
X4 = {∈}
X3 = {a}
X2 = {∈}
X1 = {b}
X0 = {ab} ∪ {ba} = {ab, ba}
Misalkan bahwa δ(q1, a) = qj untuk setiap simbol a di dalam ∑. Dari persamaan Xi di
atas kita melihat bahwa

Xi = ∪ {axj | qj di dalam δ(q1, a)}

Perhatikan bahwa
X0 = {aX1} ∪ {bX3}
X1 = {bX2} ∪ {aX5}
X2 = {∈} ∪{aX5} ∪ {bX5}
X3 = {aX4} ∪ {bX5}
X4 = {∈} ∪{aX5} ∪ {bX5}
X5 = ∅

Jadi, bahasa yang diterima ooleh M adalah L(M) = {ab, ba}, yang dalam ekspresi
reguler adalah ab+ba.

Pengamatan ini menyediakan basis untuk menurunkan ekspresi reguler dari sebuah
DFA. Misalkan xi adalah ekspresi reguler yang menyatakan himpunan Xi. Sistem
persamaan ekspresi reguler yang bersesuaian dengan sistem persamaan himpunan di
atas adalah :

X0 = ax1 + bx1
X1 = bx2 + ax5
X2 = ∈ + ax5 + bx5
X3 = ax4 + bx5
X4 = ∈ + ax5 + bx5
X5 = ∅

Dan penyelesainnya adalah :


X5 = ∅
X4 = ∈ +a∅ + b∅ = ∈ + ∅ + ∅ = ∈
X3 = a∈ + b∅ = a + ∅ = a
X2 = ∈ +a∅ + b∅ = ∈ + ∅ + ∅ = ∈
X1 = b∈ + a∅ = b + ∅ = b
X0 = ab + ba

Jadi, ekspresi reguler yang menyatakan bahasa yang diterima oleh DFA di atas adalah
ab + ba.

Dalam beberapa kasus, ada persamaan yang tidak dapat diperoleh jjawabannya dengan
cara penyulihan dan eliminasi. Seperti contoh DFA berikut :
a

b
q0 q1
Start

Sistem persamaan ekspresi regulernya adalah :

X0 = ax0 + bx1
X1 = ∈

Dengan menyelesaikan melalui penyulihan, diperoleh :

X0 = ax0 + b∈ = ax0 + b

Dan tidak dapat disederhanakan lebih lanjut. Masalah seperti ini diselesaikan dengan Lemma
Arden sebagai berikut :

Lemma Arden. Sebuah persamaan yang berbentuk x = ax + b mempunyai solusi tunggal x =


a*b.
Bukti untuk lemma ini diberikan di sini, tetapi kita dapat memverifikasi dengan menyulihkan
langsung x = a*b ke dalam persamaan :

x = ax + b
a*b = aa*b + b
a*b = a+b + b

maka tiap ruas menyatakan himpunan yang sama, yaitu ditunjukkan sebagai berikut :

a*b = a+b + b
{∈, a, aa, aaa, ...} {b} = {a, aa, aaa, ...} {b} ∪ {b}
{b, ab, aab, aaab, ...} = {ab, aab, aaab, ...} ∪ {b} = {b, ab, aab, aaab, ...}

Jadi, solusi untuk x0 = ax0 + b adalah x0 = a*b (seperti yang kita harapkan melalui pemeriksaan
diagram transisi).
Contoh 11.1 : Tinjau DFA yang diberikan di bawah ini. Tentukan ekspresi reguler yang
menyatakan bahasa yang diterima oleh DFA tersebut.

Sistem persamaan ekspresi regulernya :


x0 = ax1
x1 = ax2 + bx4
x2 = ax3 + bx4
x3 = ∈ + ax3 + bx4
x4 = ∈ + bx4

sistem persamaan di atas diselesaikan dengan menerapkan Lemma Arden sbb :

x4 = b*∈ = b* (Lemma Arden)

x3 = ∈ + ax3 + b(b*)
= ∈ + ax3 + bb*
= ∈ + ax3 + b+
= ax3 + (∈ + b+)
= ax3 + b*
= a*b* (Lemma Arden)

x2 = a(a*b*) + b(b*)
= aa*b* + b*
= a+b* + b+

x1 = a(a+b* + b+) + bb*


= aa+b* + a b+ + b+

x0 = a(aa+b* + ab* + b+)


= aaa+b* + aab* + ab+
= a2a+b* + a2b* + ab+

Jadi, ekspresi reguler yang menyatakan bahasa yang diterima oleh DFA tersebut adalah
a2a+b* + a2b* + ab+.

B. Sifat Bahasa Reguler.


Pada upa_bab ini, kita akan membicarakan beberapa sifat perihal bahasa reguler.
Fakta tersebut berguna untuk menjawab sejumlah pertanyaan berikut :
1) Diberikan bahsa L yang dispesifikasikan dalam beberapa cara, apakah L reguler?
2) Apakah bahasa yang dibentuk dengan mengoperasikan beberapa bahasa reguler
tetap menghasilkan bahasa reguler?
3) Diberikan sebuah finite automaton yang menerima sebuah bahasa reguler.
Bagaimana cara meminimumkan jumlah status di dalam FA tersebut?

Ketiga pertanyaan di atas masing-masing dapat dijawab dengan sifat :


1) Lemma pemompaan (pumping lemma)
2) Sifat ketertutuupan (closure properties)
3) Minimisasi finite automata

Karena keterbatasan waktu, maka kuliah ini hanya membicarakan properti yang
pertama dan kedua saja, yaitu lemma pemompaan dan sifat ketertutupan. Sifat sisanya
dapat dibaca pada referensi [3].

Lemma Pemompaan
Lemma pemompaan berguna untuk membuktikan bahwa suatu bahasa bukan
bahasa reguler, yaitu diberikan sebuah bahasa L. Apakah L reguler?
Untuk menjawab pertanyaan ini, kita memerlukan suatu sifat yang dimiliki oleh bahasa
reguler tetapi tidak terdapa di dalam bahasa bukan reguler.
Misalkan L sebuah bahsa reguler sehingga diterima oleh DFA M = (Q, ∑, δ, q0, F)
yang dalam hal ini ∑ memuat n sebuah status. Tinjau string masukan yang panjangnya
lebih besar dari n, misalkan striny itu adalah x = a1 a2... an+1. Jika dimisalkan
q1 = δ(q0, a1)
q2 = δ(q1, a2)
...
Dan seterusnya, maka kita mendapatkan n+1 status q1, q2, ... qn+1. Karena ∑ hanya
memuat n buah status, jelas tidak semua q1 berbeda. Dengan demikian, untuk beberapa
indeks j dan k, dengan 1 ≤ j ≤ k ≤ n+1, harus ada q1 = qk. Jadi, kita dapatkan sebuah
siklus dalam lintasan dari q0 ke status akhir, yang ditunjukkan pada gambar berikut :

aj+1 … ak

a1 … aj
q0 qJ =qk qn+1

Karena j < k, kita dapatkan bagian tengah, yaitu aj+1 ... ak mempunyai panjang paling
sedikit 1. Jika qn+1 adalah status akhir di dalam F, yaitu a1a2... an+1 adalah string di
dalam L(M), maka a1a2... ajak+1 ak+2... an+1 juga string di dalam L(M). Tentang hal ini,
kita dapat berjalan melalui lintasan q0 ke qn+1 tanpa melalui siklus. Secara formal,

δ(q0, a1a2... ajak+1 ak+2... an+1) = δ(q0, a1a2... aj), ak+1ak+2... an+1)
= δ(qj, ak+1ak+2... an+1)
= δ(qk, ak+1ak+2... an+1)
= qn+1

1
q0 q1
mulai
1

0 0
0 0

1
q2 q3

Kita ingin memeriksa apakah string 110101 termasuk di dalam L(M)? Dari tabel
diagram transisi terlihat bahwa :
δ(q0, 1) = q1
δ(q1, 1) = q0
jadi,
δ(q0, 11) = δ (δ(q0, 1), 1) = δ(q1, 1) = q0
selanjutnya,
δ(q0, 110) = δ (δ(q0, 11), 0) = δ(q0, 1) = q0

jika kita teruskan, kita menemukan bahwa


δ(q0, 1101) = q3, δ(q0, 11010) = q1
dan akhirnya :
δ(q0, 110101) = q0
seluruh rangkaian status adalah :
1 1 0 1 0 1
q0 q1 q0 q2 q3 q1 q0

Karena transisi berakhir pada status q0 dan q0 ∈ F, maka string 110101 diterima oleh
M.
Jadi, string 110101 adalah di dalam L(M). L(M) adalah himpunan string yang memiliki
simbol 1 atau simbol 0 sejumlah genap. Mesin M disebut juga pemeriksa paritas 0 atau
1 genap.

Anda mungkin juga menyukai