Otomata-03

12
Bab 3 FINITE STATE AUTOMATA 3.1 Penerapan Fini State Automata Salah satu alasan memulai studi teori komputasi melalui bahasa adalah pendekatan ini menuntun cara alami untuk permulaan. Dimulai dari bahasa sederhana, kemudian mempertimbangkan kebutuhan-kebutuhan minimum mesin yang dapat mengolahnya, kemudian meningkat dengan bahasa yang lebih rumit/sulit. Bahasa formal dapat dipandang sebagai entitas abstrak yaitu sekumpulan string-string simbol alpabet tertentu. Dapat juga dipandang bahasa sebagai entitas abstrak yang dapat dikenali atau dibangkitkan melalui suatu mesin komputasi. Istilah mengolah berarti mengenali atau membangkitkan. Bahasa paling sederhana adalah bahasa regular. Mesin yang dapat mengenali bahasa kelas regular adalah Finite State Automata / otomata berhingga state, yang biasa disebut FSA. FSA, bukan mesin fisik tetapi suatu model matematika dari suatu sistem yang menerima input dan output diskrit. Suatu Finite State Automata memiliki state yang banyaknya berhingga, dan dapat berpindah-pindah dari suatu state ke state lain. Perubahan state ini dinyatakan oleh fungsi transisi.

Transcript of Otomata-03

Page 1: Otomata-03

Bab 3FINITE STATE AUTOMATA

3.1 Penerapan Fini State AutomataSalah satu alasan memulai studi teori komputasi melalui bahasa adalah pendekatan ini menuntun cara alami untuk permulaan. Dimulai dari bahasa sederhana, kemudian mempertimbangkan kebutuhan-kebutuhan minimum mesin yang dapat mengolahnya, kemudian meningkat dengan bahasa yang lebih rumit/sulit. Bahasa formal dapat dipandang sebagai entitas abstrak yaitu sekumpulan string-string simbol alpabet tertentu. Dapat juga dipandang bahasa sebagai entitas abstrak yang dapat dikenali atau dibangkitkan melalui suatu mesin komputasi. Istilah mengolah berarti mengenali atau membangkitkan. Bahasa paling sederhana adalah bahasa regular. Mesin yang dapat mengenali bahasa kelas regular adalah Finite State Automata / otomata berhingga state, yang biasa disebut FSA. FSA, bukan mesin fisik tetapi suatu model matematika dari suatu sistem yang menerima input dan output diskrit. Suatu Finite State Automata memiliki state yang banyaknya berhingga, dan dapat berpindah-pindah dari suatu state ke state lain. Perubahan state ini dinyatakan oleh fungsi transisi.

Page 2: Otomata-03

Mekanisme kontrol pada suatu elevator/lift adalah contoh untuk suatu otomata. Mekanisme tersebut tidak “mengingat” semua permintaan sebelumnya tetapi hanya posisi lift saat itu pada suatu lantai, pergerakan ke atas atau ke bawahdan sekumpulan permintaan yang belum terpenuhi. Teori mengenai finite state automata adalah suatu tool yang berguna untuk merancang sistem tersebut. Mekanisme kerja suatu finite state automata dapat diaplikasikan pada analisis leksikal (mengindentifikasi unit), text editor, protocol komunikasi jaringan dan pencek pariti. Contoh penerapan suatu finite state automata adalah pada pencek pariti ganjil (odd parity) pengirim akan menambahkan bit paritas sehingga jumlah bit 1 adalah ganjil. Misalnya terdapat data:

0110maka pengirim akan menambahkan bit 1, sehingga penerima akan memperoleh

01101bila data: 0111, maka pengirim akan menambahkan bit 0, sehingga penerima akan memperoleh 01110.

Page 3: Otomata-03

Pada finite state automata, maksud dari bentuk-bentuk tersebut adalah:• Lingkaran menyatakan state/kedudukan• Label pada lingkaran adalah nama state.• Busur menyatakan transisi yaitu perpindahan state/kedudukan• Label pada busur adalah simbol input• Lingkarang didahului sebuah busur tanpa label menyatakan

state awal• Lingkaran ganda menyatakan state akhir/final

Kita bisa membuat sebuah otomata yang akan memeriksa apakah suatu barisan input memiliki bit 1 dalam jumlah ganjil atau genap. Mesin ini mempunyai dua state, yang disebut state EVEN (genap) dan state ODD (ganjil).

EVEN ODD

0 0

1

1

Page 4: Otomata-03

