TEORI BAHASA DAN OTOMATA - … · Contoh 1 Alphabet yang digunakan hanya 2 huruf, a dan b Ada 3...

22
PERTEMUAN 3 TEORI BAHASA DAN OTOMATA [TBO]

Transcript of TEORI BAHASA DAN OTOMATA - … · Contoh 1 Alphabet yang digunakan hanya 2 huruf, a dan b Ada 3...

PERTEMUAN 3

TEORI BAHASA DAN OTOMATA

[TBO]

Finite State Automata

Sebuah Finite State Automata adalah:

Model matematika yang dapat menerima input danmengeluarkan output

Kumpulan terbatas (finite set) dari state(kondisi/keadaan). Satu diantaranya menjadi initialstate (kondisi awal) atau start state, dan beberapa(bisa berarti tidak ada) dari antaranya dinyatakansebagai final state

Himpunan alphabet berisi beberapa huruf, dimanastring-string bentukan dari alphabet akan dibaca

huruf demi huruf

Finite Automata Lanjt..

Kumpulan terbatas dari transition yangmenjelaskan untuk tiap state dan tiap huruf yangdibaca ke state mana perjalanan dilanjutkanberdasarkan input dan fungsi transisi

Tidak memiliki tempat penyimpanan ataumemory, sehingga hanya bisa mengingat stateterkini

Mekanisme kerja dapat diaplikasikan pada:elevator, text editor, analisa leksikal, pen-cek-anparity

Contoh 1

Alphabet yang digunakan hanya 2 huruf, a dan b

Ada 3 buah state, yaitu x, y dan z

Aturan trasition yang dipakai adalah:

1. Dari state x dan input a menuju state y

2. Dari state x dan input b menuju state z

3. Dari state y dan input a menuju state x

4. Dari state y dan input b menuju state z

5. Dari state z dan input apa saja tetap di state z

Ditentukan juga x sebagai start state dan zsebagai final state

Contoh 1 Lanjt..

Perhatikan apa yang akan terjadi bila string aaadiumpankan ke FA tersebut

Penelusuran akan dimulai dari start state:

Huruf pertama adalah a, sesuai aturan-1 akan menujustate y

Huruf kedua adalah a, sesuai aturan-3 akan menuju statex

Huruf ketiga adalah a, sesuai aturan-1 akan menuju statey

String sudah diumpankan semua, tapi tidak mencapai finalstate

Jadi, string aaa bukanlah termasuk di dalam bahasa yangdidefinisikan oleh FA

Contoh 1 Lanjt..

Contoh lain, bila string abba diumpankan ke FAtersebut

Hasilnya, perjalanan mencapai pada state z (finalstate)

Jadi, string abba termasuk word dalam bahasa yangdidefinisikan oleh FA tersebut

Contoh 1 Lanjt - Transition Table

Tidak sulit menerka word apa saja yang diterima oleh FAtersebut, yaitu stringnya harus berisi minimal sebuah bagar mencapai state z

Dari transition rule di atas, dapat dibuatkan sebuahtransition table seperti di bawah ini:

State a b

Start x y Z

y x z

Final z z z

FA dapat dianggap sebagai suatu mesin. Ada suatupergerakkan, perpindahan dari sebuah state ke statelain, karena adanya sebuah input

Contoh 1 Lanjt - Transition Diagram

FA yang digambarkan dalam bentuk grafis

Tanda (-) untuk start state dan (+) untuk final state

Bentuk lain, start state memakai panah dan finalstate memakai lingkaran ganda

x- y

z+

b b

a

a

a ba

b b

a

a

b

x y

z

Contoh 2

2 busur atau lebih yang berasal dari state yang sama danmenuju ke state yang sama pula dapat disatukan sepertigambar di atas

Sekilas terkesan bahwa FA di atas dapat menerima stringdalam bentuk apapun

Namun, bila inputnya adalah null string (), maka tidak akanterjadi perpindahan state

