Laman

Sabtu, 15 April 2017

FSA (FINITE STATE OTOMATA)


Dosen: Yessy Fitriani, ST.,M.Kom


Otomata adalah:  
Suatu bentuk/model matematika yang memiliki fungsi-fungsi dari computer digital yaitu :
  •  Menerima input.
  • Menghasilkan output.
  • Bisa memiliki penyimpanan sementara.
  • Mampu membuat keputusan dalam mentransformasikan input ke output.
  • Terdiri dari sejumlah berhingga state (kedudukan) 
  • Perpindahan state satu ke yang lain berdasar input dan fungsi transisi
  • Input pada otomata => bahasa yang harus dikenali
  • Otomata membuat keputusan apakah input diterima atau tidak.



Finite State Automata 
adalah mesin abstrak berupa sistem model matematika dengan masukan dan keluaran diskrit yang dapat mengenali bahasa paling sederhana (bahasa reguler) dan dapat diimplementasikan secara nyata. 
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. 

FSA didefinisikan sebagai pasangan 5 tupel : (Q, ∑, δ, S, F).

Q : himpunan hingga state
∑ : himpunan hingga simbol input (alfabet)
δ : fungsi transisi, menggambarkan transisi state FSA akibat pembacaan simbol input.
(Fungsi transisi ini biasanya diberikan dalam bentuk tabel.)
S : state AWAL (Start)
F : himpunan state AKHIR (Final)

Contoh FSA untuk mengecek parity ganjil
 

- Misal input : 1101 
Genap 1 Ganjil 1 Genap 0 Genap 1 Ganjil : diterima mesin
- Misal input : 1100
Genap 1 Ganjil 1 Genap 0 Genap 0 Genap : ditolak mesin

Dari contoh diatas, maka:
Q = {Genap, Ganjil}
Σ = {0,1}
S = Genap
F = {Ganjil }


 


Klasifikasi FSA


Ada dua jenis FSA :
1. Deterministic finite automata (DFA)
Terdiri dari 1 transisi dari suatu state pada 1 simbol masukan.

2. Non deterministik finite automata.(NFA)
Lebih dari 1 transisi dari suatu state dimungkinkan pada simbol masukan yang sama.
  • Kedua finite automata tersebut mampu mengenali himpunan reguler secara presisi. Dengan demikian kedua finite automata itu dapat mengenali string-string yang ditunjukkan dengan ekspresi reguler secara tepat.
  • DFA dapat menuntun recognizer(pengenal) lebih cepat dibanding NDFA.
  • Namun, DFA berukuran lebih besar dibanding NDFA yang ekivalen dengannya.


1.Deterministik (DFSA/DFA)
Pada setiap input, hanya ada satu keadaan (state) tujuan dari keadaan saat ini.

Contoh :
Pengujian untuk menerima bit string dengan banyaknya 0 genap, serta banyaknya 1 genap.
0011 : diterima
10010 : ditolak, karena banyaknya 0 ganjil
Diagram transisi-nya :
 
DFA nya:
Q = {q0 , q1 , q2 , q3 }
Σ = {0,1}
S = q0
F = { q0}
fungsi transisi adalah:




Contoh : diberikan string 011 dan 1010, buktikan bahwa string tersebut diterima atau ditolak !

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

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


2.Nondeterministik (NFSA/NFA)
 Pada setiap input terdapat lebih dari satu keadaan tujuan dari keadaan saat ini.

Non-deterministic
1 keadaan + 1 input 1 keadaan.
Atau, 1 keadaan + 1 input -> 0 keadaan
Setiap DFA merupakan NFA.




Cara  Kerja   NFA :


- Misal: kita berada di keadaan q1 suatu NFA N1. Diberikan simbol input 1.

Setelah membaca input tersebut, mesin menuju semua keadaan

berikutnya yang berlabel 1.
- Kemudian mesin membaca input berikutnya.
Bila keadaan berikutnya ada lebih dari satu keadaan, ikuti semua keadaan tersebut.
Bila tidak ditemukan keadaan berikutnya, maka runtutan string tersebut mati.
- Jika salah satu dari cabang urutan string mencapai keadaan akhir/ final state/ keadaan yang diterima, NFA menerima string yang diberikan.
- Jika muncul keadaan dengan simbol empty,  maka tanpa membaca input lagi mesin menuju ke semua keadaan berikutnya yang dituju simbol empty.

 

