Pertemuan 3 Finite Automata

Slides:



Advertisements
Presentasi serupa
Teori Bahasa dan Automata
Advertisements

Review Materi Widodo.com
Pertemuan 7 FINITE AUTOMATA DENGAN OUTPUT
Teori Bahasa dan Automata
Teori Bahasa dan Otomata 2 sks
Ekuivalensi NDFA ke DFA dan NDFA dengan E-move
Pertemuan 4 Finite Automata
Pertemuan 14 Pengantar ke Mesin Turing
Pertemuan 6 Ekspresi dan Bahasa Regular
Session 10 Context-free grammar
Pertemuan 12 Bentuk Normal untuk Grammar Bebas Konteks
Pertemuan 9 Sifat-sifat Bahasa Regular
Teori Bahasa dan Automata
SUATU FINITE STATE AUTOMATA
Pertemuan 11 PUSH DOWN AUTOMATA (PDA)
Oleh: BAGUS ADHI KUSUMA, ST
MODUL 9 -move Gambar 20. Mesin NFA HUBUNGAN ANTARA
-move Gambar 20. Mesin NFA HUBUNGAN ANTARA
Pertemuan 3 Konversi NFA - DFA dan Konversi ε-NFA - DFA
REGULAR EXPRESSION Yenni Astuti Version
Session 11 Parse Tree, Application of Parse Tree, and Ambiguity
Session 12 Pushdown Automata
Pertemuan 4 Non Deterministic Finite Automaton (NFA)
Pertemuan 2 Konsep dalam Teori Otomata dan Pembuktian Formal
Session 5 Finite Automata
BAB II FINITE STATE AUTOMATA.
Teori Bahasa & OTOMATA.
Pertemuan 2 FINITE AUTOMATA (DFA & NFA)‏
OTOMATA HINGGA.
Session 7 Regular Expression and Language
BAB II FINITE STATE AUTOMATA.
BAB II FINITE STATE AUTOMATA.
BAB V EKSPRESI REGULER 1. Penerapan Ekspresi Reguler
PUSHDOWN AUTOMATA & TURING MACHINE
Pertemuan 3 BAHASA REGULAR
BAB V EKSPRESI REGULER 1. Penerapan Ekspresi Reguler
TEORI BAHASA DAN AUTOMATA
BAB II FINITE STATE AUTOMATA.
BAB II FINITE STATE AUTOMATA.
Pertemuan 3 FINITE AUTOMATA
Teori Bahasa dan Automata
2. Mesin Turing (Bagian 2) IF5110 Teori Komputasi Oleh: Rinaldi Munir
Non Deterministic Finite Automata dengan є – Move
NDFA dengan ε-Move CSG3D3 | Teori Komputasi Agung Toto Wibowo
FINITE STATE AUTOMATA (FSA)
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)
TEORI BAHASA DAN AUTOMATA TATA BAHASA LEVEL BAHASA
Program Studi Teknik Informatika STMIK AMIKOM Purwokerto
ATURAN PRODUKSI TATA BAHASA REGULER
OTOMATA DAN TEORI BAHASA FORMAL
OTOMATA DAN TEORI BAHASA FORMAL
OTOMATA DAN TEORI BAHASA FORMAL
BAB II FINITE STATE AUTOMATA.
OTOMATA DAN TEORI BAHASA 2
Finite State Automata ♦ model matematika yang dapat menerima input dan mengeluarkan output ♦ Memiliki state yang berhingga banyaknya dan dapat berpindah.
Pertemuan 4 Non Deterministic Finite Automaton (NFA)
Pertemuan3.
Ekuivalensi NFA KE DFA *YANI*.
2. Mesin Turing (Bagian 2) IF5110 Teori Komputasi Oleh: Rinaldi Munir
Teori Bahasa dan Automata
OTOMATA DAN TEORI BAHASA FORMAL
Pertemuan4.
Tinjauan Instruksional Khusus:Mahasiswa akan dapat menjelaskan cara kerja Deterministic Finite Automata (DFA),Non-Deterministic Finite Automata (NDFA),Non.
Pushdown Automata (PDA)
MESIN TURING. TEST KOMPETENSI Ni nomor berapakah mobil ini parkir?
Transcript presentasi:

