PENDAHULUAN
Teori Bahasa
Teori bahasa membicarakan bahasa formal (formal language),
terutama untuk kepentingan perancangan kompilator (compiler) dan
pemroses naskah (text processor). Bahasa formal adalah kumpulan
kalimat. Semua kalimat dalam sebuah bahasa dibangkitkan oleh
sebuah tata bahasa (grammar) yang sama. Sebuah bahasa formal
bisa dibangkitkan oleh dua atau lebih tata bahasa berbeda.
Dikatakan bahasa formal karena grammar diciptakan mendahului
pembangkitan
setiap
kalimatnya.
Bahasa
manusia
bersifat
sebaliknya; grammar diciptakan untuk meresmikan kata-kata yang
hidup di masyarakat. Dalam pembicaraan selanjutnya ‘bahasa
formal’ akan disebut ‘bahasa’ saja.
Automata
Automata adalah mesin abstrak yang dapat mengenali (recognize),
menerima
(accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa
tertentu.
Untuk memodelkan hardware dari komputer diperkenalkan otomata.
Otomata adalah fungsi-fungsi dari komputer digital. Menerima input,
Otomata adalah fungsi-fungsi dari komputer digital. Menerima input,
menghasilkan output, bisa memiliki penyimpanan sementara dan mampu
membuat keputusan dalam mentransformasikan input ke output. Sebuah
bahasa formal adalah suatu abstraksi terdiri dari himpunan simbol-simbol
dan aturan-aturan yang mana simbol-simbol tersebut bisa dikombinasikan
ke dalam entitas yang disebut kalimat. Meskipun bahasa formal yang
dipelajari di sini lebih sederhana daripada bahasa pemrograman, mereka
mempunyai banyak hal yan g penting. Kita bisa mempelajari banyak
tentang bahasa pemrograman dari bahasa formal.
Otomata merupakan suatu sistem yang terdiri atas
sejumlah berhingga state, dimana state menyatakan
informasi mengenai input yang lalu dan dapat dianggap
sebagai
memori
mesin.
Input
pada
mesin
otomata
dianggap sebagai bahasa yang harus dikenali oleh mesin.
Selanjutnya, mesin otomata membuat keputusan yang
Selanjutnya, mesin otomata membuat keputusan yang
mengindikasikan apakah input itu diterima atau tidak.
Beberapa Pengertian Dasar
• Simbol adalah sebuah entitas abstrak (seperti halnya pengertian titik dalam geometri). Sebuah huruf atau sebuah angka adalah contoh simbol.
• String adalah deretan terbatas (finite) simbol-simbol. Sebagai contoh, jika a, b, dan c adalah tiga buah simbol maka abcb adalah sebuah string yang dibangun dari ketiga simbol tersebut.
• Jika w adalah sebuah string maka panjang string dinyatakan sebagai | w | dan • Jika w adalah sebuah string maka panjang string dinyatakan sebagai | w | dan
didefinisikan sebagai cacahan (banyaknya) simbol yang menyusun string tersebut. Sebagai contoh, jika w = abcb maka | w | = 4.
• String hampa adalah sebuah string dengan nol buah simbol. String hampa dinyatakan dengan simbol ε (atau ^) sehingga |ε |= 0. String hampa dapat dipandang sebagai simbol hampa karena keduanya tersusun dari nol buah simbol.
Operasi Dasar String
Diberikan dua string : x = abc, dan y = 123
• Prefik string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol paling belakang dari string w tersebut.
Contoh : abc, ab, a, dan ε adalah semua Prefix(x)
• ProperPrefix string w adalah string yang dihasilkan dari string w dengan • ProperPrefix string w adalah string yang dihasilkan dari string w dengan
menghilangkan satu atau lebih simbol-simbol paling belakang dari string w tersebut.
Contoh : ab, a, dan ε adalah semua ProperPrefix(x)
• Postfix (atau Sufix) string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol paling depan dari string w tersebut. Contoh : abc, bc, c, dan ε adalah semua Postfix(x)
• ProperPostfix (atau PoperSufix) string w adalah string yang dihasilkan dari
string w dengan menghilangkan satu atau lebih simbol-simbol paling depan dari string w tersebut.
Contoh : bc, c, dan ε adalah semua ProperPostfix(x)
• Head string w adalah simbol paling depan dari string w. Contoh : a adalah Head(x)
• Tail string w adalah string yang dihasilkan dari string w dengan menghilangkan simbol paling depan dari string w tersebut. Contoh : bc adalah Tail(x)
simbol paling depan dari string w tersebut. Contoh : bc adalah Tail(x) • Substring string w adalah string yang dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol paling depan dan/atau simbol-simbol paling belakang dari string w tersebut.
Contoh : abc, ab, bc, a, b, c, dan ε adalah semua Substring(x)
• ProperSubstring string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol paling depan dan/atau simbol-simbol paling belakang dari string w tersebut.
• Subsequence string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol dari string w tersebut.
Contoh : abc, ab, bc, ac, a, b, c, dan ε adalah semua Subsequence(x)
• ProperSubsequence string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol dari string w tersebut.
Contoh : ab, bc, ac, a, b, c, dan ε adalah semua Subsequence(x)
• Concatenation adalah penyambungan dua buah string. Operator concatenation adalah concate atau tanpa lambang apapun.
adalah concate atau tanpa lambang apapun. Contoh : concate(xy) = xy = abc123
• Alternation adalah pilihan satu di antara dua buah string. Operator alternation adalah alternate atau |.
Contoh : alternate(x|y) = x | y = abc atau 123
• Kleene Closure : x* = ε | x | xx xxx |… = ε | x | x 2 | x 3 |… • Positive Closure : x + = x | xx | xxx |… = x |x 2 | x 3 |…
Konsep Dasar
1. Dalam pembicaraan grammar, anggota alfabet dinamakan simbol terminal atau token.
2. Kalimat adalah deretan hingga simbol-simbol terminal.
3. Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa tak hingga kalimat.
4. Simbol-simbol berikut adalah simbol terminal (VT) : • huruf kecil alfabet, misalnya : a, b, c
• simbol operator, misalnya : +, −, dan × • simbol operator, misalnya : +, −, dan × • simbol tanda baca, misalnya : (, ), dan ;
• string yang tercetak tebal, misalnya : if, then, dan else. 5. Simbol-simbol berikut adalah simbol non terminal (VN) :
• huruf besar alfabet, misalnya : A, B, C • huruf S sebagai simbol awal
• string yang tercetak miring, misalnya : expr dan stmt.
6. Huruf besar akhir alfabet melambangkan simbol terminal atau non terminal, misalnya : X, Y, Z.
7. Huruf kecil akhir alfabet melambangkan string yang tersusun atas simbol-simbol terminal, misalnya : x, y, z.
8. Huruf yunani melambangkan string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya, misalnya : α, β, dan γ. 9. Sebuah produksi dilambangkan sebagai α → β, artinya : dalam sebuah derivasi
dapat dilakukan penggantian simbol α dengan simbol β.
10. Simbol α dalam produksi berbentuk α → β disebut ruas kiri produksi sedangkan simbol β disebut ruas kanan produksi.
11. Derivasi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuah derivasi dilambangkan sebagai : α ⇒ β.
12. Sentensial adalah string yang tersusun atas simbol-simbol terminal atau
⇒
12. Sentensial adalah string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya.
13. Kalimat adalah string yang tersusun atas simbol-simbol terminal. Jelaslah bahwa kalimat adalah kasus khusus dari sentensial.
14. Pengertian terminal berasal dari kata terminate (berakhir), maksudnya derivasi berakhir jika sentensial yang dihasilkan adalah sebuah kalimat (yang tersusun atas simbol-simbol terminal itu).
15. Pengertian non terminal berasal dari kata not terminate (belum/tidak berakhir), maksudnya derivasi belum/tidak berakhir jika sentensial yang dihasilkan
Grammar dan Klasifikasi Chomsky
Grammar G didefinisikan sebagai pasangan 4 tuple : V T ,
V N , S, dan Q, dan
dituliskan sebagai G(V T , V N , S, Q), dimana :
V
T: himpunan simbol-simbol terminal (atau
himpunan token -token, atau
himpunan token -token, atau
alfabet)
V
N: himpunan simbol-simbol non terminal
S
∈
V
N: simbol awal (atau simbol start)
Berdasarkan komposisi bentuk ruas kiri dan ruas kanan
produksinya (
α
→
β
), Noam
Chomsky mengklasifikasikan 4 tipe grammar :
1. Grammar tipe ke-0 : Unrestricted Grammar (UG)
Ciri :
α
,
β
∈
(V
T| V
N)*, |
α
| > 0
2. Grammar tipe ke-1 : Context Sensitive Grammar (CSG)
Ciri :
α
,
β
∈
(V
T| V
N)*, 0 < |
α
|
≤
|
β
|
3. Grammar tipe ke-2 : Context Free Grammar (CFG)
∈
∈
∈
3. Grammar tipe ke-2 : Context Free Grammar (CFG)
Ciri :
α
∈
V
N,
β
∈
(V
T| V
N)*
4. Grammar tipe ke-3 : Regular Grammar (RG)
Ciri :
α
∈
V
N,
β
∈
{V
T, V
TV
N} atau
α
∈
V
N,
β
∈
{V
T, V
NV
T}
Mengingat ketentuan simbol-simbol (hal. 3 no. 4 dan 5),
ciri-ciri RG sering dituliskan sebagai :
α
∈
V
N,
β
∈
{a, bC}
atau
α
∈
V
N,
β
∈
{a, Bc}
Contoh Analisa Penentuan Type Grammar
1. Grammar G1 dengan Q1 = {S → aB, B → bB, B → b}. Ruas kiri semua
produksinya terdiri dari sebuah V N maka G1 kemungkinan tipe CFG atau RG. Selanjutnya karena semua ruas kanannya terdiri dari sebuah V T atau string V T VN maka G1 adalah RG.
2. Grammar G 2 dengan Q 2 = {S → Ba, B → Bb, B → b}. Ruas kiri semua
produksinya terdiri dari sebuah VN maka G 2 kemungkinan tipe CFG atau RG. Selanjutnya karena semua ruas kanannya terdiri dari sebuah V T atau string
V V maka G 2 adalah RG.
VN V T maka G 2 adalah RG.
3. Grammar G3 dengan Q 3 = {S → Ba, B → bB, B → b}. Ruas kiri semua
produksinya terdiri dari sebuah VN maka G 3 kemungkinan tipe CFG atau RG. Selanjutnya karena ruas kanannya mengandung string V T VN (yaitu bB) dan juga string VNV T (Ba) maka G 3 bukan RG, dengan kata lain G 3 adalah CFG.
4. Grammar G 4 dengan Q 4 = {S → aAb, B → aB}. Ruas kiri semua produksinya terdiri dari sebuah VN maka G 4 kemungkinan tipe CFG atau RG. Selanjutnya karena ruas kanannya mengandung string yang panjangnya lebih dari 2 (yaitu aAb) maka G 4 bukan RG, dengan kata lain G 4 adalah CFG.
5. Grammar G5 dengan Q 5 = {S → aA, S → aB, aAb → aBCb}. Ruas kirinya mengandung string yang panjangnya lebih dari 1 (yaitu aAb) maka G5
kemungkinan tipe CSG atau UG. Selanjutnya karena semua ruas kirinya lebih pendek atau sama dengan ruas kananya maka G 5 adalah CSG.
6. Grammar G 6 dengan Q 6 = {aS → ab, SAc → bc}. Ruas kirinya mengandung string yang panjangnya lebih dari 1 maka G 6 kemungkinan tipe CSG atau UG. Selanjutnya karena terdapat ruas kirinya yang lebih panjang daripada ruas
kananya (yaitu SAc) maka G 6 adalah UG. kananya (yaitu SAc) maka G 6 adalah UG.
Tipe 0 ⇒ Mesin Automata ⇒ Mesin Turing
Tipe 1 ⇒ Mesin Automata ⇒ Linier bounded
Tipe 2 ⇒ Mesin Automata ⇒ Push Down ( NFA [Non Deterministic Finite Automata] }
Tipe 3 ⇒ DFA, NFA ( DFA [Deterministic Finite Automata] ) Alternate → | x | y = y | x | → pilihan x atau y | → pilihan x atau y Cleen closure ( * ) x* = ε x | xx | xxx |…..
Positive closure ( + ) → tanpa hampa x + = x | xx | xxx |……..
( x * )* = x *
( x | y )* = ε | x|y | xx | yy | xy | yx | xxy | yyx |…
Tipe 3 ? BENAR ATAU SALAH jawaban dibawah ini a. B → bdB VN → VTVTVN ( Ya ) b. B → bcdef VN → VTVTVTVTVT ( Tidak ) c. A → ass VN → VTVNVN ( Tidak ) d. Ad → dB VNVT → VTVN ( Tidak ) Tipe 2 ? e. B → bcdefG VN → VTVTVTVTVTVN ( Ya ) f. A → Ace VN → VNVTVT ( Ya ) g. A → ab VN → VTVT ( Ya ) h. A → aSa VN → VTVNVT ( Ya )
Tipe 1 i. Ad → b VTVT → VT ( Tidak ) j. AB → cde VNVN→ VTVTVT ( Ya ) k. Ad → dB VNVT→VTVN ( Ya ) l. adC → DE VTVTVN → VNVN ( Tidak ) Tipe 0 Tipe 0 m. AB → cde VNVN → VTVTVT ( Tidak ) n. adC → DE VTVTVN → VNVN ( Ya ) o. ad → b VTVT → VN ( Ya )
PERTEMUAN 2
PERTEMUAN 2
FINITE STATE AUTOMATA ( FSA )
FSA merupakan mesin automata dari bahasa Regular. FSA memiliki state yang banyaknya berhingga dan dapat berpindah – pindah dari satu state ke state yang lain. Perpindahan state dinyatakan dengan transisi. FSA dapat menerima input & menghasilkan output.
Contoh : mesin automata untuk pencek pariti ganjil
O 1 O
1 o
• Lingkaran menyatakan state/ kedudukan
• Lingkaran ganda menyatakan state akhir ( final state ) • Label pada lingkaran adalah nama state tersebut
Busur menyatakan transisi / perpindahan state
Label pada busur adalah simbol input
Lingkaran didahului oleh sebuah busur tanpa label menyatakan state awal
Simbol input { 0.1}
State awal Even
State akhir Odd
Bila mesin mendapat Input : l l 0 l, apakah diterima oleh mesin? Input akan diterima bila berakhir pada hait atau final state . Untuk state yang
dilakukan
Even l Odd l Even O Even l Odd Even l Odd l Even O Even l Odd
Berakhir pada state Odd, maka Input ll0l diterima oleh mesin
Bila mendapat input l0l, apakah diterima oleh mesin ? Untuk state yang dilakukan
Even l Odd 0 Odd l Even
Secara formal Finite State Automata dinyatakan dengan 5 tuple atau m = { Q, ΣΣΣΣ, δδδδ, S, F }
Definisinya :
Q = Himpunan state atau kedudukan
ΣΣΣΣ = Himpunan simbol input / masukan / abjad / angka
δδδδ = Fungsi transisi
S = State awal / kedudukan awal, S € Q F = Himpunan state akhir, F € Q
DFA ( Deterministic Finite Automata ) DFA ( Deterministic Finite Automata ) FSA
NFA ( Non Deterministic Finite Automata ) • DFA ( Deterministic Finite Automata)
1. Mesin DFA b a a b b a qo q1 q2
Q = {q0, q1, q2}
ΣΣΣΣ = {a, b } S = {q0} F = {q2}
Fungsi Transisi Tabel Transisi
δδδδ ( q0, a ) = qo δ a b δδδδ ( qo, b ) = q1 δδδδ ( q1, a ) = q1 δδδδ ( q1, b ) = q2 δδδδ ( q2, a ) = q1 δδδδ ( q2, b ) = q2 δ a b q0 q0 q1 q1 q1 q2 q2 q1 q2
Jika mesin DFA tersebut mendapat input “abb”, apakah diterima oleh mesin?
δδδδ (q0, abb ) = δδδδ (q0, bb) = δδδδ (q1,b) = q2
Berakhir pada final state maka input diterima oleh mesin “abb” berada di akhir L( m )
Jika mesin mendapat Input string “baba” apakah merupakan L ( m )?
δδδδ (q0, baba ) = δδδδ (q1, aba) = δδδδ (q1, ba) = δδδδ (q2,a) = q1
q1 bukan final state, berakhir pada state q1, maka input untuk string “baba” ditolak / direject oleh mesin & bukan L( m )
2. Mesin DFA a,b a b qo q 1
Q = {q0, q1}
Σ = {a,b} S = {q0} F = {q1}
Fungsi Transisi Tabel Transisi
δ ( q0, a ) = q1 δ a b
δ ( q0, b ) = q1
δ ( q1, a ) = q1
δ ( q1, b ) = q0
JIka mesin DFA tersebut mendapat Input “abbaba”, apakah diterima oleh mesin
δδδδ ( q0, abbaba ) = δδδδ ( q1, bbaba ) = δδδδ ( q0,baba ) = δδδδ ( q1, aba ) = δδδδ ( q1, ba ) = δδδδ ( q0, a ) = q1
Berakhir pada final state maka input diterima oleh mesin “ abbaba “ berada diakhir L ( m )
δ a b q0 q1 q1 q1 q1 q0
* NFA (Non Deterministic Finite Automata) 1. Mesin NFA a a b Fungsi Transisi Q = { q0, q1 } δ { q0, a } = q1 Σ = { a, b } δ { q0, b } = φ qo q1 δ a b q0 q1 φ Σ = { a, b } δ { q0, b } = φ S = { q0 } δ { q1, a } = q1 F = { q1 } δ { q1, b } = q0
Himpunan φφφφ merupakan NFA
Jika mendapat input “ aaabbbaaa “
δδδδ ( q0, aaabbbaaa ) = δδδδ ( q1, aabbbaaa ) = δδδδ ( q1, abbbaaa )
= δδδδ ( q1, bbbaaa ) = δδδδ ( q0, bbaaa ) = δδδδ ( φφφφ ) “ ditolak / direject oleh mesin & bukan L ( m ) “
2. Mesin NFA b a a b a b
a qo q2 q1 a Q = { q0, q1, q2 } ΣΣΣΣ = { a, b } S = { q0 } F = { q1 }Tabel Transisi
q0 mendapat input a dengan 2 transisi state { q1, q2 }
NFA ⇒⇒⇒⇒ Jika state satu mempunyai 2 transisi dengan input yang sama
δ a b
q0 {q1, q2 } q0
q1 q1 q0
q2 q2 q1
Jika mendapat input “bababaaa”, apakah diterima oleh mesin ?
δδδδ ( q0, bababaaa ) = δδδδ ( q0, ababaaa ) = δδδδ ( {q1, q2}, babaaa ) * Jika diambil q1……….
δδδδ ( q0, abaaa ) = δδδδ ( {q1, q2}, baaa ) = δδδδ ( q1, aaa ) = δδδδ ( q1, aa ) = δδδδ (q1, a ) = q1
REDUKSI JUMLAH STATE PADA
REDUKSI JUMLAH STATE PADA
REDUKSI JUMLAH STATE PADA FINITE STATE AUTOMATA
TAHAPAN REDUKSI :
1. Hapus semua state yang tidak dapat dicapai dari state awal.
2. Buatlah semua pasangan state ( p, q ) yang distinguishable, dimana P € F dan q € f. Catatlah pasangan state – state tersebut.
3. Untuk semua state lakukan pencarian state yang distinguishable
dengan aturan untuk semua ( p, q )dan a € ΣΣΣΣ, hitunglah δδδδ ( p, a ) = pa dan dengan aturan untuk semua ( p, q )dan a € ΣΣΣΣ, hitunglah δδδδ ( p, a ) = pa dan
δδδδ ( q, a) = qa. Jika pasangan ( pa, qa ) telah tercatat sehingga
distinguishable maka pasangan ( p, q ) juga dimasukkan sebagai distinguishable.
4. Dari hasil No. (3), distinguishable dapat pasangan state – state
distringuishable. Pasangan – pasangan state lain yang tidak termasuk ke dalam state distinguishable tersebut, sisanya dapat ditentukan
sebagai state yg indistinguishable.
5. Beberapa state yang saling indistinguishable dapat digabungkan ke dalam satu state.
distringuishable ⇒⇒⇒⇒ dapat dibedakan
indistringuishable ⇒⇒⇒⇒ tidak dapat dibedakan
2 buah state p dan q dari DFA dikatakan indistrnguishable Jika →→ δδδδ→→ ( q, w ) € F sedang δδδδ ( p, w ) € F → → → → δδδδ ( q, w ) € F sedang δδδδ ( p, w ) € F untuk semua w € ΣΣΣΣ
State p dan q dikatakan distinguishable jika ada string w € ΣΣΣΣ
δδδδ ( q, w ) € F sedang δδδδ ( p, w ) € F δδδδ ( q, w ) € F sedang δδδδ ( p, w ) € F contoh : o 1 o o 0.1 1 o 1 o 1
Lakukan reduksi jumlah state terhadap mesin tersebut
q3 q2 q1 qo
Tahap – tahap yang dilakukan untuk reduksi jumlah state adalah
1. Tidak ada state yang tak dicapai dari state awal 2. Catat state – state yang distinguishable
sbb : pasangan ( q0, q4 ), ( q1, q4 ) ( q2, q4 ) dan ( q3, q4 )
dicatat dari →→→→ q0, q1, q2, q3 bukan elemen final state , sedangkan q4 € F dicatat dari →→→→ q0, q1, q2, q3 bukan elemen final state , sedangkan q4 € F 3. Tentukan pasangan state lain :
→ → →
→ pasangan ( q0, q1 ) : δδδδ ( q0, 1) = q3 dan δδδδ ( q1, 1) = q4 sedangkan ( q3, q4 ) distinguishable, maka ( q0, q1 ) juga distinguishable
→ → →
→ pasangan ( q0, q2 ) : δδδδ ( q0, 1) = q3 dan δδδδ ( q2, 1) = q4 sedangkan ( q3, q4 ) distinguishable, maka ( q0, q2 ) juga distinguishable
→ → →
→ pasangan ( q0, q3 ) : δδδδ ( q0, 1) = q3 dan δδδδ ( q3, 1) = q4 sedangkan ( q3, q4 ) distinguishable, maka ( q0, q3 ) juga distinguishable
4. Periksa semua pasangan state :
State – state distinguishable : ( q0, q4 ), ( q1, q4 ), ( q2, q4 ), ( q3, q4 ),
( q0, q1 ), ( q0, q2 ), ( q0, q3 ) State – state indistinguishable : ( q1, q2 ), ( q1, q3 ), ( q2, q3 )
5. q1 indistinguishable q2, q2 indistinguishable dengan q3, maka q1, q2, q3 saling indistinguishable dan dapat dijelaskan dalam satu state
6. Gambar setelah reduksi jumlah state
0, 1
0 1 0,1Latihan Soal
1. Lakukan Reduksi jumlah state terhadap mesin berikut :
0,1 o 1 1 0 0 1 1 q2 q4 q5 qo q1 q3 0 0,1Tahap – tahap yang dilakukan untuk reduksi jumlah state adalah sbb : 1. Ada state yang tak dicapai dari state awal yaitu q5…(dihapus)
2. Distinguishable :…..( q0, q3 ), ( q2, q4 ), ( q1, q4 ) ( q2, q3 ), ( q0, q4 ), ( q1, q3 ) q0, q1, q2, € F
3. State – state distinguishable yang lain : ( q0, q1 ) →→→→ δδδδ ( q0, 1 ) = q3 δδδδ ( q1, 1 ) = q4 ( q3, q4 ) ( q0, q2 ) →→→→ δδδδ ( q0, 1 ) = q3 δδδδ ( q2, 1 ) = q4 ( q3, q4 ) 4. Distinguishable : ( q0, q3 ), ( q2, q4 ), ( q1, q4 ), ( q2, q3 ) ( q0, q4 ), ( q1, q3 ), ( q0, q1 ), ( q0, q2 ) Indistinguishable : ( q1, q2 ), ( q3, q4 )
5. q1 dan q2 saling indistinguishable q2 dan q3 saling indistinguishable
6.
0 0.1
0 1 1 1
2.
0 0 0 1 1 1 0,1 0,1 1 0 qo q1 q2 q5 q3 q6 q4 0,1Tahap – tahap yang dilakukan untuk reduksi jumlah state adalah sbb : 1. Tidak ada state yang tak dicapai dari state awal
2. Distinguishable:( q0, q1 ), ( q0, q3 ), ( q2, q4 ), ( q2, q6 ), ( q5, q4 ), ( q5, q6 ) q0, q4, q6 € F
q1, q2, q3, q5 € F
3. State – state distinguishable yang lain : ( q0, q2 ) →→→→ δδδδ ( q0, 1 ) = q2 ( q2, q4 ) δδδδ ( q2, 1 ) = q4 ( q0, q4 ) →→→→ δδδδ ( q0, 1 ) = q2 ( q2, q4 ) δδδδ ( q4, 1 ) = q4 ( q0, q5 ) →→→→ δδδδ ( q0, 1 ) = q2 ( q2, q4 ) δδδδ ( q5, 1 ) = q4 ( q0, q6 ) →→→→ δδδδ ( q0, 1 ) = q2 ( q2, q6 ) δδδδ ( q6, 1 ) = q6 δδδδ ( q6, 1 ) = q6 ( q1, q4 ) →→→→ δδδδ ( q1, 1 ) = q5 ( q5, q4 ) δδδδ ( q4, 1 ) = q4 ( q1, q6 ) →→→→ δδδδ ( q1, 1 ) = q5 ( q5, q6 ) δδδδ ( q6, 1 ) = q6 ( q3, q4 ) →→→→ δδδδ ( q3, 1 ) = q5 ( q5, q4 ) δδδδ ( q4, 1 ) = q4 ( q3, q6 ) →→→→ δδδδ ( q3, 1 ) = q5 ( q5, q6 ) δδδδ ( q6, 1 ) = q6
4. Distinguishable : ( q0, q1 ), ( q0, q2 ), ( q0, q3 ), ( q0, q4 ), ( q0, q5 ), ( q0, q6 ), ( q1, q4 ), ( q1, q6 ), ( q2, q4 ), ( q2, q6 ), ( q3, q4 ), ( q3, q6 ), ( q5, q4 ), ( q5, q6 ) Indistinguishable : ( q1, q2 ), ( q1, q3 ), ( q1, q5 ), ( q2, q3 ), ( q2, q5 ), ( q3, q5 ), ( q4, q6 ) 5. q1, q2, q3, q5 saling indistinguishable q4, q6 saling indistinguishable 6. 0.1 0.1 0.1 0.1 qo q4 6 q123 5
Tugas
1. Gambarkan diagram transisi dari Deterministic Finite Automata berikut Q = { q0, q1, q2 }
∑ = { a,b } S = q0 F = {q0 }
Fungsi transisi dari DFA tersebut Fungsi transisi dari DFA tersebut
δ a b
q0 q1 q2
q1 q2 q0
2. Bila L(M) adalah bahasa yang diterima oleh Deterministic Finite Automata pada gambar di bawah, tentukan string berikut termasuk dalam L(M )
qo q1q1 b a, b a a. aaa a. aaa b. bbbb c. abba
PERTEMUAN 3
PERTEMUAN 3
Tahapan Pengubahan Non-Deterministic Finite
Automata ke Deterministic Finite Automata
Dari sebuah mesin Non-Deterministic Finite Automata dapat dibuat mesin DFA yang ekivalen. Ekivalen artinya mampu menerima bahasa yang sama .
* Suatu DFA dapat dipandang sebagai kasus khusus (subset) dari NFA.
• Jelas bahwa kelas bahasa yang diterima oleh DFA juga akan diterima oleh DFA
DFA
• Namun ternyata DFA juga dapat mensimulasikan NFA; yaitu untuk setiap NFA kita dapat membuat DFA yang ekivalen
• Dapat dibuktikan bahwa DFA dan NFA adalah ekivalen, sehingga dapat disebut FA saja
Simulasi NFA oleh DFA
• Cara simulasi NFA oleh DFA adalah dengan membuat state DFA berkorespondensi dengan set state di NFA
• DFA yang dibentuk mencatat semua state yang mungkin pada NFA setelah membaca input tertentu
EKIVALENSI NFA ke DFA
Contoh : Mesin NFA 0 1 0.1 1 Konfigurasi mesin q0 q1Telusuri setiap state yang ada dimulai dari { q0 } : State { q0 } bila memperoleh input o menjadi state { q0, q1 } Konfigurasi mesin Tabel Transisi Q = ( { q0 }, { q1} ) Σ = { 0, 1 } S = q0 F = q1 δ 0 1 q0 { q0, q1 } q1 q1 φ { q0, q1 } q1 } State { q0 } bila memperoleh input 1 menjadi state { q1
}
1
0
State { q1 }
- State { q1 } bila memperoleh input o menjadi state φ
- State { q1 } bila memperoleh input 1 menjadi state { q0, q1 }
State { q0, q1 } bila memperoleh input o menjadi state { q0, q1 }
{qo, q1} { q1 }
qo
State { q0, q1 } bila memperoleh input o menjadi state { q0, q1 } diperoleh dari δ ( q0, 0 ) = { q0, q1 } δ ({ q0, q1}, 0) = { q0, q1 }
δ ( q1, 0 ) = φ
State { q0, q1 } bila memperoleh input 1 menjadi { q0, q1 } diporoleh dari δ ( q0, 1 ) = { q1 } digabung
δ ( q1, 1 ) = { q0, q1 }
Hasil setelah penelusuran { q1 }, { q0 }, { q0, q1 } 1 0 1 0,1 δ ( φ, 0 ) = φ 0 δ ( φ, 1 ) = φ F = ({ q1 }, { q0, q1 }) qo q1 { q0, q1} φ 0.1
Hasilnya adalah mesin DFA
Tabel Transisi Konfigurasi Mesin
Q = ( qo, { q0, q1 }, q1, φ ) ε = { 1,0 } S = q0 F = ( q1, { q0, q1 } ) δ 0 1 q0 { q0, q1 } q1 q1 φ { q0, q1 } { q0, q1 } { q0, q1 } { q0, q1 } φ φ φ
Tugas
1. Buatlah DFA yang ekuivalen dengan NFA berikut Q = { p, q, r, s}
∑ = { 0, 1} S = p
F = {s}
Fungsi transisinya dinyatakan dalam tabel transisi berikut
δδδδ 0 1
p p, q p
q r r
r s
2. Buatlah DFA yang ekuivalen dengan NFA berikut Q = { p, q, r, s}
∑ = { 0, 1} S = p
F = {q, s}
Fungsi transisinya dinyatakan dalam tabel transisi berikut
δδδδ 0 1 p p, s p p p, s p q r q, r r s p s - p
PERTEMUAN 4
NFA
εεεε
– MOVE
NFA εεεε – MOVE adalah mesin NFA yang diperbolehkan mengubah state tanpa membaca input. Disebut dengan transisi εεεε karena tidak bergantung pada suatu input ketika melakukan transisi.
Contoh NFA εεεε - MOVE
- q0 tanpa membaca input dapat berpindah ke q1 - q1 tanpa membaca input dapat berpindah ke q2 - q4 tanpa membaca input dapat berpindah ke q1
εεεε - closure adalah himpunan state – state yang dapat dicapai dari suatu state tanpa membaca input
εεεε - closure ( q0 ) = { q0, q1, q2 }
εεεε - closure ( q1 ) = { q1, q2 }
εεεε - closure ( q2 ) = { q2 }
εεεε - closure ( q3 ) = { q3 }
εεεε - closure { q4 ) = { q1, q2, q4 }
Pada suatu state yang tidak memiliki transisi εεεε maka εεεε - closureny adalah state itu sendiri.
EKIVALENSI NFA εεεε - MOVE KE NFA tanpa εεεε - MOVE
Tahapan – tahapan / langkah ekivalensi NFA dengan εεεε - move ke NFA tanpa εεεε - Move :
1. Buat tabel Transisi NFA εεεε - Move
2. Tentukan εεεε - Closure untuk setiap state 2. Tentukan εεεε - Closure untuk setiap state
3. Carilah setiap fungsi hasil perubahan dari NFA εεεε - Move ke NFA tanpa
εεεε - Move dengan rumus : δδδδ’ ( state, input ) = εεεε - closure ( δδδδ (εεεε - closure (state), input ))
4. Berdasarkan hasil no. 3 buat tabel transisi & diagram transisi NFA tanpa εεεε - Move yang ekivalensi dengan NFA εεεε - Move εεεε
5. Tentukan state akhir untuk NFA tanpa εεεε - Move tersebut, yaitu state – state akhir semua & tambah dengan state – state yang ΣΣΣΣ - closurenya menuju ke salah satu dari state akhir semula.
Contoh mesin NFA εεεε - Move
⇒ ⇒⇒
⇒ Buat Ekivalensi NFA
εεεε - Move ke NFA tanpa εεεε - Move
δ a b
q0 φ φ
q1 q2 q3
q2 φ φ
1. Tabel Transisi NFA εεεε - Move
q2 φ φ q3 φ φ 2. εεεε - closure ( q0 ) = { q0, q1 } εεεε - closure ( q1 ) = { q1 } εεεε - closure ( q2 ) = { q2 } εεεε - closure ( q3 ) = { q3 }
δδδδ’ ( state, input ) = εεεε - closure ( δδδδ (εεεε - closure (state), input )) δδδδ’ ( q0, a ) = εεεε - closure ( δδδδ (εεεε - closure (q0), a )) = εεεε - closure ( δδδδ ( { q0, q1 }, a )) = εεεε - closure ( q2 ) = { q2 } δδδδ’ ( q0, b ) = εεεε - closure ( δδδδ (εεεε - closure (q0), b )) = εεεε - closure ( δδδδ ( { q0, q1 }, b )) = εεεε - closure ( q3 ) 3. = εεεε - closure ( q3 ) = { q3 } δδδδ’ ( q1, a ) = εεεε - closure ( δδδδ (εεεε - closure (q1), a )) = εεεε - closure ( δδδδ ( { q1 }, a )) = εεεε - closure ( q2 ) = { q2 } δδδδ’ ( q1, b ) = εεεε - closure ( δδδδ (εεεε - closure (q1), b )) = εεεε - closure ( δδδδ ( { q1 }, b )) = εεεε - closure ( q3 ) = { q3 }
δδδδ
’ ( q2, a ) =
εεεε
- closure (
δδδδ
(
εεεε
- closure (q2), a ))
=
εεεε
- closure (
δδδδ
( { q2 }, a ))
=
εεεε
- closure (
φφφφ
)
=
φφφφ
δδδδ
’ ( q2, b ) =
εεεε
- closure (
δδδδ
(
εεεε
- closure (q2), b ))
=
εεεε
- closure (
δδδδ
( { q2 }, b ))
=
εεεε
- closure (
φφφφ
)
=
φφφφ
=
φφφφ
δδδδ
’ ( q3, a ) =
εεεε
- closure (
δδδδ
(
εεεε
- closure (q3), a ))
=
εεεε
- closure (
δδδδ
( { q3, a } )
=
εεεε
- closure (
φφφφ
)
=
φφφφ
δδδδ
’ ( q3, b ) =
εεεε
- closure (
δδδδ
(
εεεε
- closure (q3), b ))
=
εεεε
- closure (
δδδδ
( { q3 }, b ))
=
εεεε
- closure (
φφφφ
)
=
φφφφ
NFA tanpa ε - Move 5. q0 q2 q1 a a b δ’ a b q0 q2 q3 q1 q2 q3 q2 φ φ 4. Tabel Transisi q3 b q3 φ φ
Tugas
1. Buatlah NFA tanpa
εεεε
-move yang ekuivalen dengan NFA εεεε-move pada gambar di bawah ini , (∑ = {0,1,2})εεεε εεεε
0 1
2
2. Buatlah NFA tanpa
εεεε
-move yang ekuivalen dengan NFA εεεε-move pada gambar di bawah ini , (∑ = {0,1,2})εεεε 0 q0 q1 εεεε 1
Ekspresi Reguler
5.1. Penerapan Ekspresi Reguler (ER)
•
Sebuah bahasa dinyatakan reguler jika terdapat Finite State
Automata (FSA) yang dapat menerimanya.
•
Bahasa yang diterima oleh suatau FSA dapat dinyatakan
secara sederhana dengan Ekspresi Reguler ER.
•
ER memberikan suatau pola (pattern) atau template untuk
untai (string) dari suatu bahasa.
untai (string) dari suatu bahasa.
•
Banyak masalah pada perancangan perangkat lunak yang
dapat
disederhanakan
dengan
melakukan
pengubahan
notasi ER ke dalam implementasi komputer dari FSA yang
bersangkutan.
5.2. Notasi ER
Tabel 5.1. Notasi ER
Nama
Symbol
Keterangan
asterik
*
Bisa tak muncul, bisa juga muncul
berhingga kali (0 sampai n)
‘plus’
+
Gabungan
‘plus’
atau
‘union’
+
Atau
∪
∪
∪
∪
Gabungan
‘plus’
+Tanda ‘plus’ pada posisi superscript,
berarti minimal muncul satu kali (1-n)
titik
.
Berarti konkatenasi. Biasanya titik bisa
Table 5.2. Contoh ER
Ekspresi ER
String yang dibangkitkan
ab*cc
abcc, abbcc, abbbcc, acc
010*
01, 010, 0100, 01000
a*d
d, ad, aad, aaad
a
+d
ad, aad, aaad
a
+d
ad, aad, aaad
a*
∪
b*
a, b, aa, bb, aaa, bbb,
a
∪
b
a, b
(a
∪
b)*
a, b, aa, ab, bba, aaa, bbb,
01*+0
00, 010, 0110, 01110, 011110
5.3. Hubungan ER dan FSA
•
Untuk setiap ER, ada satu Non-Deterministik Finite
Automata dengan transisi
εεεε
(NFA
εεεε
-move)
•
Sementara untuk Deterministik Finite Automata DFA ada
satu ER dari bahasa yang diterima
•
Sederhananya kita dapat membuat satu NFA
εεεε
-move dari
•
Sederhananya kita dapat membuat satu NFA
εεεε
-move dari
suatu ER
q
0a
q
1εεεε
q
2b
q
3Gambar 5.1. NFA
εεεε
-move untuk ER: ab
q
0q
1q
2a
εεεε
b
q
0εεεε
q
1a
q
2εεεε
q
3b
εεεε
εεεε
q
4b
q
5Tentukan ER untuk setiap mesin FSA pada gambar 5.4 dan
gambar 5.5.
0
1
q
01
q
1q
2Gambar 5.4. Mesin FSA
0
q
0a
q
1b
q
3a
a
Gambar 5.5. Mesin FSA
q
4q
2a
b
Hubungan antara NFA,
εεεε
-move, DFA, dan ER
NFA
DFA
NFA
εεεε
-move
Latihan
Studi Kasus:
1. kita ingin membuat mesin DFA yang
menerima bahasa
berupa semua string yang berakhiran dengan ’00’,
diketahui
Σ
=(0,1).
Tentukan: ER, Mesin NFA, dan Mesin DFA
Tentukan: ER, Mesin NFA, dan Mesin DFA
2. kita ingin membuat mesin DFA yang
menerima bahasa
berupa semua string yang memuat minimal dua nol
berurutan ’00’, diketahui
Σ
=(0,1).
EKSPRESI REGULAR
EKSPRESI REGULAR
EKSPRESI REGULAR Notasi Ekspresi Regular :
* Yaitu karakter asterik ; berarti bisa tidak muncul, bisa juga muncul berhingga kali.
+ ( pada posisi superscript/ diatas ) berarti minimal muncul satu kali
+ atau ∪ berarti union berarti gabungan Contoh Ekspresi Regular
1. ER : ab*cc
Contoh string yang dibangkitkan/ dibentuk : abcc, abbcc, abbbcc, abbbbcc, acc
2. ER : 010*
Contoh string yang dibentuk : 01, 010, 0100, 01000, 010000 3. ER : a*d
4. ER : a+d
Contoh string yang dibentuk : ad, aad, aaad 5. ER : a*∪b* ( ‘∪’ berarti atau )
string yang dibentuk : a, b, aa, bb, aaa, bbb, aaaa, bbbb 6. ER : ( a ∪ b ) berarti atau ‘ ∪ ‘
string yang dibentuk : a, b string yang dibentuk : a, b 7. ER : ( a ∪ b )*
string yang dibentuk : a, b, ab, ba, abb, bba, aaaa, bbbb notasi ∪ kadang ditulis +
8. ER : 01* + 0
Hubungan Ekspresi Regular & FSA 1. a ε b ER ; ab
a ε b 2. qo q1 q2 q3 qo q1 q2 ER ; a*b 3. a ER : a ∪ b b 4. 0 0 1 ER ; 010* qo q2 q1 qo q1 q25. 0 0,1 ER ; 0 ( 1 ∪ 0 )
0,1 6. 0 ER ; 0 ( 1 ∪ 0 ) * 7. 0 1 0 qo q1 q2 qo q1 7. 0 1 0 ER ; 01*0 8. 0 0 1 ER ; 0*10* 9. a ER ; a* qo q1 q2 qo q1 q010. a b ER ; a ( ba )* 11. a qo q1 b ER ; ( ab ) * 12. 1
0 1 1 0 ER ; 01*∪10*11* q1 q0 qo q1 q2Aturan Produksi Untuk Finite
State Automata (FSA)
State Automata (FSA)
6. 1. Aturan Produksi Bahasa Reguler
•
Sebuah otomata berhingga menspesifikasikan sebuah bahasa
sebagai himpunan semua untai yang menggerakkannya dari
state awal ke salah satu state yang diterimanya (himpunan
state akhir)
•
Misalkan untuk sebuah ER: a(a*
∪
b*)b. Selain dengan ER, kita
dapat mengkonstruksi aturan-aturan produksi untuk suatu
tata bahasa reguler.
tata bahasa reguler.
•
Kita ingat juga batasan aturan produksi untuk bahasa reguler:
α→β
(dibaca:
α
menghasilkan
β
)
dimana
α
adalah sebuah simbol variabel, dan
β
maksimal
memiliki sebuah simbol variabel yang terletak di paling kanan
(bila ada)
•
α
dan
β
dapat berupa simbol terminal atau simbol
non-terminal (variabel)
•
Simbol variabel (non-terminal adalah simbol yang masih bisa
diturunkan, sedangkan simbol terminal sudah tidak bisa
diturunkan lagi.
•
Simbol terminal biasanya dinyatakan dengan huruf kecil,
misal: a, b, c.
•
Simbol non-terminal (variabel) biasanya dinyatakan dengan
huruf besar, misal: A, B, C.
huruf besar, misal: A, B, C.
•
Suatu tata bahasa (grammer) didefinisikan dengan empat
tupel (G={V, T, P, S}), dimana:
v = himpunan simbol variabel
T = himpunan simbol terminal
P = kumpulan aturan produksi
S = simbol awal
q
0q
1q
3a
q
2a
b
εεεε
Gambar 6.1. Mesin FSA
εεεε
q
3b
Dari gambar 6.1., kumpulan aturan produksi yang kita peroleh
dapat dituliskan sbb:
S
→
aE
E
→
A | B
A
→
aA | B
B
→
bB | b
B
→
bB | b
Secara formal, tata bahasa (grammer) yang diperoleh dari
otomata pada gambar 6.1. adalah:
V = {S, E, A, B}
T = {a, b}
P = {S
→
Ae, E
→
A | B, A
→
aA | B, B
→
bB | b}
S = S
6.2. Mengkonstruksi Aturan Produksi
dari Suatu FSA
•
Dalam mengkonstruksi aturan produksi tata bahasa reguler
dari suatu FSA, yang menjadi perhatian kita adalah state-state
yang dapat menuju ke state akhir.
•
Mesin FSA pada gambar 6.1, memiliki simbol input a dan b.
simbol tersebut akan menjadi terminal pada aturan produksi
yang akan kita bentuk.
yang akan kita bentuk.
•
Misalkan kita tentukan simbol awal adalah S, state awal q
0,
dari q
0mendapat input a menjadi q
1.Aturan produksi yang
dapat ditulis adalah: S
→
aE
•
E dapat kita identikkan denga q
1, lebih tepatnya adalah bagian
yang belum terbangkitkan mulai dari q
1.
•
Kita dapat menambahkan simbol variabel baru setiap kali kita
perlukan.
•
Dari q
1mendapat tramsisi-e (tanpa menerima input) ke q
2dan
q
3, kita tuliskan:
E
→
A
E
→
B
E
→
B
•
Jika kita identikkan q
2sebagai A, dan q
3sebagai B; dari q
2mendapat input a tetap ke q
2; dari q
3mendapat input b tetap
ke q
3; bisa kita tuliskan:
A
→
aA
•
Selanjutnya kita lihat: dari q
2memberikan input b ke q
4; dari
q
3memberikan input b ke q
4; sementara q
4merupakan state
akhir, maka bisa dituliskan:
A
→
b
B
→
b
•
Kumpulan aturan prosuksi yang kita peroleh adalah sbb:
•
Kumpulan aturan prosuksi yang kita peroleh adalah sbb:
S
→
aE
E
→
A
B
A
→
aA
B
B
→
bB
b
•
Secara formal, tata bahasa yang diperoleh dari otomata pada
gambar 6.1 adalah sbb:
V = {S, E, A, B}
T = {a, b}
P = {S
→
aE;
E
→
A
B; A
→
aA
B; B
→
bB
b}
P = {S
→
aE;
E
→
A
B; A
→
aA
B; B
→
bB
b}
S = S
6.3. FSA Untuk Suatu Tata Bahasa Reguler
•
Bila sebelumnya dari suatu diagram transisi FSA kita dapat
membuat aturan-aturan produksinya, sebaliknya kita juga
dapat mengkonstruksi diagram transisi FSA untuk suatu tata
bahasa teguler yang diketahui aturan-aturan produksinya.
•
Misalnya terdapat tata bahasa reguler dengan aturan produksi
•
Misalnya terdapat tata bahasa reguler dengan aturan produksi
sbb:
S
→
aB
bA
ε
A
→
abaS
B
→
babS
FSA dari aturan produksi diatas, seperti yang
ditunjukkan
q
4q
1q
0q
2a
q
3b
b
b
a
a
Gambar 6.2. FSA dari suatu regular grammer
q
4q
5q
6a
a
ATURAN PRODUKSI
ATURAN PRODUKSI
ATURAN PRODUKSI
α β
α menurun β
α menghasilkan β
α atau β bisa berupa simbol variabel terminal atau non terminal. Gramer didefinisikan dengan 4 tipe ( G = { VN, VT, P, S } )
VN : himpunan simbol variabel non terminal VN : himpunan simbol variabel non terminal VT : himpunan simbol variabel terminal P : himpunan aturan produksi
S : simbol awal
Contoh mesin FSA a
ε b a ε b b qo q1 q3 q2 q4
Aturan produksi dari mesin FSA
S aE
S adalah q0 q1 didefinisikan dengan E
E adalah q1 q1 identik dengan E
q0 identik dengan S
dari q1 tanpa mendapat input menuju q2 dan q3
E → A A identik q2
E → A A identik q2
E → B B identik q3
dari q2 mendapat input a tetap ke q2 dari q3 mendapat input b tetap ke q3
A → aA B → bB
dari q2 mendapat input b ke q4 dari q3 mendapat input b ke q4
A → b B → b
Karena q4 adalah final state yang tidak memiliki busur keluar atau keluaran maka q4 tidak didefinisikan atau diabaikan
Kumpulan Aturan Produksi S → aE E → A|B E → A|B A → aA | b B → bB | b ‘ | ‘ berarti atau VN = { S, E, A, B } S = S VT = { a, b } P = { S → aE, E →A | B, A →aA | b, B →bB | b }
Finite State Automata
(FSA)
Dengan Output
Dengan Output
7.1. Mesin Moore
•
Suatu keterbatasan dari FSA yang sudah dipelajari sebelumnya
adalah: keputusannya terbatas pada diterima atau ditolak.
Otomata tsb biasa disebut dengan accepter (dalam hal ini
FSA).
•
Kita dapat mengkonstruksi sebuah FSA yang memiliki
keputusan beberapa keluaran (output), dalam hal ini otomata
keputusan beberapa keluaran (output), dalam hal ini otomata
tersebut dikenal sebagai transducer.
Mesin Moore didefinisikan dalam 6 tupel, yaitu:
M=(Q,
ΣΣΣΣ
,
δδδδ
, S,
∆∆∆∆
,
λλλλ
)
Dimana:
Q
=
himpunan state
Q
=
himpunan state
ΣΣΣΣ
=
himpunan simbol input
δδδδ
=
fungsi transisi
S
=
state awal, dimana S
∈
∈
∈
∈
Q
∆∆∆∆
=
himpunan output
Contoh Mesin Moore
Misalnya kita ingin memperoleh sisa pembagian (modulus) suatu
bilangan dengan 3, dimana input dinyatakan dengan biner.
Konfigurasi mesinnya adalah sbb:
Q = {q
0, q
1, q
2}
ΣΣΣΣ
= {0, 1}
ΣΣΣΣ
= {0, 1}
S = q
0∆∆∆∆
= {0, 1, 2} untuk output pada kasus mod dengan
3, kemungkinan sisa pembagiannya adalah 1,
2 atau 3
q
0q
1q
20
1
0
0
0
1
1
1
2
Gambar 7.1. Mesin Moore untuk MOD 3
0
1
2
Coba buktikan untuk:
• 5 MOD 3.
• 10 MOD 3
7.2. Mesin Mealy
•
Bila output pada mesin Moore berasosiasi dengan state, maka
output pada mesin Mealy akan berasosiasi dengan transisi.
•
Mesin Mealy sendiri didefinisikandalam 6 tupel, yaitu:
M=(Q,
ΣΣΣΣ
,
δδδδ
, S,
∆∆∆∆
,
λλλλ
)
Dimana:
Dimana:
Q
=
himpunan state
ΣΣΣΣ
=
himpunan simbol input
δδδδ
=
fungsi transisi
S
=
state awal, dimana S
∈
∈
∈
∈
Q
∆∆∆∆
=
himpunan output
Contoh Mesin Mealy
Mesin ini akan mengeluarkan output menerima ‘Y’ atau menolak
’T’ suatu masukan biner.
Dengan ketentuan: mesin akan mengeluarkan output ‘Y’ bila
menerima untai yang memiliki dua simbol berurutan yang sama,
atau secara formal dalam ER: (0+1)*(00+11)
Konfigurasi mesinnya adalah sbb:
Konfigurasi mesinnya adalah sbb:
Q = {q
0, q
1, q
2}
ΣΣΣΣ
= {0, 1},0
S = q
0∆∆∆∆
= {Y, T}
λλλλ
(q
0,0)=T;
λλλλ
(q
0,1)=T;
λλλλ
(q
1,0)=Y;
λλλλ
(q
1,1)=T
λλλλ
(q
2,0)=T;
λλλλ
(q
2,1)=Y
q
0q
1q
0/T
0/T
0/Y
1/T
Gambar 7.2. Contoh Mesin Mealy
q
21/T
1/Y
Coba buktikan untuk input yang diterima: 01011; 01100;
1010100; 10110100; 00; 11; 100; 011; 111; 0101; 0010
7.3.
Ekuivalensi
Mesin
Moore
dan
Mesin Mealy
•
Dari suatu mesi Moore, dapat dibuat mesin Mealy yang
ekuivalen, begitu juga sebaliknya.
•
State
pada mesin Moore dibentuk dari kombinasi state pada
•
State
pada mesin Moore dibentuk dari kombinasi state pada
Mealy dan banyaknya output.
•
Untuk mesin Mealy pada gambar 7.2, jumlah state=3; dan jumlah
output
=2; maka jumlah state pada mesin Moore yang ekuivalen
•
Konfigurasi mesIn Moore yang dibentuk adalah:
Q
=
{q
0Y, q
0T, q
1Y, q
1T, q
2Y, q
2T}
ΣΣΣΣ
=
{0, 1}
S
=
q
0S
=
q
0∆∆∆∆
=
{0, 1, 2}
q
0T
T
q
0T
q
0T
T
T
0
0
0
0
0
1
1
1
1
Gambar 7.3. Mesin Moore yang ekuivalen dengan Mesin Mealy
pada gambar 7.2.
Y
q
0T
q
0T
q
0T
Y
Y
0
0
1
1
1
1
•
Untuk memperoleh ekuivalensi mesin Mealy dari suatu mesin
Moore, caranya lebih mudah, cukup dengan menambahkan
label output ke setiap transisi, dan menghapus label output
pada setiap state
•
Konfigurasi mesIn Moore yang dibentuk adalah:
Q
=
{q
0,q
1, q
2}
Q
=
{q
0,q
1, q
2}
ΣΣΣΣ
=
{0, 1}
S
=
q
0∆∆∆∆
=
{0, 1, 2}
λλλλ
(q
0,0)=0;
λλλλ
(q
0,1)=1
λλλλ
(q
1,0)=2;
λλλλ
(q
1,1)=0
λλλλ
(q
2,0)=1;
λλλλ
(q
2,1)=3
q
q
0/0
1/1
0/2
1/2
q
01/1
q
1q
20/1
0/2
1/0
Gambar 7.4. Mesin Mealy yang ekuivalen dengan Mesin
Moore pada gambar 7.1.
FSA
(FINITE STATE AUTOMATA)
FSA
(FINITE STATE AUTOMATA)
(FINITE STATE AUTOMATA)
DENGAN OUTPUT
(FINITE STATE AUTOMATA)
DENGAN OUTPUT
Mesin Moore dengan 6 Tuple M = (Q, ΣΣΣΣ, δδδδ, S, ∆∆∆∆, λλλλ)
Q = Himpunan State
Σ = Himpunan simbol input
δ = Fungsi transisi S = State awal, S ∈∈∈∈ Q
∆ = Himpunan output
λ = Fungsi output untuk setiap state Contoh : konfigurasi mesin
Q = {q0, q1, q2} ΣΣΣΣ = {0, 1) ∆ = {0, 1, 2} S = (q0) λ(q0) = 0 λ(q1) = 1 λ(q2) = 2
q0
5 mod 3 = ?
mod →→→→ hasil dari sisa pembagian bilangan biner 5 = 101 q1 q2 0 1 0 1 1 0 0 2 1
Mesin Moore untuk modulus 3 bilangan biner 5 = 101 urutkan state : δδδδ (q0, 101) = δδδδ(q1, 01) = δδδδ (q2, 1) = q2 Berakhir pada q2 λλλλ (q2)= 2 maka 5 mod 3 = 2
10 mod
Bilangan biner 10 = 1010
Urutkan state :
δδδδ
(q
0, 1010) =
δδδδ
(q
1, 010) =
δδδδ
( q
2, 10) =
δδδδ
( q
2, 0) = q
1Beakhir pada q
1λλλλ
(q
1) = 1
maka 10 mod 3 = 1
λλλλ
(q
1) = 1
maka 10 mod 3 = 1
MESIN MEALY
Dengan 6 tuple
M = (Q,
ΣΣΣΣ
,
δδδδ
, S,
∆∆∆∆
,
λλλλ
)
Contoh Mesin Mealy :
Konfigurasi mesin
Q = {q
0, q
1, q
2}
λλλλ
= (q
0, 0) = T
ΣΣΣΣ
= { 0, 1}
λλλλ
= (q
0, 1) = T
∆∆∆∆
= { Y, T}
λλλλ
= (q
1, 0) = Y
∆∆∆∆
= { Y, T}
λλλλ
= (q
1, 0) = Y
S = {q
0}
λλλλ
= (q
1, 1) = T
λλλλ
= (q
2, 0) = T
λλλλ
= (q
2, 1) = Y
q0 q1 0 / T 0/Y 0/T 1/T 1/T
Jika MEsin Mealy menerima input
“110101”,
apakah
diterima
oleh
mesin tersebut ?
δ
(q
0, 110101) =
δ
(q
2, 10101)
T
=
δ
(q , 0101)
=
δ
(q , 101)
q2 1/T 1/Y=
δ
(q
2, 0101)
=
δ
(q
1, 101)
Y
T
=
δ
(q
2, 01)
=
δ
(q
1, 1) = q
2Y
T
T
Tidak diterima input 110101, ditolak
oleh Mesin Mealy
Contoh soal :
Mesin Moore
q0 q3 q1 q2 q4 0 0 0 0 0 0 3 1 4 1 1 1 2 10 - Buat konfigurasi mesin
tersebut
- Jika mesin menerima input “1101011”, output ? q5 0 1 1 5 δ (q0, 1101011) = δ (q1, 101011) = δ (q3, 01011) 1 3 = δ (q3, 1011) = δ (q4, 011) = δ (q2, 11) = δ (q5, 1) = q5 3 4 2 5 5