Anggota Kelompok :
Automata Hingga Automata Hingga merupakan mesin abstrak yang terdiri dari Head
Pembaca dan Kotak Kontrol Stata Hingga. Mesin ini membaca sebuah pita (tape), satu
persatu karakter, dari kiri ke kanan. Perubahan stata terjadi pada mesin jika suatu karakter
pita dibaca.
PITA
a a a b b b ^ … …
Read Head
Pada saat Automata Hingga mulai membaca Pita, ia harus selalu mulai dengan berada pada
suatu stata, yang ditunjuk sebagai stata awal. Sebuah Automata Hingga Deterministik (AHD)
terdiri atas 5 tupel (K, VT, f, q0, Z).
Dimana :
5. Z adalah subset dari K yang berisi Stata Akhir atau Stata Penerima.
Contoh :
f a b
q0 q0 q1
q1 q0 q2
q2 q2 q2
Automata Hingga Deterministik dapat dinyatakan dalam diagram berupa Graph Berarah.
Pada graph berarah tersebut terdapat sebuah simpul sebagai stata awal q0. Lingkaran
berlapis dua digunakan untuk menyatakan stata penerima.
Bila f(q0, a) = q0, maka terdapat busur dari q0 ke q0 dengan label a. Graph berarah dari
Automata M dikatakan dapat menerima atau mengenal string w jika Stata Akhir merupakan
Stata Penerima. Himpunan semua string yang dapat diterima oleh Automata M dinotasikan
dengan L (M). Maka dari contoh akan menerima dan menolak untai :
abababaa diterima
aaaabab diterima
aaabbaba ditolak
Jawab :
i) δ (q0,abababaa) δ (q0,bababaa) δ (q1,ababaa)
δ (q0,babaa) δ (q1,abaa) δ (q0,baa) δ (q1,aa)
δ (q0,a) q0
Tracing berakhir di q0 (state AKHIR) kalimat abababaa diterima
ii) δ (q0, aaaabab) δ (q0,aaabab) δ (q0,aabab)
δ (q0,abab) δ (q0,bab) δ (q1,ab) δ (q0,b) q1
Tracing berakhir di q1 (state AKHIR) kalimat aaaababa diterima
Kesimpulan : sebuah kalimat diterima oleh DFA di atas jika tracingnya berakhir di salah satu
state AKHIR.
Dari definisi pertama, terlihat bahwa sebuah AHD tidak bisa mengubah stata tanpa
membaca sebuah karakter masukan. Definisi kedua adalah sebuah definisi yang bersifat
rekursif, yang menunjukkan di stata mana AHD berada pada saat di mulai di stata q dengan
mendapat input berupa string w = tT.
AHD pada contoh ini merupakan sebuah AHD yang menerima untai yang terdiri dari simbol
0 dan 1. AHD tersebut dapat dinyatakan sebagai berikut :
F = ( {S, A, B, C}, {0, 1}, M, S, {S} ) dimana fungsi next state M adalah :
M(S, 0) = B M(S, 1) = A
M(A, 0) = C M(A, 1) = S
M(B, 0) = S M(B, 1) = C
M(C, 0) = A M(C, 1) = B
Fungsi stata berikut dari AHD kadang-kadang lebih mudah disajikan dalam bentuk tabel.
Untuk contoh di atas tabel yang terbentuk adalah :
INPUT
0 1
STATA
S B A
A C S
B S C
C A B
Contoh dari string yang diterima AHD di atas adalah 110101 dan contoh string yang tidak
dapat diterima adalah 11101. Bagan operasi AHD pada kedua untai di atas adalah sebagai
berikut :
= M(A, 1) = M(B, ^)
= M(S, ^) = B (ditolak)
= S (diterima)
EQUIVALENSI 2 AHD
Dua buah AHD dikatakan ekuivalen jika keduanya dapat menerima bahasa yang sama.
Misalkan kedua AHD tersebut adalah A dan A’. Misalkan pula bahasa yang diterima adalah
bahasa L yang dibangun oleh alfabet VT = {a1, a2, a3, ..., an}. Berikut ini algoritma untuk
menguji ekuivalensi dua buah AHD.
a. Berikan nama kepada semua stata masing-masing AHD dengan nama berbeda.
Misalkan nama-nama tersebut adalah : S, A1, A2, ..., untuk AHD A, dan : S’, A1’, A2’,
... untuk AHD A’.
b. Buat tabel (n+1) kolom, yaitu kolom-kolom : (v, v’), (va1, va1’,), ..., (va1 , van ’), yaitu
pasangan terurut (stata AHD A, stata AHD A’).
c. Isikan (S, S’) pada baris pertama kolom (v, v’), di mana S dan S’ masing-masing adalah
stata awal masing-masing AHD.
d. Jika terdapat edge dari S ke A1 dengan a1 dan jika terdapat edge dari S’ ke A1’ juga
dengan label a1, isikan pasangan terurut (A1, A1’) sebagai pada baris kolom (v a1,
va1’). Lakukan hal yang sama untuk kolom-kolom berikutnya.
e. Perhatikan nilai-nilai pasangan terurut pada baris pertama. Jika terdapat nilai
pasangan terurut pada kolom (va1, va1’) s/d (van, van’) yang tidak sama dengan nilai
pasangan terurut (v, v’), tempatkan nilai tersebut pada kolom (v, v’) baris-baris
berikutnya. Lakukan hal yang sama seperti yang dilakukan pada langkah (d).
Lanjutkan dengan langkah (5).
f. Jika selama proses di atas dihasilkan sebuah nilai pada kolom (v, v’) dengan
komponen v merupakan stata penerima sedangkan komponen v’ bukan, atau
sebaliknya, maka kedua AHD tersebut tidak ekuivalen. Proses dihentikan.
g. Jika kondisi (f) tidak dipenuhi dan jika tidak ada lagi pasangan terurut baru yang
harus ditempatkan pada kolom (v, v’) maka proses dihentikan dan kedua AHD
tersebut ekuivalen.
(0+1)* : himpunan seluruh string yang dapat dibentuk dari simbol ‘0’ dan ‘1’
(0+1)*00(0+1)* : himpunan string biner yang mengandung paling sedikit satu
substring ‘00’
(0+1)*00 : himpunan string biner yang diakhiri dengan ‘00’
Bahasa Reguler
Apabila r adalah RE, maka L(r) adalah bahasa reguler yang dibentuk menggunakan ekspressi
reguler r.
Contoh :
L(r) = L( (aa)* )
= { λ, aa, aaaa, aaaaaa, ... }
= { a2 n | n ≥ 0 }
menyatakan himpunan string a dengan jumlah genap
Jawab
Jawab
r = (0+1)*00(0+1)*
Tentukan ekspresi reguler pembentuk bahasa pada Σ = {a,b}, yaitu L(r) = { abnw | n≥ 3 , w
∈ {a , b}+ } ,maka hasilnya : r = abbb(a+b)(a+b)*
Tertutup terhadap operasi himpunan sederhana. Jika L1 dan L2 adalah bahasa reguler, maka
L1∪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 dengan
h:Σ→Γ
Jika L adalah bahasa pada Σ maka homomorphic image bahasa L adalah h(L)= { h(w) | w∈
L}
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) = Banc
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)*