Pertemuan 3 Finite Automata Teori Bahasa dan Otomata (KOM208) SKS: 3(3-0)

TIK dan Waktu Penyajian Tinjauan Instruksional Khusus: Mahasiswa akan dapat menjelaskan cara kerja Deterministic Finite Automata (DFA), Non-Deterministic Finite Automata (NDFA), Non deterministic Finite Automata (NFA) dengan transisi ε. Waktu penyajian: 3 x 150 menit

Subtopik Overview: Alfabet, string dan bahasa DFA: Definisi DFA, Bagimana DFA memproses string, Notasi-notasi untuk DFA, Fungsi transisi yang diperluas, Bahasa dari DFA NFA: Definisi NFA, Bagimana NFA memproses string, Fungsi transisi yang diperluas, Bahasa dari NFA, Ekuivalensi DFA dan NFA ε-NFA: Penggunaan transisi-ε, Notasi formal untuk ε-NFA, Epsilon-Closure, Fungsi transisi yang diperluas dan bahasa untuk ε-NFA, Mengeliminasi Transisi -

Konsep dalam Teori Otomata Alphabet Sebuah alphabet adalah himpunan berhingga dan tak kosong dari simbol. Alphabet disimbolkan oleh . Contoh:  = {0, 1} alphabet biner  = {a, b,..., z}, himpunan semua huruf kecil. Himpunan semua karakter ASCII.

Konsep dalam Teori Otomata (lanjutan) String Sebuah string (atau word) adalah deretan simbol berhingga yang dipilih dari alphabet. Contoh : 011011 dan 1111 adalah string dari alphabet biner  = {0, 1}. String kosong adalah string dimana tidak ada kemunculan simbol. String tersebut dinotasikan oleh .

Konsep dalam Teori Otomata (lanjutan) Panjang dari string adalah banyaknya posisi untuk simbol dalam string. Contoh, 01101 memiliki panjang 5. Umumnya panjang dari string adalah banyaknya simbol dalam string. Pernyataan tersebut tidak sepenuhnya benar, sebagai contoh terdapat 2 simbol dalam string 01101 yaitu 0 dan 1, tetapi terdapat 5 posisi untuk simbol, dan panjangnya adalah 5. Notasi standar untuk panjang string w adalah |w|. Contoh: |011| = 3 dan || = 0.

Konsep dalam Teori Otomata (lanjutan) x adalah sebuah substring dari string lain y jika ada string w dan z, keduanya dapat berupa string kosong, sedemikian sehingga y = wxz. Sebagai contoh, car adalah substring dari carry, car, vicar.

Konsep dalam Teori Otomata (lanjutan) Pangkat dari Alphabet Jika  adalah alphabet, dapat dinyatakan himpunan dari semua string dengan panjang tertentu dari alphabet tersebut dengan menggunakan notasi eksponensial. Kita mendefinisikan k sebagai himpunan dari string dengan panjang k, setiap string tersebut memiliki simbol dalam .

Konsep dalam Teori Otomata (lanjutan), Contoh 9 Perhatikan bahwa 0 = {}, untuk alphabet apapun. Bahwa  adalah string yang memiliki panjang 0. Jika  = {0, 1} maka 1 = {0, 1} 2 = {00, 01, 10, 11} 3 = {000, 001, 010, 011, 100, 101, 110, 111} dan seterusnya. Semua string pada alphabet  dinotasikan *. Contoh: {0,1}* = {, 0, 1, 00, 01, 10, 11, 000, ...} dan * = 0  1  2  ...

Konsep dalam Teori Otomata (lanjutan) Kadang-kadang kita tidak ingin memasukkan string kosong dalam himpunan string. Himpunan string-string tak kosong dari alphabet  dinotasikan +. Dengan demikian : + = 1  2  3  ... * = +  {}.

