Transcript Pertemuan 3 Finite Automata
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 DFA : Definisi DFA, Bagimana DFA memproses string, Notasi notasi untuk DFA, Fungsi transisi yang diperluas, Bahasa dari NFA NFA : Definisi NFA, Bagimana NFA memproses string, Fungsi transisi yang diperluas, Bahasa dari NFA, Ekuivalensi DFA dan ε-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 simbol dalam .
k sebagai himpunan dari string dengan panjang k, setiap string tersebut memiliki
Konsep dalam Teori Otomata (lanjutan), Contoh 9
Perhatikan bahwa 0 Bahwa = { }, untuk alphabet apapun. 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
perangkaian dari
x
dan
y
menyatakan , bahwa string dibentuk dengan membuat salinan dari
x
dan diikuti oleh salinan dari
y
. Jika
x
adalah string yang disusun oleh
i
simbol, dan
y x
= a 1 a 2 ... a i adalah string yang disusun oleh
j
simbol, maka
xy y
= b 1 b 2 ... b j adalah string dengan panjang
i
+
j
,
xy
= a 1 a 2 ... a i b 1 b 2 ... b j Contoh:
x
= 01101 dan
y
= 110, maka xy = 01101110 dan yx = 11001101. Untuk suatu string w, persamaan
w
adalah identitas untuk perangkaian. =
w
=
w
dipenuhi. Bahwa
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 1.
2.
3.
4.
5.
= {a, b}: L 1 = { , a, aa, aab} L 2 = {x {a, b}* |x| ≤ 8} L 3 = {x {a, b}* |x| adalah ganjil} L 4 = {x L 5 = {x dengan b} {a, b}* n a (x) ≥ n b (x)} {a, b}* |x| ≥ 2, x diawali dan diakhiri
Notasi lain dari Bahasa (1)
1.
Berdasarkan string-string yang dikonstruksi di dalamnya. Contoh: L 1 = {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 (L AE ) yang string-string di dalamnya berupa ekspresi aljabar dengan tanda kurung penuh (sepasang) untuk setiap operator dengan = {i, (, ), +, }. i L AE Untuk suatu x, y L AE , (x+y) dan (x y) adalah anggota dari L AE .
Tidak ada string dalam L AE 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 L | x L 1 1 dan L 2 adalah bahasa, L 1 Perangkaian dari L dan y L 2 1 }. dan L 2 dan L 2 dinotasikan L 1 L 2 *. = {xy 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
kontrolnya yang bergerak dari
state
ke
state
sebagai respon dari adanya input eksternal. dan 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
input eksternal yang diterima. berikutnya untuk setiap Sedangkan pada NFA, untuk setiap pasangan
state
memiliki 0 atau lebih pilihan ke
state
berikutnya.
input kita bisa
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 : 1.
2.
3.
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
bentuk graf, kemana DFA bergerak. Dalam 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 diberi label a dari q ke p.
arc
yang
Definisi DFA (2)
4.
5.
Sebuah
state state
-
state
awal ( dalam Q.
start state
), merupakan salah satu dari 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 q 0 :
Start state
F : Himpunan
accepting state
.
Pemrosesan String oleh DFA
Anggaplah a 1 , a 2 , ..., a n input. adalah sebuah rangkaian dari simbol Dengan berawal dari
start state
, dengan dibacanya simbol input a 1 , DFA menuju
state
q 1 . Sehingga (q 0 , a 1 ) = q 1 . Selanjutnya DFA memproses simbol input selanjutnya, yaitu a2, dengan mengevaluasi (q 1 , a 2 ) = q 2 . Dengan cara yang sama DFA akan memasuki
state
q 3 , q 4 , ..., q n , sehingga Jika q n (q i-1 , a i ) = q i F maka input a 1 , a 2 , ..., a n maka input a 1 , a 2 , ..., a n untuk setiap i. ditolak. diterima dan jika q n F 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 = ({q 0 , q 1 , q 2 }, {0, 1}, , q 0 , {q 1 }) dimana (q 0 , 0) = q 2 (q 2 , 0) = q 2 (q (q (q 1 , 0) = (q 1 , 1) = q 1 0 2 , 1) = q , 1) = q 0 1
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
1.
2.
3.
4.
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
q 0 , yang diberi label
start
. Tanda panah tersebut tidak berasal dari
state
-
state
lain.
Node
yang menyatakan
final state
lingkaran ganda.
State
(yaitu dalam F) diberi tanda oleh yang bukan dalam F memiliki sebuah lingkaran tunggal.
Contoh 2
Diagram transisi untuk DFA dalam Contoh 1 adalah 1 0 start 0 1 q 0 q 2 q 1 0,1
Contoh 3
Tabel transisi untuk fungsi pada Contoh 2 adalah * q 0 q 1 q 2 0 q 2 q 1 q 2 1 q 0 q 1 q 1
Start state final state
diberi tanda dengan sebuah arah panah, dan 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
berawal dari
state
yang dicapai oleh FA ketika q dan memproses rangkaian input w.
Perluasan Fungsi Transisi untuk String (3)
Definisikan berikut ˆ dengan induksi pada panjang string input sebagai
Basis
: q yang berarti jika FA berada dalam dan membaca tidak ada input, FA tetap dalam
state 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 q q, w , a
Perluasan Fungsi Transisi untuk String (4)
Untuk menghitung q, w pertama hitung (adalah
state
dimana FA selesai memproses semua simbol kecuali simbol terakhir dalam w).
Anggaplah
state
Maka q, w tersebut adalah p, adalah
state
= p yang diperoleh dengan membuat transisi dari
state
p pada input a (simbol terakhir dari w).
Atau, q, w
Contoh 4
DFA berikut menerima bahasa berikut L = w w memiliki jumlah para 0 dan para 1 yang masing masing adalah genap 1 start q 0 q 1 0 0 1 1 0 0 q 2 q 3 1
Contoh 4 (lanjutan)
Pemrosesan input 110101:
Bahasa dari Sebuah DFA
Bahasa dari sebuah DFA, A = (Q, , , q 0 , F), dinotasikan L(A) didefinisikan oleh L L w q 0 , w dalam F • Dengan demikian bahasa dari A adalah himpunan string w yang berawal dari
state
awal q 0 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 a a b start b b q 0 q 1 q 2 a • String w1 = abb diterima oleh DFA melalui kalkulasi berikut: • Karena q 2 dalam F = {q 2 }, 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.