Gambar tersebut sering disebut sebagai grap transisi, diagram transisi atau diagram keadaan (state). Pada gambar tersebut terlihat bahwa state awal adalah EVEN, karena mesin ini merupakan pencek pariti ganjil, maka himpunan state akhir yang menyatakan input diterima adalah {ODD}. Simbol input yang ada adalah {0,1}Kita telusuri bila mesin mendapat input: 1101 urutan state yang terjadi adalah EVEN 1 ODD 1 EVEN 0 EVEN 1 ODD berakhir dengan state ODD sehingga “1101” diterima oleh mesin. Bila mesin mendapat input: 101 urutan state yang terjadi adalah EVEN 1 ODD 0 ODD 1 EVEN berakhir dengan state EVEN maka “101” diterima oleh mesin. Pada contoh tersebut state akhir hanya satu, pada umumnya bisa terdapat sejumlah state akhir. Istilah state akhir/final state tidak berarti komputasi berupa perpindahan/transisi berhenti (halt) begitu state akhir tercapai. State akhir hanya menyatakan kedudukan-kedudukan state tertentu sebagai kedudukan yang diterima (accepting state).

Page 5: Otomata-03

Secara formal finite state automata dinyatakan oleh 5 tupel atau M=(Q, , , S, F), di mana:Q = himpunan state/kedudukan

= himpunan simbol input/masukan/abjad= fungsi transisi

S = state awal/kedudukan awal (initial state), S QF = himpunan state akhir, F Q

F adalah himpunan state akhir, jumlah state akhir pada suatu finite state automata bisa lebih dari satu. Pada gambar tersebut dapat dinyatakan:

Q = {ODD, EVEN}= {0, 1}

S = EVENF = {ODD}

Σ

Σ

Σ

Page 6: Otomata-03

3.2 Deterministik Finite AutomataPada otomata berhingga deterministik biasa disebut DFA (deterministic finite automata), ada tepat satu state berikutnya untuk setiap simbol masukan yang di terima. Contoh;

q0 q1

a a

b q2

a

b

b

Konfigurasi deterministic finite automata di atas secara formal dinyatakan sebagai berikut:Q = {q0, q1, q2}

= {a, b}S = q0

F = {q2}

Σ

Page 7: Otomata-03

Fungsi transisi yang ada pada DFA tersebut adalah sebagai berikut:

(q0, a) = q0

(q0, b) = q1

(q1, a) = q1

(q1, b) = q2

(q2, a) = q1

(q2, b) = q2

Fungsi-fungsi transisi tersebut dapat disajikan dalam sebuah tabel transisi, yang menunjukkan state-state berikutnya untuk kombinasi state dan input. Tabel transisi dari fungsi transisi di atas adalah: a b

q0 q0 q1

q1 q1 q2

q2 q1 q2

Pada tabel transisi Deterministic Finite Automata di atas, nampak bahwa terdapat sebuah state berikutnya yang unik untuk setiap pasangan state-input.

Page 8: Otomata-03

Jadi untuk sebuah state dan input yang berlaku, kita bisa menentukan tepat satu state berikutnya. Pada Deterministic Finite Automata, merupakan sebuah fungsi yang harus terdefinisi untuk semua pasangan state-input yang ada dalam Q X .Suatu string x dinyatakan diterima bila (S, x) berada pasa state akhir. Secara formal dikatakan bila M adalah sebuah finite state automata, M=(Q, , , S, F), menerima bahasa yang disebut L(M), yang merupakan himpunan {x| (S,x) di dalam F}. Misal pada contoh gambar ke-2 kita input-kan string ‘abb’ pada mesin, maka;

(q0,abb) = (q0,bb) = (q1,b) = q2

karena q2 termasuk state akhir, maka ‘abb’ berada dalam L(M). Contoh lain pada gambar 2 kita input-kan string ‘baba’ pada mesin tersebut, maka;

(q0,baba) = (q1,aba) = (q1,ba) = (q2,a) = q1

karena q1 tidak termasuk state akhir, maka ‘baba’ tidak berada dalam L(M).

Σ

Σ

Page 9: Otomata-03

a

q0 q1

a,b

b

Contoh lain bisa dilihat pada gambar 3 dibawah ini;

Tabel transisi dari gambar 3 adalah:

a b

q0 q1 q1

q1 q1 q0

Jadi dari suatu gambar/diagram transisi dapat kita buat tabel transisinya, sebaliknya dapat pula dibuat diagram transisi suatu Deterministic Finite Automata bila diketahui tabel transisinya.

Page 10: Otomata-03

Contoh selanjutnya jika terdapat tabel transisi:

a b

q0 q0 q1

q1 q0 q0

Dengan S = q0 dan F = {q1}, maka diagram transisinya seperti berikut:

q0 q1

a

b

a, b

Page 11: Otomata-03

q0 q2

0

1

1

Contoh lain dengan tabel transisi seperti:

0 1

q0 q2 q1

q1 q1 q0

q2 q0 q1

dengan S = q0 dan F = {q0,q2}, maka tabel transisinya dapat dibuat seperti berikut:

q1

1

0

0

Page 12: Otomata-03

Berlanjut………

ل َو2الَّس.ام