Diagram dan Tabel Transisi

Slides:



Advertisements
Presentasi serupa
Pertemuan 7 FINITE AUTOMATA DENGAN OUTPUT
Advertisements

Pertemuan 14 Pengantar ke Mesin Turing
Teori Bahasa dan Automata
MATERI 8 CHOICE / PILIHAN.
Pertemuan 9 Sifat-sifat Bahasa Regular
Oleh: BAGUS ADHI KUSUMA, ST
Session 12 Pushdown Automata
Pertemuan 4 Non Deterministic Finite Automaton (NFA)
Procedures, Functions and Methods
Algoritma Dasar Dalam membuat suatu program komputer, menyusun algoritma adalah langkah pertama yang harus dilakukan Dalam membuat algoritma dapat digunakan.
Session 5 Finite Automata
BAB II FINITE STATE AUTOMATA.
Teori Bahasa & OTOMATA.
Pertemuan 3 Finite Automata
Pertemuan 2 FINITE AUTOMATA (DFA & NFA)‏
BAB II FINITE STATE AUTOMATA.
BAB II FINITE STATE AUTOMATA.
KONSEP dan NOTASI BAHASA
Pemprograman Terstruktur 1
Pertemuan 3 BAHASA REGULAR
BAB V EKSPRESI REGULER 1. Penerapan Ekspresi Reguler
Lexical Analyzer (Scanner)
TEORI BAHASA DAN AUTOMATA
PENDAHULUAN.
BAB II FINITE STATE AUTOMATA.
BAB II FINITE STATE AUTOMATA.
Pertemuan 3 FINITE AUTOMATA
Finite Automata I (FA) Pertemuan 23:
Teori Bahasa & OTOMATA.
Teori Bahasa dan Automata
2. Mesin Turing (Bagian 2) IF5110 Teori Komputasi Oleh: Rinaldi Munir
Otomata & Teori Bahasa ( Week 2 )
NDFA dengan ε-Move CSG3D3 | Teori Komputasi Agung Toto Wibowo
4. Undecidabality (Bagian 1)
TEORI BAHASA DAN AUTOMATA
FINITE STATE AUTOMATA (FSA)
Teori-Bahasa-dan-Otomata
Kelompok 6 Turing Machine
BAB II FINITE STATE AUTOMATA.
OTOMATA DAN TEORI BAHASA FORMAL
FINITE STATE AUTOMATA (FSA)
Notasi Algoritma & Tipe Data
TEORI BAHASA DAN AUTOMATA TATA BAHASA LEVEL BAHASA
Dasar-Dasar Pemrograman
PENDAHULUAN.
Program Studi Teknik Informatika STMIK AMIKOM Purwokerto
Pengantar Teknik Kompilasi
Analisis leksikal (Scanner)
Kuis 1 Tekom MDS 11 September 2015.
4. Undecidabality (Bagian 2)
BAB II FINITE STATE AUTOMATA.
Pseudocode – Tipe Data, Variabel, dan Operator
PEMROGRAMAN PASCAL ELEMEN PEMROGRAMAN PASCAL.
TEORI BAHASA DAN AUTOMATA
Finite State Automata ♦ model matematika yang dapat menerima input dan mengeluarkan output ♦ Memiliki state yang berhingga banyaknya dan dapat berpindah.
MESIN MOORE *YANI*.
ANALISIS LEKSIKAL (Scanner)
Analisis leksikal ( SCANNER )
I Gusti Agung Made Wirautama, S.Kom
Pertemuan 4 Non Deterministic Finite Automaton (NFA)
Erwin Hidayat (M ) UTeM || 2010
Ekuivalensi NFA KE DFA *YANI*.
TEKNIK KOMPILASI ANALISIS LEKSIKAL
Konsep dan Notasi Bahasa
2. Mesin Turing (Bagian 2) IF5110 Teori Komputasi Oleh: Rinaldi Munir
Teori Bahasa dan Automata
Pertemuan4.
Kuis 1 Tekom MDS 9 September 2015.
Grammar dan Bahasa Automata
MESIN TURING. TEST KOMPETENSI Ni nomor berapakah mobil ini parkir?
Transcript presentasi:

