Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pertemuan 3 Finite Automata

Presentasi serupa


Presentasi berjudul: "Pertemuan 3 Finite Automata"— Transcript presentasi:

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

2 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

3 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 -

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

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

6 Konsep dalam Teori Otomata (lanjutan)
Panjang dari string adalah banyaknya posisi untuk simbol dalam string. Contoh, memiliki panjang 5. Umumnya panjang dari string adalah banyaknya simbol dalam string. Pernyataan tersebut tidak sepenuhnya benar, sebagai contoh terdapat 2 simbol dalam string 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.

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

8 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 .

9 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  ...

10 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  ... * = +  {}.

11 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 = dan y = 110, maka xy = dan yx = Untuk suatu string w, persamaan w = w = w dipenuhi. Bahwa  adalah identitas untuk perangkaian.

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

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

14 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, , ...} Himpunan string-string dari 0 dan 1 dengan banyaknya 0 sama dengan banyaknya 1. {, 01, 10, 0011, 0101, } 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   {}

15 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}

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

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

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

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

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

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

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

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

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

25 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

26 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 .

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

28 Contoh 2 Diagram transisi untuk DFA dalam Contoh 1 adalah

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

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

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

32 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

33 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,

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

35 Contoh 4 (lanjutan) Pemrosesan input :

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

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

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


Download ppt "Pertemuan 3 Finite Automata"

Presentasi serupa


Iklan oleh Google