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.
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
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
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 = ∅
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
X0 = ax0 + bx1
X1 = ∈
X0 = ax0 + b∈ = ax0 + b
Dan tidak dapat disederhanakan lebih lanjut. Masalah seperti ini diselesaikan dengan Lemma
Arden sebagai berikut :
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.
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+
Jadi, ekspresi reguler yang menyatakan bahasa yang diterima oleh DFA tersebut adalah
a2a+b* + a2b* + ab+.
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
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.