teori bahasa automata
DESCRIPTION
dTRANSCRIPT
![Page 1: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/1.jpg)
TEORI BAHASA AUTOMATA
412013024 – Yunita Kristyanti
![Page 2: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/2.jpg)
Chapter 1
![Page 3: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/3.jpg)
Teori Automata mempelajari tentang mekanisme komputer abstrak atau mesin abstrak yang dapat didefinisikan secara matematis.
Tujuan utama adalah mendefinisikan: • apa yang bisa dilakukan oleh komputer dan apa yang tidak• bagaimana komputasi dilakukan
Teori ini dapat mengenali(recognize), menerima(accept),atau membangkitkan(generate) sebuah kalimat dalam bahasa tertentu .
Tipe paling sederhana dari mesin abstrak adalah finite automaton atau finite state machine. Prinsip yang mendasari mesin ini adalah sistem pada setiap saat dalam salah satu dari sejumlah state berhingga dan bergerak diantara state-state tersebut dalam merespon sinyal input individual.
![Page 4: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/4.jpg)
Why Study Automata Theory ?
Finite automata merupakan suatu model yang sangat bermanfaat, berikut beberapa contoh bagaimana konsep ini dipergunakan:
• Software untuk perancangan dan pemeriksaan prilaku sirkuit digital (Circuitsdigitalbehaviour).
•Lexical analyzer sebuah compiler yang merupakan komponen dari compiler yang membagi/memecah teks input menjadi beberapa unit logikal seperti identifier ,keyword, atau pun tanda baca.
•Software untuk pencarian urutan kata , phrase ataupun pola lainnya, untuk scanning sekumpulan text seperti halaman Web
•Software untuk verifikasi semua jenis sistem yang memiliki sejumlah hingga state, seperti communication protocol atau protokol untuk keamanan pertukaran informasi.
![Page 5: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/5.jpg)
Contoh 1 Model FA Sederhana Model switch on/off mengingat apakah
switch berada dalam state “on” atau state “off”. off on
Push
Push•Model memungkinkan user untuk menekan tombol yang memiliki pengaruh berbeda tergantung pada keadaan switch:
– Jika switch berada dalam state “off” maka setelah tombol ditekan state berubah menjadi “on”.
– Jika switch berada dalam state “on” maka setelah tombol ditekan state berubah menjadi “off”.
![Page 6: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/6.jpg)
Komponen dalam FA State dinyatakan oleh lingkaran, dalam Contoh 1 state
diberi nama “on” dan “off”. Arc diantara state diberi label “input “ yang menyatakan
pengaruh eksternal pada sistem. Dalam Contoh 1 kedua arc diberi label ‘push” yang
menyatakan user menekan tombol tertentu. Start state atau initial state merupakan state dimana
sistem berada dalam keadaan awal. Dalam Contoh 1 start state adalah off. Selanjutnya, start state ditunjukan oleh kata start dan
panah menuju start state tersebut. Final atau accepting state.
Dalam Contoh 1 state on dinyatakan sebagai final state. Selanjutnya, final State dinyatakan dalam lingkaran
ganda.
![Page 7: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/7.jpg)
Contoh 2 Model FA Sederhana•FA untuk mengenali kata “then” •dapat dinyatakan sebagai bagian dari lexical analyzer.
t th the thent h e n
Input dinyatakan oleh huruf. Start state merupakan string kosong Setiap state memiliki transisi pada huruf selanjutnya dari
kata then ke state yang menyatakan prefix selanjutnya yang lebih besar.
State “then” adalah accepting state.
![Page 8: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/8.jpg)
Grammar◦Grammar seringkali digunakan dalam perancangan
perangkat lunak yang memproses data dengan struktur rekursif.
◦Grammar digunakan dalam salah satu komponen kompilator yaitu parser yang bekerja dengan struktur rekursif dari bahasa pemograman seperti operasi aritmatika, dan kondisional.
◦Sebagai contoh aturan gramatikal
E E + E
◦menyatakan bahwa ekspresi dapat dibentuk dari dua ekspresi yang dihubungkan dengan tanda +.
![Page 9: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/9.jpg)
Ekspresi regular (1)
◦Ekspresi regular menyatakan struktur dari data, khususnya string teks. Contoh:
[A – Z][a – z]*[ ] [A – Z] [A – Z]
◦menyatakan kata-kata yang diawali huruf kapital yang diikuti oleh spasi dan 2 huruf kapital.
◦Ekspresi tersebut mengenali/menerima kata-kata, diantaranya Ithaca NY, It NY, I NY
◦Ekspresi tersebut tidak menerima kata-kata berikut ITHACA NY,
Ithaca, ithaca NY, Ithaca ny, Ithaca23 NY, Ithaca 1Y, Palo Alto CA
![Page 10: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/10.jpg)
Ekspresi Regular (2)
◦Perhatikan ekspresi berikut
([A – Z][a – z]*[ ])*[ ] [A – Z] [A – Z]
◦Ekspresi tersebut menerima kata-kata, diantaranya Palo Alto CA, Ithaca NY, I Thaca NY, Palo A CA
◦Ekspresi tersebut tidak menerima kata-kata: Palo Alto, palo Alto CA, Palo AltoCA
![Page 11: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/11.jpg)
Ekspresi Regular (3)◦Dalam kedua ekspresi yang diberikan,
◦[A – Z] menyatakan range karakter dari huruf kapital “A” ke “Z”◦[ ] menyatakan karakter blank◦simbol * menyatakan “sejumlah” ekspresi yang mendahului◦Tanda kurung digunakan untuk mengelompokkan komponen-
komponen dari ekspresi. Tanda kurung tidak menyatakan karakter dalam teks.
![Page 12: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/12.jpg)
Pembuktian Deduktif (1)◦Pembuktian deduktif terdiri dari serangkaian pernyataan yang memiliki kebenaran.
◦Pembuktian tersebut berawal dari pernyataan awal yang dinamakan hipotesis (H) menuju penyataan kesimpulan (C).
◦Setiap langkah dalam pembuktian merupakan ◦Prinsip logika yang diterima ◦Fakta yang diberikan◦Pernyataan sebelumnya dalam pembuktian deduktif ◦Kombinasi dari ketiga bentuk tersebut.
![Page 13: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/13.jpg)
Pembuktian Deduktif (1)◦Hipotesa dapat bernilai benar atau salah, khususnya tergantung pada nilai parameternya. ◦Biasanya hipotesa terdiri dari beberapa pernyataan yang independen yang dihubungkan oleh operator logika AND.◦Teorema yang dibuktikan dari hipotesa H untuk kesimpulan C ditulis dalam pernyataan
IF H THEN C. ◦Contoh 3: pernyataan berikut dapat dibuktikan benar:
Jika x 4 maka 2x x2
![Page 14: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/14.jpg)
Contoh ◦Buktikan bahwa teorema berikut benar
Jika x adalah penjumlahan dari kuadrat dari empat integer positif, maka 2x x2
◦Bukti:
Langkah Pernyataan Justifikasi
1 x = a2 + b2 + c2 + d2 Diberikan
2 a 1, b 1, c 1, d 1 Diberikan
3 a2 1, b2 1, c2 1, d2 1 (2) dan sifat aritmatika
4 x 4 (1), (3) dan sifat aritmatika
5 2x x2 Pernyataan dalam Contoh 1.3
![Page 15: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/15.jpg)
Pembuktian Deduktif (2)◦Dalam pembuktian pada Contoh 3 dan 4, digunakan aturan logika modus ponens, yaitu jika diketahui H benar dan diketahui kita simpulkan bahwa C benar
“IF H benar THEN C benar”
◦Bentuk “IF H THEN C” dalam teorema sering kali dinyatakan dalam bentuk lain seperti
H implies C, H only IF C, C IF H
◦Notasi lain untuk “IF H THEN C” adalah H C.
![Page 16: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/16.jpg)
Pembuktian Deduktif (3)◦Bentuk lain yang sering dijumpai adalah “A IF and only IF B”. Bentuk lain dari pernyataan ini adalah ◦“A IFF B” ◦A ekuivalen dengan B
◦Bentuk “A IFF B” terdiri dari dua pernyataan IF:
“IF A then B” and “IF B then A”.
◦Untuk membuktikan pernyataan tersebut benar, kita harus membuktikan 2 pernyataan berikut:◦“IF B then A” dan ◦“IF A then B”
![Page 17: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/17.jpg)
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.
![Page 18: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/18.jpg)
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 .
![Page 19: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/19.jpg)
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.
![Page 20: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/20.jpg)
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.
![Page 21: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/21.jpg)
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 .
![Page 22: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/22.jpg)
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 ...
![Page 23: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/23.jpg)
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 ... * = + {}.
![Page 24: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/24.jpg)
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.
![Page 25: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/25.jpg)
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.
![Page 26: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/26.jpg)
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.
![Page 27: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/27.jpg)
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 {}
![Page 28: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/28.jpg)
Contoh
Berikut adalah contoh bahasa pada = {a, b}:
1.L1 = {, a, aa, aab}
2.L2 = {x {a, b}* |x| ≤ 8}
3.L3 = {x {a, b}* |x| adalah ganjil}
4.L4 = {x {a, b}* na(x) ≥ nb(x)}
5.L5 = {x {a, b}* |x| ≥ 2, x diawali dan diakhiri dengan b}
![Page 29: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/29.jpg)
Notasi lain dari Bahasa (1)
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.
![Page 30: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/30.jpg)
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.
![Page 31: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/31.jpg)
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 (xy) 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), (ii), ((i+i)i), ((i(ii))+i).
![Page 32: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/32.jpg)
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.
![Page 33: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/33.jpg)
Chapter 2
![Page 34: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/34.jpg)
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 : 1. Deterministic FA (DFA) , yaitu FA yang tidak dapat berada pada lebih dari satu state pada suatu
waktu2. 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.
![Page 35: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/35.jpg)
Deterministic Finite Automata (DFA)
• Deterministic Finite Automata (DFA) akan berada pada suatu state tunggal setelah pembacaan dari serangkaian input .
• Istilah “deterministic” menunjukkan kepada fakta bahwa pada setiap input terdapat satu dan hanya satu state yang dituju oleh automata dari state tertentu.
![Page 36: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/36.jpg)
Definisi DFA Suatu DFA terdiri dari :1. Sebuah himpunan berhingga dari state dinotasikan Q.2. Sebuah himpunan berhingga dari simbol input, dinotasikan .3. 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.
![Page 37: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/37.jpg)
4. Sebuah state awal (start state), merupakan salah satu dari state-state dalam Q.
5. 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 DFAQ : Himpunan state : Simbol-simbol input : Fungsi transisi
q0: Start state F : Himpunan accepting state.
![Page 38: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/38.jpg)
Nondeterministic Finite Automata ◦Perbedaan antara DFA dan NFA adalah dalam bentuk . ◦Untuk NFA, adalah fungsi yang memiliki argumen sebuah state dan sebuah simbol (seperti dalam DFA), tetapi mengembalikan himpunan dari nol, satu atau lebih state.
![Page 39: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/39.jpg)
Contoh ◦Gambar berikut adalah sebuah NFA yang menerima string yang terdiri dari 0 dan 1
dan diakhiri oleh 01.
0q 1q0 1
0,1
start2q
![Page 40: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/40.jpg)
Definisi NFA
Sebuah NFA dinyatakan sebagai sebuah tuple 5 elemen, yaitu A = (Q, , , q0, F), dimana :
1. Q : Sebuah himpunan berhingga dari state-state2. : Sebuah himpunan berhingga dari simbol-simbol input
3. q0 : Sebuah start state q0 Q4. F : Sebuah himpunan final state, F Q5. : Fungsi transisi yang memiliki argumen sebuah state dalam Q dan sebuah
simbol input dalam dan mengembalikan sebuah himpunan bagian dari Q.
![Page 41: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/41.jpg)
◦NFA dalam Contoh 6 dapat dinyatakan
A = ({q0, q1, q2}, {0, 1}, , q0, {q2})
dengan fungsi transisi :
0 1
q0 {q0, q1} {q0}
q1 {q1}
* q2
Jika tidak terdapat transisi dari state tertentu untuk simbol input yang diberikan, fungsi transisi mengembalikan himpunan kosong, dinotasikan
![Page 42: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/42.jpg)
Fungsi Transisi yang Diperluas ◦Definisi fungsi transisi yang diperluas ( ) untuk sebuah fungsi transisi () dari NFA:
◦Basis: (q,) = {q}. Yaitu, tanpa membaca simbol input, NFA tidak berubah. NFA berada dalam state pada saat mulai membaca input.
◦ Induksi: Anggap bahwa w berbentuk w = xa, dimana a adalah simbol terakhir dari w dan x adalah simbol-simbol lain dalam w selain simbol terakhir. Anggap bahwa
(q,x) = {p1, p2, ..., pk}, dan misalkan
◦Maka (q,w) = {r1, r2, ..., rm}
k
1im21i r,...,r,ra,p
![Page 43: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/43.jpg)
Bahasa dari NFA ◦ Jika A = (Q, , , q0, F) adalah sebuah NFA, maka
◦Artinya bahwa, L(A) adalah himpunan dari string-string dalam * sedemikian sehingga (q0,w) mengandung sedikitnya satu accepting state.
Fw,qwAL 0
![Page 44: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/44.jpg)
Ekuivalensi dari DFA dan NFA (1)◦Dalam banyak kasus lebih mudah membuat NFA yang menerima bahasa
tertentu daripada DFA yang menerima bahasa yang sama.
◦Akan tetapi semua bahasa yang dapat dijelaskan oleh NFA juga dapat dijelaskan oleh DFA.
◦Bukti bahwa DFA dapat mengerjakan apa yang dikerjakan oleh NFA melibatkan “ konstruksi subset”, yaitu mengkonstruksi semua subset dari state-state NFA.
![Page 45: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/45.jpg)
Ekuivalensi dari DFA dan NFA (2)
◦ Konstruksi subset bermula dari sebuah NFA, N = (QN, , N, q0, FN).
◦ Tujuannya adalah ingin ditentukan deskripsi dari DFA D = (QD, , D,
{q0}, FD) sedemikian sehingga L(D) = L(N).
◦ Perhatikan bahwa alphabet input untuk N dan D sama yaitu , dan start state dari D adalah himpunan yang hanya mengandung start state dari N.
![Page 46: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/46.jpg)
Ekuivalensi dari DFA dan NFA (3)◦Komponen/elemen lain dikonstruksi sebagai berikut:◦QD adalah himpunan dari himpunan bagian (subset) dari QN, yaitu QD adalah himpunan
kuasa (power set) dari QN. Jika QN memiliki n state, maka QD mempunyai 2n state.
◦Seringkali tidak semua dari state-state ini dapat diakses dari start state dari QD.
◦State-state yang tidak dapat diakses dapat dibuang, sehingga banyaknya state-state dari D dapat lebih sedikit dari 2n.
![Page 47: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/47.jpg)
Ekuivalensi dari DFA dan NFA (4)
◦FD adalah himpunan dari subset-subset S dari QN sedemikian sehingga S FN , bahwa FD adalah semua himpunan-himpunan dari state-state N yang mengandung sedikitnya accepting state dari N.◦Untuk setiap S QN dan untuk setiap simbol input a,
◦bahwa untuk menghitung D(S, a), kita lihat semua state-state p dalam S, selanjutnya ditentukan state yang dituju state N dari p pada input a, dan ambil union dari semua state-state tersebut.
SdalamPND a,pa,S
![Page 48: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/48.jpg)
Lazy evaluation (1) ◦Untuk menghindari langkah untuk membuat elemen-elemen dari tabel transisi
yang memerlukan waktu eksponensial untuk setiap subset dari state-state.
◦Caranya:◦Basis: singleton set yang hanya berisi start state dari N dapat diakses.◦ Induksi: anggaplah kita telah menentukan bahwa himpunan S dari state-state dapat diakses.
Kemudian untuk setiap simbol input a, hitung himpunan dari state-state D(S, a), himpunan-himpunan dari state ini juga dapat diakses.
![Page 49: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/49.jpg)
Lazy evaluation (2)◦Dengan menggunakan lazy evaluation, diperoleh DFA yang
ekuivalen dengan NFA pada Contoh 6:
Start 0q 20 q,q 10 q,q
1
1
1
0
0
0
![Page 50: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/50.jpg)
Teorema
Teorema 1:
◦Jika D = (QD, , D, {q0}, FD) adalah DFA yang dibuat dari NFA N = (QN, , N, q0, FN) dengan konstruksi subset, maka L(D) = L(N).
Teorema 2:
◦Sebuah bahasa L diterima oleh suatu DFA jika dan hanya jika L diterima oleh suatu NFA.
Bukti : dapat dilihat pada buku rujukan.
![Page 51: Teori Bahasa Automata](https://reader031.vdocuments.site/reader031/viewer/2022031611/563db81b550346aa9a90a235/html5/thumbnails/51.jpg)
John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. 2001. Introduction to Automata Theory, Languange, and Computation. Edisi ke-2. Addison-Wesley.
Daftar Pustaka