Konsep dalam Teori Otomata (lanjutan) Perangkaian String (concatenation) Misalkan x dan y adalah string, maka xy menyatakan perangkaian dari x dan y, bahwa string dibentuk dengan membuat salinan dari x dan diikuti oleh salinan dari y. Jika x adalah string yang disusun oleh i simbol, x = a1a2 ... ai dan y adalah string yang disusun oleh j simbol, y = b1b2 ... bj maka xy adalah string dengan panjang i + j, xy = a1a2 ... aib1b2 ... bj Contoh: x = 01101 dan y = 110, maka xy = 01101110 dan yx = 11001101. Untuk suatu string w, persamaan w = w = w dipenuhi. Bahwa  adalah identitas untuk perangkaian.

Konsep dalam Teori Otomata (lanjutan) Bahasa Himpunan string-string yang semuanya dipilih dari *, dimana  adalah alphabet, dan L  *, maka L adalah bahasa pada . Perhatikan bahwa bahasa pada  tidak harus meliputi string-string dengan semua simbol dari . Dengan demikian, jika L adalah bahasa pada , diketahui bahwa L adalah bahasa pada alphabet yang merupakan superset dari . Bahasa umum dapat dipandang sebagai himpunan dari string.

Konsep dalam Teori Otomata (lanjutan), Contoh 10 Bahasa Inggris, yang merupakan koleksi dari kata-kata dalam bahasa Inggris yang benar. Kata-kata tersebut merupakan string pada alphabet yang mengandung semua huruf. Bahasa C atau bahasa pemrograman lainnya. Dalam bahasa tersebut, program yang benar adalah subset dari string-string yang mungkin yang dibentuk dari alphabet. Alphabet tersebut adalah subset dari karakter-karakter ASCII.

Konsep dalam Teori Otomata (lanjutan) Contoh bahasa dalam teori otomata: Bahasa dari semua string yang berisi n buah 0 dan diikuti oleh n buah 1, untuk n  0: {, 01, 0011, 000111, ...} Himpunan string-string dari 0 dan 1 dengan banyaknya 0 sama dengan banyaknya 1. {, 01, 10, 0011, 0101, 1001 ...} Himpunan bilangan biner yang memiliki nilai prima {10, 11, 101, 111, 1011, ...} * adalah bahasa untuk alphabet   adalah bahasa kosong, merupakan bahasa pada suatu alphabet. {}, bahasa yang hanya mengandung string kosong, juga merupakan bahasa pada suatu alphabet. Perhatikan bahwa   {}

Contoh 11 Berikut adalah contoh bahasa pada  = {a, b}: L1 = {, a, aa, aab} L2 = {x  {a, b}* |x| ≤ 8} L3 = {x  {a, b}* |x| adalah ganjil} L4 = {x  {a, b}* na(x) ≥ nb(x)} L5 = {x  {a, b}* |x| ≥ 2, x diawali dan diakhiri dengan b}

Notasi lain dari Bahasa (1) Berdasarkan string-string yang dikonstruksi di dalamnya. Contoh: L1 = {ab, bab}*  {b}{bb}* 2. Sifat atau karakteristik dari string dalam L, Contoh: L = {byb y  {a, b}*}. 3. Definisi rekursif Contoh: Definisi rekursif dari L*:   L* Untuk suatu x  L* dan suatu y  L, xy  L* Tidak ada string dalam L* selain yang diperoleh menggunakan aturan 1 dan 2.

Notasi lain dari Bahasa (2) Definisi rekursif untuk bahasa pal dari string-string palindrom pada :   pal Untuk suatu a  , a  pal Untuk suatu x  , dan suatu a  , axa a  pal Tidak ada string dalam pal selain yang diperoleh menggunakan aturan 1, 2 dan 3.

Notasi lain dari Bahasa (3) Definisi rekursif dari bahasa (LAE) yang string-string di dalamnya berupa ekspresi aljabar dengan tanda kurung penuh (sepasang) untuk setiap operator dengan  = {i, (, ), +, }. i  LAE Untuk suatu x, y  LAE, (x+y) dan (xy) adalah anggota dari LAE. Tidak ada string dalam LAE selain yang diperoleh menggunakan aturan 1 dan 2. Contoh string dalam bahasa tersebut: i, (i+i), (ii), ((i+i)i), ((i(ii))+i).

