Sistem Pakar Menentukan Minat dan Bakat
Selamat datang di Sistem Pakar Menentukan Minat dan Bakat berbasis web
Rabu, 26 Mei 2021
Kamis, 23 April 2020
Finite Automata
Finite automata
adalah mesin abstrak berupa sistem model matematika dengan masukan dan keluaran
diskrit yang dapat mengenali bahasa paling sederhana (bahasa reguler) dan dapat
diimplementasikan secara nyata.
1.
Finite
State Automata
• Model matematika
suatu sistem yang menerima input dan
output diskrit
• Mesin automata
dari bahasa Regular
• Tidak memiliki
tempat penyimpanan sehingga kemampuan
mengingat terbatas (contoh: elevator/lift)
• Aplikatif
berguna untuk merancang sistem nyata.
• Aplikasi
meliputi: analisis leksikal, text-editor, protokol komunikasi jaringan
(kermit) dan parity checker (pengecek
parity).
FSA didefinisikan
sebagai pasangan 5 tupel : (Q, ∑, δ, S, F). FSA atau AH (Automata
Hingga) didefinisikan
sebagai pasangan 5 Tupel M = (Q, ∑, δ, S, F).
Q : himpunan hingga state
∑ (Sigma) : himpunan hingga simbol input (alfabet)
δ (Delta) : fungsi transisi, menggambarkan
transisi state FSA akibat pembacaan
simbol input. Fungsi
transisi ini biasanya diberikan dalam bentuk tabel.
S ∈ Q : state AWAL
F ⊆ Q : himpunan state AKHIR
Contoh :
Seorang petani dengan seekor serigala, kambing dan seikat rumput berada pada suatu sisi sungai. Tersedia hanya sebuah perahu kecil yang hanya dapat dimuati dengan petani tersebut dengan salah satu serigala, kambing atau rumput. Petani tersebut harus menyeberangkan ketiga bawaannya kesisi lain sungai.
Seorang petani dengan seekor serigala, kambing dan seikat rumput berada pada suatu sisi sungai. Tersedia hanya sebuah perahu kecil yang hanya dapat dimuati dengan petani tersebut dengan salah satu serigala, kambing atau rumput. Petani tersebut harus menyeberangkan ketiga bawaannya kesisi lain sungai.
Tetapi jika petani
meninggalkan serigala dan kambing pada suatu saat, maka kambing akan
dimakan serigala. Begitu
pula jika kambing ditinggalkan dengan rumput, maka rumput akan dimakan oleh
kambing. Mungkinkah
ditemukan suatu cara untuk melintasi sungai tanpa menyebabkan kambing atau
rumput dimakan.
Jawab :
Tupel: M = (Q, ∑,
δ, S, F)
Q = {PKSR-Φ, SR-PK, PSR-K,
R-PSK, S-PKR, PKR-S, PSK-R, K-PSR, PK-SR, Φ-PKSR}
Σ =
{p, k, s, r}
S = PKSR – Φ
F =
{Φ-PKSR}
Ada dua jenis FSA, Finite State Automata
dapat berupa:
1. Deterministic Finite Automata (DFA)
Artinya: Dari
suatu state ada tepat satu state berikutnya untuk setiap simbol input yang
diterima. Deterministic
finite automata (DFA) M = (Q, ∑, δ, S, F), dimana :
Q :
himpunan state/kedudukan
∑ : himpunan simbol input
∂ : fungsi transisi,dimana ∂ ∈ Q x ∑ Q
S : State awal (initial
state)
F : himpunan state akhir
(Final State)
Language L(M) :
(x| ∂(S,x) di dalam F)
Penelusuran/Tracking:
Telusurilah,
apakah kalimat-kalimat berikut diterima DFA di atas:
abababaa, aaaabab
, aaabbaba
Jawab :
δ (q0,abababaa) ⇒ δ (q0,bababaa) ⇒ δ (q1,ababaa) ⇒
δ (q0,babaa) ⇒ δ (q1,abaa) ⇒ δ (q0,baa) ⇒ δ (q1,aa) ⇒
δ (q0,a) ⇒ q0
Tracking berakhir
di q0 (state AKHIR) ⇒
kalimat abababaa diterima
Kesimpulan :
Sebuah kalimat
diterima oleh DFA di atas jika tracingnya berakhir di salah satu state
AKHIR.
2. Nondeterministic Finite Automata (NDFA) / NFA
Artinya: Dari
suatu state bisa terdapat 0,1 atau lebih busur keluar (transisi) berlabel
simbol input yang sama. Non
Deterministic finite automata (NFA) M = (Q, ∑, δ, S, F), dimana :
Q : himpunan
state/kedudukan
∑ : himpunan simbol
input
∂ : fungsi
transisi, dimana ∂ ∈
Q x (∑ ⋃
ε) P(Q)
P(Q) : set of all
subsets of Q
S : State awal
(initial state)
F : himpunan state
akhir (Final State)
Language L(M) :
(x| ∂(S,x) di dalam F)
Ekuivalen antar DFA
Untuk suatu bahasa
regular, kemungkinan ada sejumlah Deterministic Finite Automata yang dapat
menerimanya. Perbedaannya hanyalah jumlah state yang dimiliki otomata-otomata
yang saling ekuivalen tersebut. Tentu saja, dengan alasan kepraktisan, kita
memilih otomata dengan jumlah state yang lebih sedikit. Dua
DFA M1 dan M2 dinyatakan ekuivalen apabila L(M1) = L(M2)
Reduksi Jumlah State
Reduksi dilakukan
untuk mengurangi jumlah state tanpa mengurangi kemampuan untuk menerima suatu
bahasa seperti semula (efisiensi). State pada FSA dapat direduksi apabila
terdapat useless state. Hasil dari FSA yang direduksi merupakan ekivalensi dari
FSA semula
Sasaran kita di
sini adalah mengurangi jumlah state dari suatu Finite State Automata, dengan
tidak mengurangi kemampuannya semula untuk menerima suatu bahasa.
Ada dua buah istilah baru yang perlu kita ketahui yaitu :
Ada dua buah istilah baru yang perlu kita ketahui yaitu :
1.
Distinguishable yang
berarti dapat dibedakan
:
Dua
state p dan q dari suatu DFA dikatakan indistinguishable apabila:
δ(q,w) ∈ F dan δ(p,w) ∈ F atau δ(q,w) ∉ F dan δ(p,w) ∉ F untuk semua w ∈ S*
δ(q,w) ∈ F dan δ(p,w) ∈ F atau δ(q,w) ∉ F dan δ(p,w) ∉ F untuk semua w ∈ S*
2.
Indistinguishable yang
berarti tidak dapat dibedakan.
Dua
state p dan q dari suatu DFA dikatakan distinguishable,
jika ada string w ∈ S* hingga: δ(q,w) Î δ(q,w) ∈F dan δ(p,w) ∉F
jika ada string w ∈ S* hingga: δ(q,w) Î δ(q,w) ∈F dan δ(p,w) ∉F
Pasangan dua buah
state memiliki salah satu kemungkinan : distinguishable atau indistinguishable
tetapi tidak kedua-duanya. Dalam hal ini terdapat sebuah relasi :
Jika p dan
q indistinguishable, dan q dan r indistinguishable maka p, r indistinguishable
dan p, q, r indistinguishable
Dalam melakukan
eveluasi state, didefinisikan suatu relasi :
Untuk Q yang
merupakan himpunan semua state D adalah himpunan
state-state distinguishable, dimana D ⊂ Q Nadalah himpunan
state-state indistinguishable, dimana N ⊂ Q maka x ∈ N jika x ∈ Q dan x ∉ D
source :
Jumat, 17 April 2020
Tata Bahasa Bebas Konteks Parsing dan Ambiguitas
Tata Bahasa Bebas Konteks Parsing dan Ambiguitas
A. Parsing
Untuk mengimplementasikan Parser diperlukan TBBK (Context Free Grammar). TBBK adalah sekumpulan simbol-simbol variabel (non-terminal) yang menunjukkan bagaimana menghasilkan untai-untai, yang masing-masing merepresentasikan bahasa. Bahasa yang direpresentasikan dengan simbol-simbol nonterminal tersebut diproses secara rekursif dengan suatu aturan-aturan yang disebut aturan produksi.
Tata bahasa bebas konteks (tipe 2) memiliki elemen:
1. Terminal : simbol dasar yang tidak dapat diturunkan lagi. Terminal disebut juga token.
2. Non terminal : variabel sintaktik yang masih dapat diturunkan lagi.
1. Terminal : simbol dasar yang tidak dapat diturunkan lagi. Terminal disebut juga token.
2. Non terminal : variabel sintaktik yang masih dapat diturunkan lagi.
Pohon (tree) adalah suatu graph terhubung tidak sirkuler, yang memiliki satu simpul (node) yang disebut akar dan dari situ memiliki lintasan ke setiap simpul. Pohon penurunan (derivation tree/parse tree) berguna untuk menggambarkan bagaimana memperoleh suatu string (untai) dengan cara menurunkan simbol-simbol variabel menjadi simbol-simbol terminal.
Proses penurunan atau parsing bisa dilakukan dengan cara:
· Penurunan terkiri (leftmost derivation). Simbol variabel terkiri yang diperluas terlebih dahulu.
· Penurunan terkanan (right derivation). Simbol variabel terkanan yang diperluas terlebuh dahulu.
Misal, terdapat tata bahasa bebas konteks:
S → aAS | a
A → SbA | ba
Untuk memperoleh untai ‘aabbaa’ :
Simbol ( => ) dibaca menurunkan
• Dengan penurunan terkiri: S => aAS => aSbAS => aabAS => aabbaS => aabbaa
• Dengan penurunan terkanan: S => aAS => aAa => aSbAa => aSbbaa => aabbaa
Meskipun proses penurunan berbeda, namun akan tetap memiliki pohon penurunan yang sama.
S → aAS | a
A → SbA | ba
Untuk memperoleh untai ‘aabbaa’ :
Simbol ( => ) dibaca menurunkan
• Dengan penurunan terkiri: S => aAS => aSbAS => aabAS => aabbaS => aabbaa
• Dengan penurunan terkanan: S => aAS => aAa => aSbAa => aSbbaa => aabbaa
Meskipun proses penurunan berbeda, namun akan tetap memiliki pohon penurunan yang sama.
Biasanya persoalan yang diberikan berkaitan dengan pohon penurunan, adalah untuk mencari penurunan yang hasilnya menuju kepada suatu untai yang ditentukan. Dalam hal ini, perlu untuk melakukan percobaan pemilihan aturan produksi yang bisa menuju ke solusi.
B. Ambiguitas
Terjadi bila terdapat lebih dari satu pohon penurunan yang berbeda utuk memperoleh
suatu untai. Misal terdapat tata bahasa bebas konteks:
S → SbS | ScS | a
Untuk memperoleh untai ‘abaca’
suatu untai. Misal terdapat tata bahasa bebas konteks:
S → SbS | ScS | a
Untuk memperoleh untai ‘abaca’
Cara pertama:
S >> SbS >> SbScS >> SbSca >> Sbaca >> abaca
S >> SbS >> SbScS >> SbSca >> Sbaca >> abaca
Cara kedua:
S => ScS => SbScS => abScS => abacS => abaca
S => ScS => SbScS => abScS => abacS => abaca
Contoh Soal :
1. S -> AA
A -> AAA | a | bA| Ab
Buatlah pohon penurunan dari himpunan produksi di atas untuk membangkitkan string dengan susunan “bbabaaba”
A -> AAA | a | bA| Ab
Buatlah pohon penurunan dari himpunan produksi di atas untuk membangkitkan string dengan susunan “bbabaaba”
Jawab:
2. S -> AB
A -> Aa| bB
B -> a | Sb
Buatlah pohon penurunan dari himpunan produksi di atas untuk membangkitkan string dengan susunan “baabaab”
A -> Aa| bB
B -> a | Sb
Buatlah pohon penurunan dari himpunan produksi di atas untuk membangkitkan string dengan susunan “baabaab”
Jawab :
3. S -> Ba | Ab
A -> Sa | Aab| a
B -> Sb| Bba| b
Buatlah pohon penurunan dari himpunan produksi di atas untuk membangkitkan string dengan susunan “bbaaaabb”
A -> Sa | Aab| a
B -> Sb| Bba| b
Buatlah pohon penurunan dari himpunan produksi di atas untuk membangkitkan string dengan susunan “bbaaaabb”
Jawab :
4. S -> AB | C
A -> aAb| ab
B -> cBd| cd
C -> aCd| aDd
D -> bDc| bc
Buatlah pohon penurunan dari himpunan produksi di atas untuk membangkitkan string dengan susunan “aabbccdd”.
A -> aAb| ab
B -> cBd| cd
C -> aCd| aDd
D -> bDc| bc
Buatlah pohon penurunan dari himpunan produksi di atas untuk membangkitkan string dengan susunan “aabbccdd”.
Video penjelasan :
Langganan:
Postingan (Atom)