Diagram dan Tabel Transisi CSG3D3 | Teori Komputasi Finite Automata Diagram dan Tabel Transisi Agung Toto Wibowo Ahmad Suryan Yanti Rusmawati Mahmud Dwi Sulistiyo Kurniawan Nur Ramadhani Said Al Faraby Dede Rohidin KK Intelligence, Computing, and Multimedia

Digunakan pada aplikasi yang membutuhkan teknik pengenalan pola. Finite Automata [1] Finite Automata (FA) : Suatu model komputer dengan jumlah memory yang sangat terbatas. Model komputasional yang paling sederhana. Digunakan pada aplikasi yang membutuhkan teknik pengenalan pola. Contoh : pada aplikasi kompilator, bagian leksikal harus bisa mengenali string mana yang merepresentasikan variable, nama, konstanta numerik, dan reserved word.

Finite Automata [2] Manfaat nyata : Software untuk mendesain dan mencek perilaku sirkuit digital. Contoh : mesin ATM. Bagian ‘’Lexical Analyzer‘’ dari berbagai kompiler yang berfungsi membagi teks input menjadi logical unit seperti Keyword, Identifier, dan pungtuasi. Search engine: menscan web, dan menemukan kata, frasa atau pola yang tepat

FA dapat direpresentasikan/digambarkan dengan Finite Automata [3] FA dapat direpresentasikan/digambarkan dengan State Transition Diagram Tabel Transisi

State Transition Diagram [1] State Transition Diagram (STD) : sekumpulan node berlabel yang jumlahnya terbatas, yang dihubungkan dengan garis berarah yang disebut busur. STD akan menerima input berupa string dan menghasilkan output berupa accept/reject Contoh di bawah ini adalah STD untuk mengenali variable (kita akan menyebutnya sebagai M1).

M1 memiliki tiga states yakni: q0, q1, q2 Start state / initial state q0 adalah state awal dari state transition diagram Accepted state / final state q2, dinotasikan dengan lingkaran ganda Transition: panah yang memindahkan dari state satu ke state lainnya dengan menerima simbol input Output dari mesin ini adalah accept (jika berhenti di accepted state) atau reject (jika berhenti di selain accepted states) Contoh string input (cek apakah akan diterima oleh M1) : X256, 789, 7uyt

State Transition Diagram [2] Contoh String input X256 Pertama kali, state akan masuk ke q0 secara otomatis. Kemudian membaca simbol “X” dan state berubah ke q2 membaca alphabet “2”, “5”, dan “6” berturut-turut state tetap di q2

Program Terjemahan STD State := q0 Baca symbol pertama dari string input While not End-Of-String do Case State of q0 : if CurrentSymbol adalah letter then State := q2 else if CurrentSymbol adalah digit then State := q1 else exit to error routine q1 : exit to error routine q2 : if CurrentSymbol adalah letter then State := q2 else if CurrentSymbol adalah digit then State := q2 Baca symbol berikut dari string input; End While If State <> q2 then exit to error routine

Latihan 1 Buat diagram transisi untuk mengenali penulisan bilangan Real (mesin float) dengan kriteria masukan sebagai berikut. 123459 (integer) 1234567,987 (real) 1234E (tidak valid) 1234E+ (tidak valid) 1234E56 (real) 1234E+56 (real) 1234E-56 (real)

Jawaban 1

Tabel Transisi [1] Tabel transisi : tabel dua dimensi yang menggambarkan setiap transisi pada sebuah STD. Index pada baris menyatakan daftar state Index pada kolom meyatakan daftar symbol yang mungkin muncul Penambahan 1 atribut (kolom) di paling kanan dengan label EOS yang menyatakan accept or error.

Tabel Transisi [2] Gambar di bawah merupakan tabel transisi dari mesin M1 yang sebelumnya dibahas.

