Uploaded by 16208097

FINITE STATE AUTOMATA DAN IMPLEMENTASINYA

advertisement
FINITE STATE AUTOMATA DAN
IMPLEMENTASINYA
Deskripsi Singkat
Finite state automata (FSA) bukanlah mesin fisik tetapi suatu model
matematika dari suatu sistem yang menerima input dan output. FSA
merupakan mesin automata dari bahasa regular (tipe 3). Suatu FSA
memiliki state yang banyaknya berhingga, dan dapat berpindah dari suatu
state ke state lain. Perubahan state dinyatakan oleh fungsi transisi
Manfaat/Relevansi
Finite State Automata (FSA) adalah suatu mesin abstrak yang digunakan
untuk merepresentasikan penyelesaian suatu persoalan dari suatu sistem
diskrit. Sebagai sebuah mesin maka FSA akan bekerja jika diberikan suatu
masukan. Hasil proses adalah suatu nilai kebenaran diterima atau tidaknya
masukan yang diberikan. Mekanisme kerja dapat diaplikasikan FSA pada
: elevator, text editor, analisa leksikal, pencek parity.
Tujuan Instruksional Umum
 Mahasiswa memahmi konsep dan implementasi dari Finite State
Automata
Tujuan Instruksional Khusus
 Mahasiswa bisa menjelaskan elemen-elemen dari DFA
 Mahasiswa bisa menjelaskan elemen-elemen dari NFA
Saran-Petunjuk Belajar
Berdoalah terlebih dahulu, bacalah dengan teratur dan seksama, jika ada
pertanyaan silahkan untuk bertanya pada Pengajar. Mahasiswa
diharapkan dapat berperan aktif dan berinteraksi dengan sumber belajar
yang dapat digunakan
Awal Entry - Kaitan Materi
Teori Bahasa Reguler Tipe 3
FSA memiliki state yang banyaknya berhingga, jika diberikan suatu
simbol input maka dapat terjadi suatu perpindahan dari sebuah state ke
state lainnya. Perubahan state tersebut dinyatakan oleh suatu simbol
transisi. Mekanisme FSA tidak memiliki memori sehingga selalu
mendasarkan prosesnya pada posisi state “saat ini”. Misalnya pada
mekanisme kontrol pada sebuah lift, selalu didasari pada posisi lift saat
15
itu pada suatu lantai, pergerakan ke atas atau ke bawah dan sekumpulan
permintaan yang belum terpenuhi.
Finite State Automata merupakan suatu tool yang berguna untuk
merancang sistem nyata.
Sebagai contoh pada penyelesaian kasus: seorang petani dengan
seekor serigala, kambing dan seikat rumput berada pada suatu sisi sungai.
Tersedianya hanya sebuah perahu kecil yang hanya dapat dimuati dengan
petani tersebut dengan salah satu serigala, kambing atau rumput. Petani
tersebut harus menyeberangkan ketiga bawaannya kesisi lain sungai.
Tetapi jika petani meninggalkan serigala dan kambing pada suatu saat,
maka kambing akan dimakan serigala. Begitu pula jika kambing
ditinggalkan dengan rumput, maka rumput akan dimakan oleh kambing.
Mungkinkah ditemukan suatu cara untuk melintasi sungai tanpa
menyebabkan kambing atau rumput dimakan.
Masalah ini dapat dimodelkan dengan memperhatikan mereka yang
menempati setiap sisi sungai. Misalnya kita akan menggunakan kombinasi
pada setiap sisi sungai sebagai keadaan/state yang mungkin.
Terdapat 16 kombinasi state untuk Petani (P), serigala (S),
kambing (K) dan rumput ( R) yaitu :
Sisi kiri
Sisi Kanan
Simbol State
PSKR
Ø
PSKR – Ø
SR
PK
SR – PK
SK
PR
SK – PR
KR
PS
KR – PS
PSR
K
PSR – K
PSK
R
PSK – R
PKR
S
PKR – S
PK
SR
PK – SR
PR
SK
PR – SK
PS
KR
PS – KR
16
K
PSR
K – PSR
R
PSK
R – PSK
S
PKR
S – PKR
SKR
P
SKR – P
P
SKR
P – SKR
Ø
PSKR
Ø – PSKR
Dari 16 kombinasi state tersebut, hanya 10 state yang mungkin, yaitu :
Sisi kiri
Sisi Kanan
Simbol State
PSKR
Ø
PSKR – Ø
SR
PK
SR – PK
PSR
K
PSR – K
PSK
R
PSK – R
PKR
S
PKR – S
PK
SR
PK – SR
K
PSR
K – PSR
R
PSK
R – PSK
S
PKR
S – PKR
Ø
PSKR
Ø – PSKR
Berdasarkan kemungkinan state tersebut, dapat digambarkan diagram
transisi dari persoalan tersebut dengan mesin automata, sbb :
17
PK
PKSR -
P
SR - PK
PK
PSR - K
P
PS
P
PS
P
R - PKS
PK
S- PKR
PK
PK
PK
PKS - R
PKR - S
P
PS
P
PS
K - PSR
P
P
PK - SR
PK
PK
Ø - PKSR
18
Pada diagram diatas, arti bentuk-bentuk adalah sebagai berikut :
 lingkaran merepresentasikan kedudukan (state),
 label pada lingkaran adalah nama state tersebut.
 Busur menyatakan transisi
 Label pada busur adalah masukan / input
 Lingkaran didahului dengan sebuah busur tanpa label adalah state