Contoh :
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaEw222fBJzB4hJP7eUO6memkCuIr9f_V5KzyOtmtu27rrEqlLLh-Z8Xb6Y-BxksjFMWbvEexPgTSyWMYQb3gnMwRj7R7C8VuvUKA9qRBf1-sQ8Jc3MUXf6zVdGuW7vHmI10a969xdN2Y/s1600/NFA.png


Konfigurasi NFA secara formal adalah sebagai berikut :

Q = {q0, q1 }

Σ = {a, b}

S = q0

F = {q1}

Fungsi-fungsi transisinya sebagai berikut :

δ (q0, a) = {q0,q1},     

δ (q0, b) = q1, 

δ (q1, a) = q1,             

δ (q1, b) = q1,

Nondeterministik (NFSA/NFA)

Pada setiap input terdapat lebih dari satu keadaan tujuan  dari keadaan saat ini.

 Non-deterministic
1 keadaan + 1 input 1 keadaan.
Atau, 1 keadaan + 1 input -> 0 keadaan
Setiap DFA merupakan NFA.

Cara  Kerja   NFA (1) Misal: kita berada di keadaan q1 suatu NFA N1. Diberikan simbol input 1.
Setelah membaca input tersebut, mesin menuju semua keadaan
berikutnya yang berlabel 1.
Kemudian mesin membaca input berikutnya.
Bila keadaan berikutnya ada lebih dari satu keadaan, ikuti semua keadaan tersebut.
Bila tidak ditemukan keadaan berikutnya, maka runtutan string tersebut mati.
Jika salah satu dari cabang urutan string mencapai keadaan akhir/ final state/ keadaan yang diterima, NFA menerima string yang diberikan.
Jika muncul keadaan dengan simbol e,  maka tanpa membaca input lagi mesin menuju ke semua keadaan berikutnya yang dituju simbol e.

Pohon Kemungkinan

 

Contoh : 

Bagaimana cara membaca input 010110?

 
NFA menerima string yang mengandung substring 11 dan 101 
Non-Deterministic Finite Automata:
• Otomata berhingga yang tidak pasti untuk setiap pasangan state input, bisa memiliki 0 (nol) atau lebih pilihan untuk state berikutnya.
• Untuk setiap state tidak selalu tepat ada satu state berikutnya untuk setiap simbol input yang ada.
• Dari suatu state bisa terdapat 0,1 atau lebih busur keluar (transisi)
berlabel simbol input yang sama.
• Untuk NFA harus dicoba semua kemungkinan yang ada sampai
terdapat satu yang mencapai state akhir.
Kedua finite automata di atas mampu mengenali himpunan reguler secara presisi. Dengan demikian kedua finite automata itu dapat mengenali string-string yang ditunjukkan dengan ekspresi reguler secara tepat.

DFA dapat menuntun recognizer(pengenal) lebih cepat dibanding NDFA. Namun demikian, DFA berukuran lebih besar dibanding NDFA yang ekivalen dengannya. Lebih mudah membangun NDFA dibanding DFA untuk suatu bahasa, namun lebih mudah mengimplementasikan DFA dibanding NDFA.




sumber :
- slide TBO
- https://riskasimaremare.wordpress.com

Senin, 27 Maret 2017

Teori Bahasa Dan Otomata “Konsep Grammar dan Bahasa”

Dosen: Yessy Fitriani, ST.,M.Kom


Konsep Dasar

1. Dalam pembicaraan grammar, anggota alfabet dinamakan simbol terminal atau token.
2. Kalimat adalah deretan hingga simbol-simbol terminal.
3. Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa tak hingga kalimat.
4. Simbol-simbol berikut adalah simbol terminal :
  • huruf kecil awal alfabet, misalnya : a, b, c
  • simbol operator, misalnya : +, -, dan ´
  • simbol tanda baca, misalnya : (, ), dan ;
  • string yang tercetak tebal, misalnya : if, then, dan else.