Program Terjemahan Tabel Transisi State := q0 Repeat Baca symbol berikutnya dari string input Case symbol of letter : Input := “letter” digit : Input := “digit” End-of-string : Input := “EOS” else Exit to Error routine end Case State := Table[State, Input] if State = “Error” then Exit to Error routine Until State = “Accept”

Mengubah STD ke Tabel Transisi Tambahkan sejumlah n baris state yang ada di STD (n menyatakan jumlah state) Tambahkan sejumlah m kolom dari semua simbol yang mungkin muncul (m adalah jumlah simbol) Tambahkan kolom EOS di posisi paling kanan tabel Isi nilai di kolom EOS dengan “Accept” untuk baris dimana accepted states berada, isi dengan “Error” untuk selainnya Untuk setiap cell [S, X], di mana S anggota himpunan state dan X anggota dari alphabet, isikan state hasil transisi dari state S dengan menerima simbol X Isikan “Error” untuk setiap cell yang belum terisi

Contoh Studi Kasus: Controller Pintu Otomatis State diagram controller pintu otomatis (M. Sipser, 2012) Tabel Transisi controller pintu otomatis (M. Sipser, 2012) Input Signal NEITHER FRONT REAR BOTH CLOSED OPEN State

Dua state: OPEN dan CLOSE Empat macam kondisi input, yaitu FRONT : ada orang berdiri di depan pintu REAR : ada orang berdiri di belakang pintu BOTH : ada orang berdiri di depan dan belakang pintu NEITHER : tidak ada orang yang berdiri di depan maupun belakang pintu Contoh: State awal controller: CLOSE. Rangkaian input sinyal: FRONT, REAR, NEITHER, FRONT, BOTH, NEITHER, REAR, NEITHER. Rangkaian statenya? CLOSED (start), OPEN, OPEN, CLOSED, OPEN, OPEN, CLOSED, CLOSED, CLOSED.

Men-desain Finite Automata [1] Menggunakan prinsip reader as automaton (source: M. Sipser, 2012) Apa yang perlu diingat dari string yang akan dibaca?  finite state, finite memory Contoh: Misalkan dengan Σ = {0, 1}, akan dibangun FA yang menerima semua string biner dengan jumlah kemunculan ‘1’ ganjil. Maka yang diingat adalah apakah ‘1’ sudah terbaca dan sejauh ini berjumlah genap/ganjil? Hanya terdapat dua kemungkinan jumlah ‘1’, yaitu (1) sejauh ini genap atau (2) sejauh ini ganjil. Kemudian, gambarkan satu state untuk setiap kemungkinan Tuliskan transisi antar state

Men-desain Finite Automata [2] Langkah 1 dan 2 (source: M. Sipser, 2012) Langkah 3 (source: M. Sipser, 2012)

Men-desain Finite Automata [3] Tentukan initial state. Jika sejauh ini jumlah kemunculan ‘1’ adalah 0, apakah disebut genap atau ganjil? Karena genap, maka initial state ≠ accepted state Tentukan accepted/final state State yang menyimpan informasi bahwa jumlah simbol ‘1’ yang muncul adalah ganjil Langkah 4 dan 5 (source: M. Sipser, 2012)

Men-desain Finite Automata [4] Buatlah Finite Automata yang mampu mengenali semua string biner yang mengandung substring “001”. Contoh string yang diterima: 0010, 1001, 001, dan 1111001111

Hal yang perlu diingat (terdapat empat kemungkinan): belum melihat simbol apapun yang sesuai dari pola yang dicari telah melihat sebuah simbol ‘0’ telah melihat substring ‘00’ telah melihat pola substring ‘001’ Gambarkan state untuk setiap kemungkinan: q, q0, q00, dan q001 Tuliskan transisi antar state Tentukan initial state Tentukan accepted/final state