awal
 Lingkaran ganda menyatakan state akhir (final)
Secara formal FSA didefinisikan dengan 5 tuple : M = (Q, ∑, δ, S, F),
dimana :
Q : himpunan state/kedudukan
∑ : himpunan simbol input
∂ : fungsi transisi
S : State awal (initial state)
F : himpunan state akhir (Final State)
Untuk kasus petani dengan bawaanya, dapat didefinisikan FSA sebagai
berikut :
Q = { PSKR–Ø, SR–PK, PSR–K, PSK–R, PKR–S, PK–SR, K–PSR, R–
PSK, S–PKR, Ø–PSKR}
∑ = {P, PK, PR, PS }
δ =
P
PK
PR
PS
PSKR – Ø
SR - PK
SR – PK
PSR - K PSKR–Ø
PSR – K
SR - PK
S - PKR R - PKS
PSK – R
S - PKR
K - PSR
PKR – S
R - PKS K - PSR
PK – SR
K - PSR Ø-PSKR
K – PSR
PK - SR
PKR - S PKS – R
R – PSK
PKR - S
PSR - K
S – PKR
PKS - R PSR - K
Ø – PSKR
PK – SR
S = PSKR – Ø
F = { Ø – PSKR }
19
Model Finite Automata
Model Finite Automata memiliki ciri-ciri:
- Memori 'infinite'-nya adalah null (tidak ada memori sementara).
- head hanya bergerak 1 arah.
- Hanya berisi memori masukan berupa tape berisi string masukan dan
sejumlah kendali berhingga.
Properti Finite Automata
Finite Automata memiliki:
- 1 himpunan state kendali berhingga
- Simbol-simbol masukan yang dibolehkan/diijinkan
- State mula (initial state)
- Himpunan state akhir (set of final states)
State-state yang menandai diterimanya masukan.
- Fungsi transisi state (state transition function)
Adanya fungsi yang memberikan state saat itu (current state) dan
simbol masukan saat itu (current input symbol). Selain itu juga
fungsi memberikan/menyatakan semua state berikutnya yang
dimungkinkan.
Semua kemungkinan transisi dipandang dijalankan secara paralel. Bila
terdapat transisi yang menuju/sampai state akhir, berarti string masukan
diterima otomata.
Cara Kerja Finite Automata
Finite Automata bekerja dengan cara mesin membaca memori masukan
berupa tape yaitu 1 karakter tiap saat (dari kiri ke kanan) menggunakan
head baca yang dikendalikan oleh kotak kendali state berhingga dimana
pada mesin terdapat sejumlah state berhingga.
Finite Automata selalu dalam kondisi yang disebut state awal (initial state)
pada saat Finite Automata mulai membaca tape. Perubahan state terjadi
pada mesin ketika sebuah karakter berikutnya dibaca.
Ketika head telah sampai pada akhir tape dan kondisi yang ditemui adalah
state akhir, maka string yang terdapat pada tape dikatakan diterima Finite
Automata (String-string merupakan milik bahasa bila diterima Finite
Automata bahasa tersebut).
20
DETERMINISTIC FINITE AUTOMATA (DFA)
Apa yang dimaksud DFA?
A deterministic finite automaton (DFA) M = (Q, ∑, δ, S, F), dimana :
Q : himpunan state/kedudukan
∑ : himpunan simbol input
∂ : fungsi transisi, dimana ∂  Q x ∑ € Q
S : State awal (initial state)
F : himpunan state akhir (Final State)
Sebagai contoh mesin otomata berikut
dimana
FSA tersebut dikatakan DFA, jika selalu memenuhi tabel transisi berikut:
The table represents the function
have to look at the row labelled
state is marked by an
, i.e. to find the value of
and the column labelled
we
. The initial
and all final states are marked by .
Yet another, optically more inspiring, alternative are transition diagrams:
There is an arrow into the initial state and all final states are marked by
double rings. If
which is labelled
then there is an arrow from state
.
21
to
We write
for the set of words (i.e. sequences) over the alphabet
This includes the empty word which is written . I.e.
.
NON-DETERMINISTIC FINITE AUTOMATA
A non-deterministic finite automaton is a 5-tuple
dimana
Q
a finite set of states
an alphabet
the initial state
a set of final states
the transition function,
(
.
is the empty string;
is the set of all subsets of Q.)
A configuration of a finite automaton
.
22
is an element of
A configuration (q, w) yields in one step configuration (q',w') if there is
such that w = uw' and
.
is the reflexive, transitive closure of
.
A string
is accepted by M if there is a path labeled w from the
initial state q0 to a final state, or equivalently
such that
.
}.
Soal Latihan/Tugas
Which of the following strings are accepted by these non-deterministic
finite automata?
aa, aba, abb ,ab, abab (NDFA 1); ba, ab, bb, b, bba (NDFA 2); 00,
01001, 10010, 000, 0000 (NDFA 3).
Find strings different from the above which are accepted (not accepted)
by the corresponding automata.
Problem 2.2 Draw state diagrams for non-deterministic finite automata
accepting these languages:
23
(a)
;
(b)
(c) ((a*b*a*)*b)*;
;
(d)
.
Problem 2.3 Which of the following strings are accepted by
nondeterministic finite automata: a; b; a b; bb; b a b b?
Kesimpulan
1. Finite State Diagram terdiri dari:
Lingkaran menyatakan state
Lingkaran diberi label sesuai dengan nama state tersebut.
Adapun pembagian lingkaran adalah:
- Lingkaran bergaris tunggal berarti state sementara
- Lingkaran bergaris ganda berarti state akhir
2. Anak Panah menyatakan transisi yang terjadi
Label di anak panah menyatakan simbol yang membuat transisi dari 1
state ke state lain
1 anak panah diberi label start untuk menyatakan awal mula transisi
dilakukan
24
2. DFA adalah Deterministic Finite Automaton (DFA)
M = (Q, ∑, δ, S, F), dimana :
Q : himpunan state/kedudukan
∑ : himpunan simbol input
∂ : fungsi transisi, dimana ∂  Q x ∑ € Q
S : State awal (initial state)
F : himpunan state akhir (Final State)
3. NFA adalah Non-deterministic Finite Automata
A non-deterministic finite automaton is a 5-tuple
dimana
Q
a finite set of states
an alphabet
the initial state
a set of final states
the transition function,
(
.
is the empty string;
is the set of all subsets of Q.)
Tes Formatif dan Kunci Tes Formatif
1. Mesin DFA
Konfigurasi DFA di atas secara formal dinyatakan
Q = {q0, q1, q2}
 = {a,b}
S = q0
F = {q2}
25
Fungsi Transisi
 = (q0,a)= q0
 = (q0,b)= q1
 = (q1,a)= q1
2. Mesin NFA
 = (q1,b)= q2
 = (q2,a)= q1
 = (q2,b)= q2
26
Download