5. Simbol-simbol berikut adalah simbol non terminal :
  • huruf besar awal alfabet, misalnya : A, B, C
  • huruf S sebagai simbol awal
  • string yang tercetak miring, misalnya : expr dan stmt.
  1. Huruf besar akhir alfabet melambangkan simbol terminal atau non terminal, misalnya : X, Y, Z.
  2. Huruf kecil akhir alfabet melambangkan string yang tersusun atas simbol-simbol terminal, misalnya : x, y, z.
  3. Huruf yunani melambangkan string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya, misalnya : a, b, dan g.
  4. Sebuah produksi dilambangkan sebagai a ® b, artinya : dalam sebuah derivasi dapat dilakukan penggantian simbol a dengan simbol b.
  5. Simbol a dalam produksi berbentuk a ® b disebut ruas kiri produksi sedangkan simbol b disebut ruas kanan produksi.
  6. Derivasi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuah derivasi dilambangkan sebagai : a Þ b.
  7. Sentensial adalah string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya.
  8. Kalimat adalah string yang tersusun atas simbol-simbol terminal. Jelaslah bahwa kalimat adalah kasus khusus dari sentensial.
  9. Pengertian terminal berasal dari kata terminate (berakhir), maksudnya derivasi berakhir jika sentensial yang dihasilkan adalah sebuah kalimat (yang tersusun atas simbol-simbol terminal itu).
  10. Pengertian non terminal berasal dari kata not terminate (belum/tidak berakhir), maksudnya derivasi belum/tidak berakhir jika sentensial yang dihasilkan mengandung simbol non terminal.
Aturan Produksi
  • Aturan produksi dnyatakan dalam bentuk α → β, α menghasilkan atau menurunkan β
  • α symbol-symbol untuk ruas kiri,  β symbol-symbol untuk ruas kanan
  • Symbol-symbol dapat berupa terminal dan non terminal dimana non terminal dapat diturunkan menjadi symbol yang lainnya
  • Umumnya symbol terminal disymbolkan dengan huruf kecil (a,b,c, dsb), sedangkan untuk symbol non terminal disymbolkan dengan huruf besar (A,B,C, dsb)
  • Contoh aturan produksi :
T → a, T menghasilkan a
E → T │ T + E, E menghasilkan T atau E menghasilkan T + E

Grammar dan Klasifikasi Chomsky
Grammar G didefinisikan sebagai pasangan 4 tuple : V, V, S, dan Q, dan dituliskan sebagai G(V, V, S, Q), dimana :
V         : himpunan  simbol-simbol  terminal  (atau  himpunan  token -token, atau alfabet)
V        : himpunan simbol-simbol non terminal
S Î V : simbol awal (atau simbol start)
Q            : himpunan produksi
Berdasarkan komposisi bentuk ruas kiri dan ruas kanan produksinya (a ® b), Noam Chomsky mengklasifikasikan 4 tipe grammar :

1.   Grammar tipe ke-0 : Unrestricted Grammar (UG)
·         Tidak ada batasan pada aturan produksi
·         Simbol ruas sebelah kiri harus minimal ada sebuah variabel
Contoh:
Abc → De
T → aaBBcC
TT → b

2.   Grammar tipe ke-1 : Context Sensitive Grammar (CSG)
·         Panjang string ruas kiri harus < (lebih kecil) atau = (sama dengan) ruas kanan
Contoh:
Ab → DeF
CD → eF
Ab → aaab
T → BC

3.   Grammar tipe ke-2 : Context Free Grammar (CFG)
·         Ruas kiri haruslah tepat satu symbol variabel, yaitu simbol non terminal
Contoh :
B → CDeFg
D → BcDe
T → ABC
T → a

4.   Grammar tipe ke-3 : Regular Grammar (RG)
Ruas kanan hanya memiliki maksimal satu symbol non terminal
Contoh
A → e
A → efg
A → efgH
C → D



sumber :
https://m24klik.wordpress.com
 

Operasi Dasar String dan Tabel dan Diagram Transisi dari Game Logika [resume 16-03-2017]

Dosen: Yessy Fitriani, ST.,M.Kom


OPERASI DASAR STRING