Regular Language [1] Sebuah bahasa disebut Regular Language jika ada beberapa Finite Automata yang mampu mengenalinya (recognize). Misal M = (Q, Σ, δ, q0, F) dan w = w1w2...wn sebuah string, di mana wi ∈ Σ. Maka M accept w jika sebuah sequence dari state r0, r1, ..., rn ∈ Q ada dalam kondisi berikut. r0 = q0; δ(ri, wi+1) = ri+1, for i = 0, …, n-1; dan rn  F M mengenali bahasa A jika A = {w | M accept w}.

Regular Language [2] Dari hirarki Chomsky yang dijelaskan sebelumnya, suatu bahasa dikatakan Regular jika dapat dikenali oleh suatu Finite Automata (dalam hal ini Deterministik Finite Automata). Lihat juga Teorema 1.1 di hal 39 buku 1. Contoh : Dari contoh sebelumnya, karena L(M) bisa dikenali oleh mesin FA M, maka L(M) = {w : w string biner genap atau string biner yang diakhiri oleh 0} adalah Regular Language.

Diskusi Apakah masing-masing language berikut ini termasuk Regular? L(M2) = {w : w adalah string yang menyatakan bilangan real} L(M3) = {w : w adalah string biner yang mengandung substring “111”} L(M4) = {w : w adalah string yang menyatakan ekspresi aritmetik}. Contoh : (a + b), a + (b + a), dll.

Non-Regular Language Pada saat kita mengenali pola string (a + b) atau a + (b + a), maka tidak ada satupun FA yang bisa memodelkan jenis ini. Alasan : Pada saat mengenali string dengan pola umum xnyn, maka kita harus mengingat berapa kali kemunculan simbol x, sebelum mencocokkannya dengan jumlah kemunculan simbol y. Dengan DFA, kita tidak punya tools untuk ini (yang dapat mengingat jumlah kemunculan simbol). Lihat referensi buku 1 hal 39-41. Bahasa yang seperti ini kita katakan Non-Regular Language.

Latihan 2 Ubah diagram transisi dari Mesin Float (yang sebelumnya dibangun) menjadi tabel transisi! Buat juga program terjemahan tabel transisinya (Lexical Analizer)!

Jawaban 2-a

Jawaban 2-b State := q1 Repeat Baca symbol berikutnya dari string input Case symbol of 0..9 : Input := “digit” “,”, “E”, “+”, “-” : Input := “symbol” End-of-string : Input := “EOS” else Exit to Error routine end Case State := Table[State, Input] if State = “Error” then Exit to Error routine Until State = “Accept”

Latihan 3 Buatkan State Transition Diagram dan Tabel Transisinya untuk kasus deteksi string berikut. String biner yang bernilai ganjil String biner yang bernilai genap Kemunculan substring “111” pada string biner Kemunculan substring “0101” pada string biner Bagian leksik yang mengenali kemunculan string “:=“, sekaligus Angka, dan sekaligus variabel

Jawaban 3-a: Mesin biner ganjil Mesin terdiri dari dua state : q0 dan q1 Karakter input : 0, 1 Lihat bahwa accepted state selalu menerima karakter 1 Contoh string yang dikenali mesin ini antara lain: 100001, 1111111, 0000001, dan sebagainya

Jawaban 3-b: Mesin biner genap Contoh string yang diterima mesin ini antara lain: 0, 00, 10, 1111110, 000000010, dan sebagainya

Jawaban 3-c: Mesin biner “111” Contoh string yang diterima mesin ini adalah 111, 1111110, 000001110, dan sebagainya

Jawaban 3-d: Mesin biner “0101” Contoh string yang diterima mesin ini adalah 0101, 000101, 000001010, 1111110101111, dan sebagainya

Jawaban 3-e: Mesin “:=”, angka, dan variabel

Latihan 4 Syarat yang harus dipenuhi oleh suatu diagram transisi adalah : Terdapat busur yang menyatakan transisi antar state Minimal 1 Initial State Maximal 1 Final State Fully Defined Tidak ada jawaban benar

Tugas Membaca Cari definisi Deterministic Finite Automata dan Non- Deterministic Finite Automata! Bandingkan antara keduanya dan cari perbedaannya!