Lecture 13: Finite-State Machine
Based on Discrete Mathematics and Its Applications (opens in a new tab) by Kenneth H. Rosen, 7th Edition.
Finite-State Machine with Output
Finite-State Machine tersusun atas himpunan state , himpunan masukan , himpunan keluaran , fungsi transisi , fungsi keluaran , dan keadaan awal .
FSM dapat direpresentasikan dengan state table sebagai berikut:
State | Input | Output | Next State |
---|---|---|---|
Tabel diatas dapat dibuat lebih compact dengan memasukkan state dan input ke dalam satu kolom:
Input | Output | |
State | ||
Baris pertama dapat dibaca sebagai berikut:
Jika saat ini berada di state dan input diberikan, maka FSM akan berpindah ke state dan mengeluarkan output . Jika input diberikan, maka FSM akan berpindah ke state dan mengeluarkan output .
Misalkan ada sebuah FSM yang memiliki state table sebagai berikut:
Input | Output | |
State | ||
Apakah string outputnya bila string inputnya berupa
101011
Berikut adalah tabel transisi FSM tersebut:
Input | State | Output | Next State |
---|---|---|---|
Maka string outputnya adalah
001000
Unit-Delay Machine
Unit-delay machine adalah FSM yang mengeluarkan output yang sama dengan inputnya ditambah delay beberapa waktu. Bagaimana FSM yang mengeluarkan output yang sama dengan inputnya ditambah delay satu waktu, yaitu output untuk input ?
Untuk menyelesaikan masalah ini, kita dapat merancang FSM yang mengingat satu input sebelumnya. Pertama-tama dirancang untuk selalu mengeluarkan output untuk setiap input yang diberikan. Jika input pertama adalah , maka FSM akan berpindah ke yang akan mengeluarkan output untuk setiap input yang diberikan dan berpindah ke jika input diberikan yang akan selalu mengeluarkan output .
Input | Output | |
State | ||
Bagaimana dengan delay sebanyak 2 bit?
Untuk menyelesaikan masalah ini, FSM perlu untuk mengingat 2 bit input sebelumnya. Secara intuisi, FSM memerlukan 4 state yaitu segala kemungkinan 2 bit sebelumnya . State akan menampung input , akan menampung input , akan menampung input , dan akan menampung input .
Input | Output | |
State | ||
Bila diperhatikan, state dan memiliki fungsi transisi yang sama. Hal ini dapat dipersingkat dengan membuang state dan memulai FSM dari sebagai initial state.
Secara intuisi, jumlah state yang dibutuhkan untuk mengingat bit input sebelumnya adalah .
Example
Dalam suatu transmisi informasi, bila ada tiga atau lebih string 1
berurutan menandakan terjadi galat. Buatlah FSM yang dapat mengenali string-string yang mengandung galat tersebut!
Untuk menjawabnya, kita perlu memikirkan apa transisi bila diberikan sebuah input 1
. Untuk memeriksa apakah string tersebut berisi 111
maka perlu ada 2 state tambahan, state kedua berfungsi untuk mengingat bahwa input sebelumnya adalah 1
. Apabila mesin masih mendapati input 1
setelah itu, maka mesin ditransisikan ke state ketiga sebagai final state. Bila input selanjutnya adalah 0
, maka mesin kembali ke state awal. Namun, bila input selanjutnya adalah 1
, maka mesin akan mengenali string tersebut sebagai string yang mengandung galat.
Input | Output | |
State | ||
Perhatikan! FSM akan mengeluarkan output 1
hanya jika string yang diberikan mengandung galat ...111...
Finite-State Machine without Output
Finite-State Automaton tersusun atas himpunan state , himpunan masukan , fungsi transisi , keadaan awal , dan himpunan state akhir .
Deterministic
Dinamakan deterministic karena untuk setiap state dan input , hanya ada satu state yang mungkin dihasilkan.
Language Recognition
Diberikan sebuah , FSM tersebut dapat mengenali bahasa yang terdiri dari string-string yang dapat diterima oleh FSM tersebut yaitu . Dua buah finite-state automata dikatakan setara jika .
Example
Sebuah finite-state automata memiliki himpunan state , himpunan masukan , fungsi transisi sebagai berikut:
Input | |
State | |
dan himpunan state akhir . Apakah bahasa yang diterima oleh ?
Bahasa yang diterima oleh adalah himpunan string-string yang hanya mengandung 1
saja atau .
Nondeterministic
Dinamakan nondeterministic karena untuk setiap state dan input , tidak hanya satu state yang mungkin dihasilkan.
Example
Sebuah finite-state automata memiliki himpunan state , himpunan masukan , fungsi transisi sebagai berikut:
Input | Input | |
State | ||
dan himpunan state akhir . Apakah bahasa yang diterima oleh ?
Jika di trace dari himpunan state akhir , didapatkan beberapa poin:
- hanya dapat dicapai dalam input untuk sejumlah bilangan bulat positif.
- dapat dicapai dari
Maka, bahasa .
Jika suatu bahasa dapat diterima oleh suatu nondeterministic finite-state automata, maka juga dapat diterima oleh suatu deterministic finite-state automata.