Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Diagram dan Tabel Transisi

Presentasi serupa


Presentasi berjudul: "Diagram dan Tabel Transisi"— Transcript presentasi:

1 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

2 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.

3 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

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

5 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).

6 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

7 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

8 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

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

10 Jawaban 1

11 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.

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

13 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”

14 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

15 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

16 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.

17 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

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

19 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)

20 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

21 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

22 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}.

23 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.

24 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.

25 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 Bahasa yang seperti ini kita katakan Non-Regular Language.

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

27 Jawaban 2-a

28 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”

29 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

30 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: , , , dan sebagainya

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

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

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

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

35 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

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

37


Download ppt "Diagram dan Tabel Transisi"

Presentasi serupa


Iklan oleh Google