Anda di halaman 1dari 84

Finite State

Automata dan
Regular Expression
Natural Language Processing
Pertemuan 3
1
Definisi Automata
Natural Language Processing

2
Definisi Automata

▰ Mesin abstrak - Mesin fisik

▰ Model matematika
▰ Sistem yang menerima input dan menghasilkan output, serta
terdiri dari sejumlah berhingga state.
▰ Mesin abstrak yang dapat mengenali (recognize), menerima
(accept), atau membangkitkan (generate) sebuah kalimat dalam
bahasa tertentu.
3
Definisi Automata

▰ Bahasa sebagai input oleh suatu mesin otomata, selanjutnya


mesin otomata akan membuat keputusan yang mengindikasikan
apakah input itu diterima atau tidak.
▰ Automata Membahas model komputasi sebagai mesin abstrak
yang dapat didefinisikan secara matematis, mulai dari yang paling
sederhana sampai yang powerfull.

4
Contoh Terapan dari Automata (Model Switch
On/Off)

▰ Mengingat apakah switch berada dalam state


‘on’ atau state ‘off’
▰ 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”

5
Contoh Terapan dari Automata (Lexical Analize)

▰ Mengenali keyword “then” ▰ State yang diberi nama “then”


▰ Diperlukan lima state dimasuki ketika input mengeja kata
“then”.
▰ Input dinyatakan oleh huruf.
▰ state “then”dinyatakan sebagai
▰ Start state merupakan string
accepting state.
kosong, dan setiap state memiliki
transisi pada huruf selanjutnya

6
Contoh Terapan dari Automata (Mesin Pembuat Kopi)

7
2
Teori Pendukung
Natural Language Processing
Himpunan

▰ Himpunan adalah koleksi dari beberapa elemen, yaitu :


▰ A = {1, 2,3}
▰ B = {train,bus,bicycle, airplane}
▰ Bisa diulis :
▰ 1 A 1 anggota bagian A
▰ Ship B Ship bukan anggota bagian dari B

9
Himpunan (Representasi Himpunan)

▰ C = { a, b, c, d, e, f, g, h, i, j, k }
▰ C = { a, b, …, k } set yang mempunyai akhir
▰ S = { 2, 4, 6, … } set yang tidak mempunyai akhir

10
Himpunan Universal

▰ Contoh :
▰ A = { 1, 2, 3, 4, 5 }
▰ Himpunan Universal
: seluruh elemen
yang mungkin ada
▰ U = { 1 , … , 10 }

11
Operasi Himpunan (Union = Gabungan)

▰ himpunan semua
anggota himpunan
yang termuat dalam
kumpulan tersebut
▰ A = { 1, 2, 3 }
▰ B = { 2, 3, 4, 5}
▰ Union
▰ A B = { 1, 2, 3, 4, 5 }
12
Operasi Himpunan (Intersection = Irisan)

▰ himpunan A dengan
B yang bagian-
bagiannya juga
merupakan anggota
dari himpunan A
dan himpunan B
▰ A = { 1, 2, 3 }
▰ B = { 2, 3, 4, 5}
▰ Intersection
▰ A B = { 2, 3 } 13
Operasi Himpunan (Difference = Selisih)

▰ himpunan yang
anggotanya semua
anggota dari A tetapi
bukan anggota dari
B
▰ A = { 1, 2, 3 }
▰ B = { 2, 3, 4, 5}
▰ Difference
▰ A- B= {1 }
▰ B - A = { 4, 5 } 14
Operasi Himpunan (Complement = Pelengkap)

▰ himpunan semua
anggota himpunan S
yang bukan anggota
himpunan A
▰ Himpunan Universal
= {1, …, 7}
▰ A = { 1, 2, 3 }
▰ Ā= { 4, 5, 6, 7}

15
Hukum DeMorgan’s

▰ =
▰ =

16
Himpunan Kosong: Ø

▰ Ø = {}
▰ Ō = Universal Set
▰ S Ø=S
▰ S Ø=Ø
▰ S–Ø=S
▰ Ø–S=Ø