Perangkaian Bahasa Jika L1 dan L2 adalah bahasa, L1 dan L2  *. Perangkaian dari L1 dan L2 dinotasikan L1L2 = {xy | x  L1 dan y  L2}. Sebagai contoh, {hope, fear}{less, fully} = {hopeless, hopefully, fearless, fearfully}. Untuk L adalah bahasa, L{} = {}L karena untuk setiap x  L, x = x = x.

Pendahuluan Sebuah Finite Automata (FA) memiliki sebuah himpunan dari state dan kontrolnya yang bergerak dari state ke state sebagai respon dari adanya input eksternal. FA dibedakan ke dalam dua kelas, yaitu Deterministic FA (DFA), yaitu FA yang tidak dapat berada pada lebih dari satu state pada suatu waktu. Non Deterministic FA (NFA), yaitu FA yang dapat berada pada beberapa state pada waktu yang bersamaan. Pada DFA, dari suatu state ada tepat satu state berikutnya untuk setiap input eksternal yang diterima. Sedangkan pada NFA, untuk setiap pasangan state input kita bisa memiliki 0 atau lebih pilihan ke state berikutnya.

Deterministic Finite Automata (DFA) Deterministic Finite Automata (DFA) akan berada pada suatu state tunggal setelah pembacaan dari serangkaian input. Istilah “deterministic” menunjuk kepada fakta bahwa pada setiap input terdapat satu dan hanya satu state yang dituju oleh automata dari state tertentu.

Definisi DFA Suatu DFA terdiri dari : Sebuah himpunan berhingga dari state dinotasikan Q. Sebuah himpunan berhingga dari simbol input, dinotasikan . Fungsi transisi yang memiliki argumen sebuah state dan sebuah simbol input, serta mengembalikan sebuah state, biasanya dinotasikan sebagai . Untuk q  Q dan a   : Q    Q dan (q,a) menyatakan state kemana DFA bergerak. Dalam bentuk graf,  direpresentasikan oleh arc antara state dan label pada arc. Jika q adalah state, dan a adalah simbol input, maka (q,a) adalah state p sedemikian sehingga terdapat sebuah arc yang diberi label a dari q ke p.

Definisi DFA (2) A : Nama dari DFA Q : Himpunan state Sebuah state awal (start state), merupakan salah satu dari state-state dalam Q. Sebuah himpunan dari final state F. Himpunan F adalah subset dari Q. DFA seringkali dinotasikan sebagai sebuah tuple 5 elemen A = (Q, , , q0, F), dimana A : Nama dari DFA Q : Himpunan state  : Simbol-simbol input  : Fungsi transisi q0: Start state F : Himpunan accepting state.

Pemrosesan String oleh DFA Anggaplah a1, a2, ..., an adalah sebuah rangkaian dari simbol input. Dengan berawal dari start state , dengan dibacanya simbol input a1, DFA menuju state q1. Sehingga (q0, a1) = q1. Selanjutnya DFA memproses simbol input selanjutnya, yaitu a2, dengan mengevaluasi (q1, a2) = q2. Dengan cara yang sama DFA akan memasuki state q3, q4, ..., qn, sehingga (qi-1, ai) = qi untuk setiap i. Jika qn  F maka input a1, a2, ..., an diterima dan jika qn  F maka input a1, a2, ..., an ditolak. Bahasa dari DFA adalah semua string yang diterima oleh DFA tersebut.

Contoh 1 DFA berikut menerima semua string dari para 0 dan para 1 yang memiliki urutan 01 pada suatu tempat dalam string: A = ({q0, q1, q2}, {0, 1}, , q0, {q1}) dimana  (q0, 0) = q2 (q0, 1) = q0 (q2, 0) = q2 (q2, 1) = q1 (q1, 0) = (q1, 1) = q1

Notasi untuk DFA Selain dinyatakan dalam tuple 5-elemen, DFA dapat dinyatakan menggunakan Diagram transisi, yaitu graf yang terdiri dari node dan arc Tabel transisi, yaitu daftar tabular dari fungsi .