Jadi language yang diterima oleh mesin di atas adalah:

( a + b ) ( a + b )* = ( a + b )+

a, b

+ a, b +

a

b

a

b

Contoh 3

Ada kemungkinan sebuah FA tidak akan menerimalanguage apapun

a

b

a, b

a,ba,b

+

a,b

Contoh 4

Apa yang terjadi bila diberi input string ababadan babbb (bagaimana pergerakkannya) ?

a

aa

b b

ba, b

1-

3

2

4+

Contoh 4 Lanjt..

Transisi bila diberi input string ababa

δ(1,a) = (2)

δ(2,b) = (3)

δ(3,a) = (2)

δ(2,b) = (3)

δ(3,a) = (2)

Contoh 4 Lanjt..

Transisi bila diberi input string babbb

δ(1,b) = (3)

δ(3,a) = (2)

δ(2,b) = (3)

δ(3,b) = (4)

δ(4,b) = (4)

Tuple Pada FSA

Finite State Automata dinyatakan oleh 5 tuple, yaitu:

M=(Q , Σ , δ , S , F )

Q = Himpunan state

Σ = Himpunan simbol input

δ = Fungsi/tabel transisi δ : Q × Σ

S = State awal / initial state , S ∈ Q

F = State akhir, F ∈ Q

Contoh 5 (Pen-cek Parity Ganjil)

Misal input : 1101

δ(Genap,1)=(Ganjil); δ(Ganjil,1)=(Ganjil); δ(Ganjil,0)=(Genap); δ(Genap,1)=(Ganjil) Result: Diterima mesin

Misal input : 1100

δ(Genap,1)=(Ganjil); δ(Ganjil,1)=(Ganjil); δ(Ganjil,0)=(Genap); δ(Genap,0)=(Genap)

Result: Ditolak mesin

Contoh 5 Lanjt.

Tuple pada contoh 5:

Q = {Genap, Ganjil}; Σ = {0,1}; S = {Genap}; F = {Ganjil}

δ 0 1

Genap Genap Ganjil

Ganjil Genap Ganjil

Penjabaran tabel transisi di atas adalah:

δ(Genap,0) = {Genap}

δ(Genap,1) = {Ganjil}

δ(Ganjil,0) = {Genap}

δ(Ganjil,1) = {Ganjil}

Jenis FSA

Deterministic Finite Automata (DFA)

Dari suatu state ada tepat satu state berikutnyauntuk setiap simbol masukan yang diterima

Non-deterministic Finite Automata (NFA)

Dari suatu state ada 0, 1 atau lebih state berikutnyauntuk setiap simbol masukan yang diterima

DFA (Deterministic Finite Automata)

Perhatikan !!

Contoh 5 : Pengujian parity ganjil

Contoh 6 : Pengujian untuk menerima bit stringdengan banyaknya “0” genap, serta banyaknya“1” genap.

0011 : String diterima

10010 : String ditolak, karena “0” banyaknya

berjumlah ganjil

Contoh 6 (DFA Lanjt..)

Diagram transisi

Contoh 6 Lanjt..

DFA tuple-nya

Q = {q0, q1, q2, q3}; Σ = {0,1}; S = {q0}; F = {q0}

δ (Tabel transisi)

δ 0 1

q0 q2 q1

q1 q3 q0

q2 q0 q3

q3 q1 q2

Contoh string inputan:

δ(q0,011)=δ(q2,11)=δ(q3,1)=q2 (Ditolak)

δ(q0,1010)=δ(q1,010)=δ(q3,10)=δ(q2,0)=q0 (Diterima)

Contoh 7

Variabel dalam bahasa pascal diawali oleh huruf(besar/kecil), dan diikuti dengan huruf atau angka.

Latihan

1. Buatlah Tuple dari Diagram FSA di bawah ini:

2. Buatlah Tuple dan Diagram FSA dari pen-cek paritygenap !