17
Himpunan Bagian

▰ A = { 1, 2, 3}
▰ B = { 1, 2, 3, 4, 5 }
▰ A⸦ B
▰ Himpunan Bagian
yang Sesuai: A ⸦ B

18
Himpunan Disjoint

▰ A = { 1, 2, 3}
▰ B = { 5, 6}

19
Cardinalitas Himpunan

▰ Untuk set yang


mempunyai nilai akhir
A = { 2, 5, 7 }
▰ |A| = 3 (ukuran set)

20
Powersets

▰ Powersets adalah himpunan dalam himpunan


▰ S = { a, b, c }
▰ Powerset dari S = himpunan dari seluruh subsets S
▰ 2S = { ø {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c} }
▰ Observasi: | 2S | = 2|S| = 23= 8

21
Produk Cartesius

▰ A = { 2, 4 }
▰ B = { 2, 3, 5 }
▰ A X B = { (2, 2), (2, 3), (2, 5), ( 4, 2), (4, 3), (4, 5) }
▰ |A X B| = |A| |B|
▰ Secara Umum untuk dua himpunan atau lebih
▰ AX BX … X Z

22
Graff

23
Lintasan

▰ Lintasan adalah urutan dari edges yang


berdekatan
▰ (e, d), (d, c), (c, a)

24
Path

▰ Path adalah lintasan dimana tidak ada


edge yang diulang
▰ Path sederhana : tidak ada node yang
berulang

25
Cycle

▰ Cycle adalah lintasan dari node awal


kembali ke node awal lagi
▰ Cycle sederhana : hanya node awal saja
yang berulang

26
Lintasan Euler

▰ Sebuah cycle yang melintasi edge satu


kali

27
Hamiltonian Cycle

▰ Lintasan sederhana yang melintasi


seluruh node

28
3
Finite State Automata
(FSA)
Natural Language Processing
Jenis FSA

▰ Suatu FSA memiliki state yang banyaknya berhingga, dan dapat


berpindah-pindah dari suatu state ke state lain.
▰ Konfigurasi FA M = (Q, S, d , q0 , F )
Q : Himpunan states/kedudukan
S : Himpunan symbol input/masukan/ alphabet
d : Fungsi Transisi
q0 : State Awal
F : State akhir
30
Graph Transisi

31
Himpunan State

▰ Himpunan State = Q
▰ Q = {q0 , q1, q2 , q3 , q4 , q5}

32
Himpunan State

▰ State awal = q0

33
Himpunan State

▰ State akhir = F
▰ F = {q4}

34
Himpunan State

▰ Fungsi Transisi =
▰ = {a, b}
▰ :Qx Q

35
Himpunan State

▰ (q0 , a) = q1
▰ Dibaca : State qo
mendapat inputan a
menuju ke q1

36
Himpunan State

▰ (q0 ,b) = q5
▰ Dibaca : State qo
mendapat inputan b
menuju ke q5

37
Himpunan State

▰ (q2 ,b) = q3

38
Himpunan State

▰ Fungsi Transisi
(Digambarkan dengan
tabel transisi)

39
Himpunan State

▰ Memperpanjang Fungsi
Transisi *
▰ *:Qx*Q

40
Himpunan State

▰ * (q0 , ab) = q2

41
Himpunan State

▰ * (q0 , abba) = q4
▰ * (q0 , abbbaa) = q5

42
3
Membaca Input FSA
Natural Language Processing
Membaca input (inputan diterima)

44
Membaca input (inputan diterima)

45
Membaca input (inputan diterima)

46
Membaca input (inputan diterima)

47
Membaca input (inputan diterima)

48
Membaca input (inputan diterima)

49
Membaca input (inputan ditolak)

50
Membaca input (inputan ditolak)

51
Membaca input (inputan ditolak)

52
Membaca input (inputan ditolak)

53
Membaca input (contoh diterima)

54
Membaca input (contoh diterima)

55
Membaca input (contoh diterima)

56
Membaca input (contoh diterima)

57
Membaca input (contoh ditolak)

