TEORI BAHASA DAN AUTOMATA

Download Mahasiswa memahami Finite State Automata (FSA) dan dapat mengeksekusi ... Sebagai contoh pada penyelesaian kasu...

0 downloads 296 Views 5MB Size
MODUL II

TEORI BAHASA DAN AUTOMATA Tujuan : Mahasiswa memahami Finite State Automata (FSA) dan dapat mengeksekusi suatu mesin otomata Materi :

 FSA dan Implemetasi FSA  Deterministic Finite Automata (DFA)

 Non Deterministic Finite Automata (NFA)

1

FINITE STATE AUTOMATA DAN IMPLEMENTASINYA 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. 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 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 untu Petani (P), serigala (S), kambing (K) dan rumput ( R) yaitu : 2

Sisi kiri PSKR SR SK KR PSR PSK PKR PK PR PS K R S SKR P Ø

Sisi Kanan Ø PK PR PS K R S SR SK KR PSR PSK PKR P SKR PSKR

Simbol State PSKR – Ø SR – PK SK – PR KR – PS PSR – K PSK – R PKR – S PK – SR PR – SK PS – KR K – PSR R – PSK S – PKR SKR – P P – SKR Ø – PSKR

Dari 16 kombinasi state tersebut, hanya 10 state yang mungkin, yaitu :

Sisi kiri PSKR SR PSR PSK PKR PK K R S Ø

Sisi Kanan Ø PK K R S SR PSR PSK PKR PSKR

Simbol State PSKR – Ø SR – PK PSR – K PSK – R PKR – S PK – SR K – PSR R – PSK S – PKR Ø – PSKR

Berdasarkan kemungkinan state tersebut, dapat digambarkan diagram transisi dari persoalan tersebut dengan mesin automata, sbb :

3

PK

PKSR - Ø

P

SR - PK

PSR - K

PK

P PR PS

PS

PR

R - PKS

S- PKR

PK PK

PK PK PKS - R

PKR - S

PR

PS

PR

PS K - PSR

P P PK - SR

PK

PK

Ø - PKSR

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)

4

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 } δ =

PSKR – Ø SR – PK PSR – K PSK – R PKR – S PK – SR K – PSR R – PSK S – PKR Ø – PSKR

P SR - PK PSR - K SR - PK K - PSR PK - SR -

PK PSKR–Ø S - PKR R - PKS Ø-PSKR PKR - S PKS - R PK – SR

PR S - PKR K - PSR

PS R - PKS K - PSR -

PKR - S PSR - K -

PKS – R PSR - K -

S = PSKR – Ø F = { Ø – PSKR }

5

DETERMINISTIC FINITE AUTOMATA ( D F A ) 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 the row labelled

, i.e. to find the value of

and the column labelled

all final states are marked by

we have to look at

. The initial state is marked by an

and

.

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 then there is an arrow from state We write

to

which is labelled

for the set of words (i.e. sequences) over the alphabet

the empty word which is written

. . This includes

. I.e.

6

NON-DETERMINISTIC FINITE AUTOMATA

A non-deterministic finite automaton is a 5-tuple Q

where

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

is an element of

A configuration (q, w) yields in one step configuration (q',w') if there is that w = uw' and

. such

.

is the reflexive, transitive closure of

.

7

A string equivalently

is accepted by M if there is a path labeled w from the initial state q0 to a final state, or

such that

.

}. Problem : 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:

(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?

8

9