Tabel Transisi Tabel transisi menyatakan himpunan dari state dan alphabet input. Sebuah diagram transisi untuk suatu DFA A = (Q, , , q0, F) adalah sebuah graf yang didefinisikan sebagai berikut: Untuk setiap state dalam Q, terdapat sebuah node. Untuk setiap q  Q dan setiap simbol input a  , misalkan (q,a) = p. Maka diagram transisi memiliki sebuah arc dari node q ke node p, diberi label a. Jika terdapat beberapa simbol input yang menyebabkan transisi dari q ke p, maka diagram transisi dapat memiliki suatu arc, yang diberi label berupa daftar dari simbol-simbol input tersebut. Terdapat sebuah tanda panah menuju start state q0, yang diberi label start. Tanda panah tersebut tidak berasal dari state-state lain. Node yang menyatakan final state (yaitu dalam F) diberi tanda oleh lingkaran ganda. State yang bukan dalam F memiliki sebuah lingkaran tunggal.

Contoh 2 Diagram transisi untuk DFA dalam Contoh 1 adalah

Contoh 3  Tabel transisi untuk fungsi  pada Contoh 2 adalah 1  q0 q2 * q1 Start state diberi tanda dengan sebuah arah panah, dan final state diberi tanda dengan sebuah tanda bintang.

Perluasan Fungsi Transisi untuk String (1) Secara informal DFA menyatakan sebuah bahasa, yaitu himpunan string yang diperoleh dalam urutan transisi state dari start state ke final state. Dalam diagram transisi, bahasa dari sebuah DFA adalah himpunan label sepanjang semua path dari start state ke final state. Fungsi transisi yang diperluas menjelaskan apa yang terjadi pada DFA ketika proses berawal pada suatu state dan mengikuti rangkaian input.

Perluasan Fungsi Transisi untuk String (2) Jika  adalah fungsi transisi, maka fungsi transisi yang diperluas yang dikonstruksi dari  dinotasikan Fungsi transisi yang diperluas dari sebuah fungsi yang mengambil state q dan sebuah string w dan mengembalikan state p. State p adalah state yang dicapai oleh FA ketika berawal dari state q dan memproses rangkaian input w.

Perluasan Fungsi Transisi untuk String (3) Definisikan dengan induksi pada panjang string input sebagai berikut Basis : yang berarti jika FA berada dalam state q dan membaca tidak ada input, FA tetap dalam state q. Induksi : Anggap w adalah string dengan bentuk xa, a adalah simbol terakhir dari w, dan x adalah string yang berisi semua simbol, kecuali simbol terakhir. Contoh : w= 1101 dipisahkan ke dalam x = 110 dan a = 1, maka

Perluasan Fungsi Transisi untuk String (4) Untuk menghitung pertama hitung (adalah state dimana FA selesai memproses semua simbol kecuali simbol terakhir dalam w). Anggaplah state tersebut adalah p, = p Maka adalah state yang diperoleh dengan membuat transisi dari state p pada input a (simbol terakhir dari w). Atau,

Contoh 4 DFA berikut menerima bahasa berikut L = ww memiliki jumlah para 0 dan para 1 yang masing-masing adalah genap

Contoh 4 (lanjutan) Pemrosesan input 110101:

Bahasa dari Sebuah DFA Bahasa dari sebuah DFA, A = (Q, , , q0, F), dinotasikan L(A) didefinisikan oleh Dengan demikian bahasa dari A adalah himpunan string w yang berawal dari state awal q0 ke suatu accepting state. Jika L adalah L(A) untuk suatu DFA A, maka dikatakan L adalah bahasa regular.

Contoh 5 Diberikan DFA dengan diagram transisi berikut String w1 = abb diterima oleh DFA melalui kalkulasi berikut: Karena q2 dalam F = {q2}, maka string w1 = abb dalam L(A).

Daftar Pustaka John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. 2001. Introduction to Automata Theory, Languange, and Computation. Edisi ke-2. Addison-Wesley.