58
Membaca input (contoh ditolak)

59
Membaca input (contoh ditolak)

60
Membaca input (contoh ditolak)

61
Membaca input (contoh ditolak)

62
3
DFA dan NFA
Natural Language Processing
Definisi DFA dan NFA

64
Definisi DFA dan NFA

▰ Deterministic Finite Automata (DFA)


Dari suatu state ada tepat satu state berikutnya untuk setiap symbol
masukan yang diterima.
▰ Non-deterministic Finite Automata (NFA)
Dari suatu state ada 0, 1 atau lebih state berikutnya untuk setiap simbol
masukan yang diterima.

65
Definisi NFA

▰ Merupakan mesin NFA dimana sebuah state


diperbolehkan menuju state yang lain tanpa membaca
input.
▰ ɛ = transisi ɛ dimana ɛ =“empty”

66
Definisi NFA

▰ ɛ -move atau l (ɛ di sini bisa dianggap sebagai 'empty')


▰ Pada mesin NFA kita bisa mengubah state state tanpa harus bergantung
pada suatu inputan, cukup dengan menggunak ɛ move, kita bisa menuju
ke state state yg ada,
▰ ɛ move ini juga disebut dengan transisi
▰ Tidak bergantung pada suatu input ketika melakukan transisi atau
perpindahan.
▰ Agar kita bisa mudah dalam mengkombinasikan finite state automata.

67
Definisi NFA

▰ Transisi Lambda/Epsilon (/ ɛ)
▰ Adalah Transisi yang diperbolehkan melakukan perubahan state tanpa
mendapatkan inputan.

68
Contoh

69
Contoh (Ada pergerakan tapi tidak ada inputan)

70
Contoh (inputan selesai)

71
Contoh (inputan selesai)

72
Contoh 2

73
Contoh 2 (Ada pergerakan namun tidak ada
inputan)

74
Contoh 2 (Inputan tidak terselesaikan)

75
Contoh 2 (Bahasa yang bias diterima)

▰ L = {aa}

76
3
Regular Expression (Regex)
Natural Language Processing
Definisi Regex

▰ Suatu cara untuk menspesifikasikan bahasa. Memberikan suatu


pola/pattern/template untuk untai/string dari suatu bahasa.
▰ Regular Expression, sering ditulis/disebut juga Regex / Regexp, adalah
deretan karakter spesial yang mendefinisikan sebuah pola dalam
pencarian teks.
▰ Regex biasanya digunakan untuk fungsi-fungsi String seperti match(),
search(), replace().

78
Implementasi Regex

▰ Pencarian (searching) untai karakter (string) pada suatu file, biasanya


terdapat pada text editor
▰ Pembatasan data masukan yang diperkenankan, misal suatu field
masukan hanya menerima input bilangan (0..9)

79
Contoh Automata dan Regex

▰ Automata hanya
menerima simbol input
antara 0 – 9
▰ Regulernya : (digit)
(digit)*
▰ Digit = 0 – 9
▰ FSA akan diterjemahkan
menjadi kode dalam
bahasa pemrograman
80
Notasi Regex

▰ ‘*’(karakter asterisk, bisa tidak muncul, bisa juga muncul berhingga


kali (0-n))
▰ ‘+’ (pada posisi superscript, minimal muncul 1 kali (1-n)
▰ ‘+’ / ‘U’ (union)
▰ dll

81
Contoh Regex

▰ ab*cc
▰ 010*
▰ a*d
▰ a+d
▰ a* U b*
▰ (a U b)
▰ (a U b)*

82
Contoh Regex dan String yang dihasilkan

▰ ab*cc ▰ 010* ▰ a*d ▰ a+ d ▰ a* U b*


abcc 01 d ad ‘U’ berarti atau
abbcc 010 ad aad a aaa
abbbcc 0100 aad aaad b bbb
abbbbcc 01000 aaad aa aaaa
acc bb bbbb

83
THANKS!
Any questions?
You can contact me at
ana.tsalits@trunojoyo.ac.id

84

Anda mungkin juga menyukai