Teori otomata: Perbedaan antara revisi
Tampilan
Konten dihapus Konten ditambahkan
Tidak ada ringkasan suntingan |
|||
(30 revisi perantara oleh 21 pengguna tidak ditampilkan) | |||
Baris 1: | Baris 1: | ||
{{rapikan|topik=teknologi informasi}} |
|||
{{kembangkan|25 Mei 2007}} |
|||
'''Teori Otomata''' adalah teori mengenai mesin-mesin abstrak, dan berkaitan erat dengan teori [[bahasa formal]]. |
'''Teori Otomata''' adalah teori mengenai mesin-mesin abstrak, dan berkaitan erat dengan teori [[bahasa formal]]. |
||
ada beberapa hal yang berkaitan dengan Otomata, yaitu Grammar. |
|||
Grammar adalah bentuk abstrak yang dapat diterima (accept) untuk membangkitkan suatu kalimat otomata berdasarkan suatu aturan tertentu. |
|||
== Konsep Dasar == |
|||
⚫ | |||
• Anggota alfabet dinamakan simbol terminal. |
|||
⚫ | |||
• Kalimat adalah deretan hingga simbol-simbol terminal. |
|||
• Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa tak hingga kalimat. |
|||
• Simbol-simbol berikut adalah simbol terminal: |
|||
* huruf kecil, misalnya: a, b, c |
|||
* simbol operator, misalnya: +, , dan * |
|||
* simbol tanda baca, misalnya: (, ), dan ; |
|||
* simbol tanda baca, misalnya: (, ), dan ;<ref>double</ref> |
|||
* string yang tercetak tebal, misalnya: '''if''', '''then''', dan '''else'''. |
|||
• Simbol-simbol berikut adalah simbol non terminal /Variabel: |
|||
* huruf besar, misalnya: A, B, C |
|||
* huruf S sebagai simbol awal |
|||
* string yang tercetak miring, misalnya: ''expr'' |
|||
• Huruf yunani melambangkan string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya, misalnya: α,β, dan ε |
|||
• Sebuah produksi dilambangkan sebagai α --> β, artinya: dalam sebuah derivasi dapat dilakukan penggantian simbol α dengan simbol β. |
|||
• Derivasi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuah derivasi dilambangkan sebagai: α ==> β. |
|||
• Sentensial adalah string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya. |
|||
• Kalimat adalah string yang tersusun atas simbol-simbol terminal. Kalimat adalah merupakan sentensial, sebaliknya belum tentu.. |
|||
Grammar: |
|||
Grammar G didefinisikan sebagai pasangan 4 tuple: V<sub>t</sub>, V<sub>n</sub>, S, dan P, dan dituliskan sebagai G(V<sub>t</sub>, V<sub>n</sub>, S, P), dimana: |
|||
V<sub>t</sub> : himpunan simbol-simbol terminal (alfabet) = kamus |
|||
V<sub>n</sub> : himpunan simbol-simbol non terminal |
|||
S <s>C</s> V : simbol awal (atau simbol start) |
|||
P : himpunan produksi |
|||
Contoh: |
|||
1. G1: VT = {I, want, need, You}, V = {S,A,B,C}, |
|||
P = {S --> ABC, A--> I, B--> want | need, C--> You} |
|||
S --> ABC |
|||
--> IwantYou |
|||
L(G1)={IwantYou,IneedYou} |
|||
2. . G2: VT = {a}, V = {S}, P = {S aS | a} |
|||
S --> aS |
|||
--> aaS |
|||
--> aaa L(G2) ={an --> n ≥ 1} |
|||
L(G2)={a, aa, aaa, aaaa,…} |
|||
⚫ | |||
Otomata adalah sebuah 5-tupel <math>\langle Q, \Sigma, \delta, q_0, F\rangle</math>: |
Otomata adalah sebuah 5-tupel <math>\langle Q, \Sigma, \delta, q_0, F\rangle</math>: |
||
* <math>Q</math> adalah himpunan berhingga dari ''state'', |
* <math>Q</math> adalah himpunan berhingga dari ''state'', |
||
Baris 12: | Baris 70: | ||
* <math>F \subset Q</math> adalah ''state'' akhir |
* <math>F \subset Q</math> adalah ''state'' akhir |
||
==Jenis-jenis Otomata |
== Jenis-jenis Otomata == |
||
===Otomata Berhingga Deterministik=== |
=== Otomata Berhingga Deterministik === |
||
Otomata berhingga deterministik ('''DFA''' - ''Deterministic Finite Automata'') adalah sebuah otomata yang fungsi transisinya adalah: |
Otomata berhingga deterministik ('''DFA''' - ''Deterministic Finite Automata'') adalah sebuah otomata yang fungsi transisinya adalah: |
||
:<math>\delta: Q \times \Sigma \rightarrow Q</math> |
:<math>\delta: Q \times \Sigma \rightarrow Q</math> |
||
:Contoh |
|||
:[[Berkas:DFA_Machine_Learn.jpg|jmpl|Mesin dfa]]Konfigurasi DFA disamping secara formal dinyatakan sebagai berikut Q = {q0, q1, q2, q3 } Σ = {0,1} S = q0 F = { q0} <br />Fungsi transisi, biasanya fungsi-fungsi transisi ini kita sajikan dalam sebuah tabel transisi. Tabel transisi tersebut menunjukkan state state berikutnya untuk kombinasi state state dan input. Tabel transisi dari fungsi transisi adalah |
|||
===Otomata Berhingga Non-Deterministik=== |
=== Otomata Berhingga Non-Deterministik === |
||
Otomata berhingga non-deterministik ('''NFA''' - ''Nondeterministic Finite Automata'') berbeda dengan DFA dalam hal fungsi transisinya: |
Otomata berhingga non-deterministik ('''NFA''' - ''Nondeterministic Finite Automata'') berbeda dengan DFA dalam hal fungsi transisinya: |
||
:<math>\delta: Q \times \Sigma \rightarrow \mathcal{P}(Q)</math> |
:<math>\delta: Q \times \Sigma \rightarrow \mathcal{P}(Q)</math> |
||
: |
|||
⚫ | |||
⚫ | |||
===Otomata Pushdown=== |
|||
Contoh NFA: |
|||
[[Berkas:NFA.jpg|jmpl|string 01001]] |
|||
* String diterima NFA bila terdapat suatu urutan transisi berdasarkan input, dari state awal ke state akhir. |
|||
* harus mencoba semua kemungkinan. |
|||
⚫ | |||
'''Otomata Pushdown''' adalah salah satu varian otomata dengan 7-tupel <math>\langle Q, \Sigma, \Gamma, \delta, q_0, Z_0, F\rangle</math>, di mana: |
'''Otomata Pushdown''' adalah salah satu varian otomata dengan 7-tupel <math>\langle Q, \Sigma, \Gamma, \delta, q_0, Z_0, F\rangle</math>, di mana: |
||
* <math>Q</math> adalah himpunan berhingga dari ''state'', |
* <math>Q</math> adalah himpunan berhingga dari ''state'', |
||
Baris 35: | Baris 104: | ||
:<math>\delta: Q \times (\Sigma \cup \{\epsilon\}) \times \Gamma) \rightarrow Q \times \Gamma^*</math> adalah fungsi transisi |
:<math>\delta: Q \times (\Sigma \cup \{\epsilon\}) \times \Gamma) \rightarrow Q \times \Gamma^*</math> adalah fungsi transisi |
||
⚫ | |||
===Otomata Terbatas Linear=== |
|||
===Mesin Turing=== |
|||
⚫ | |||
Setiap otomata berhingga dapat digunakan untuk mengenali bahasa tertentu. |
Setiap otomata berhingga dapat digunakan untuk mengenali bahasa tertentu. |
||
==Referensi== |
== Referensi == |
||
{{reflist}} |
|||
* [[John E. Hopcroft]], [[Jeffrey D. Ullman]] - ''Introduction to Automata Theory, Languages, and Computation'' |
|||
== Pranala luar == |
|||
* [https://web.archive.org/web/20090503173000/http://www.cs.usfca.edu/~jbovet/vas.html Visual Automata Simulator], a tool for simulating, visualizing and transforming finite-state automata and Turing Machines, by Jean Bovet |
|||
* [http://www.jflap.org JFLAP] |
|||
* [http://www.brics.dk/automaton dk.brics.automaton] |
|||
* [http://www.augeas.net/libfa/index.html libfa] |
|||
{{Authority control}} |
|||
{{matematika-stub}} |
{{matematika-stub}} |
||
[[Kategori:Komputasi]] |
[[Kategori:Komputasi]] |
||
[[Kategori:Matematika |
[[Kategori:Matematika diskrit]] |
||
[[en:Automata Theory]] |