Diberikan dua String : x=abc , dan y=123;


  • PREFIX STRING w adalah String yang dihasilkan dari String w dengan menghilangkan nol atau lebih simbol-simbol paling belakang dari String w tersebut. 
Contoh : abc, ab, a dan Ɛ adalah semua PREFIX(x).

  • PROPERPREFIK STRING w adalah String yang dihasilkan dari String w dengan menghilangkan satuatau lebih simbol-simbol paling belakang dari String w tersebut. 
Contoh : ab, a dan Ɛ adalah semua PROPERPREFIX(x).

  • POSTFIX (atau SUFIX) STRING w adalah String yang dihasilkan dari String w dengan menghilangkan nol atau lebih simbol-simbol paling depan dari String w tersebut. 
Contoh : abc, bc, c dan Ɛ adalah semua POSTFIX(x).

  • PROPERPOSTFIX (atau SUFIX) STRING w adalah String yang dihasilkan dari String w dengan menghilangkan satu atau lebih simbol-simbol paling depan dari String w tersebut. 
Contoh : bc, c dan Ɛ adalah semua PROPERPOSTFIX(x).

  • SUBSTRING STRING w adalah  String yang dihasilkan dari String w dengan menghilangkan nol  atau lebih simbol paling depan dan/atau simbol-simbol paling belakang dari String w tersebut. 
Contoh : abc, ab, bc, a, b, c dan Ɛ adalah semua SUBSTRING (x).

  • PROPER SUBSTRING STRING w adalah  String yang dihasilkan dari String w dengan menghilangkan satu atau lebih simbol paling depan dan/atau simbol-simbol paling belakang dari String w tersebut. 
Contoh : ab, bc, a, b, c dan Ɛ adalah semua PROPERSUBSTRING (x).

  • SUBSEQUENCE STRING w adalah  String yang dihasilkan dari String w dengan menghilangkan nol  atau lebih simbol-simbol dari String w tersebut. 
Contoh : abc, ab, bc, ac, a, b, c dan Ɛ adalah semua SUBSEQUENCE (x).

  • PROPER SUBSEQUENCE STRING w adalah  String yang dihasilkan dari String w dengan menghilangkan satu atau lebih simbol-simbol dari String w tersebut. 
Contoh : ab, bc, ac, a, b, c dan Ɛ adalah semua SUBSEQUENCE (x).

  • HEAD STRING w adalah simbol paling depan dari String w.
Contoh : a adalah HEAD(x).

  • TAIL STRING w adalah String yang dihasilkan dari String w dengan menhilangkan HEAD tersebut. 
Contoh : bc adalah TAIL(x).

  • CONCATENATION adalah penyambungan dua buah String. 
Contoh : concate(xy) = xy = abc123.

  • ALTERNATION adalah pilihan satu diantara dua buah String. Operatornya adalah |. 
Contoh : alternate(xy) = x | y = abc atau 123.

  • KLEENE CLOSURE : x* = Ɛ | x | xx | xxx| … = Ɛ | x | x2 | x3| … 
x* : menyatakan himpunan seluruh untai yang meliputi seluruh alphabet, termasuk untai kosong (Ɛ).
  • POSITIVE CLOSURE : x+ = x | xx | xxx |… = x | x2 | x3 | …
x+ : menyatakan himpunan seluruh untai meliputi seluruh alphabet, tidak termasuk untai kosong (Ɛ).

Berikut merupakan Tabel State beserta Diagram Transisi dari Game Logika Kanibal Pendeta dan Polisi Penjahat

  • Polisi dan Penjahat
Tabel :


Diagram transisinya :
diagram transisi harus memiliki state awal dan state akhir, dan saya membuat diagram transisi dibawah kurang tepat, karena hanya memiliki state akhir saja,state awal biasanya ditandai dengan tanda panah "->", dan untuk diagram dibawah,seharusnya ada di pojok kiri atas atau ABCDEFGH-0.


























  •  Kanibal dan Pendeta
Tabel :























Diagram Transisi :
sama dengan yang diatas, diagram ini juga kurang tepat karna tidak ada state awalnya. yaitu pada 0-JKLMNO.


























sumber :
https://mazipanneh.wordpress.com