• Tidak ada hasil yang ditemukan

NFA. Teori Bahasa dan Automata. Viska Mutiawani - Informatika FMIPA Unsyiah

N/A
N/A
Protected

Academic year: 2021

Membagikan "NFA. Teori Bahasa dan Automata. Viska Mutiawani - Informatika FMIPA Unsyiah"

Copied!
106
0
0

Teks penuh

(1)

NFA

(2)

NFA

NFA: Nondeterministic Finite Automata

Atau Automata Hingga NonDeterministik

(AHND)

Salah satu bentuk dari Finite Automata

NFA memiliki kemampuan untuk berada pada

beberapa state pada waktu yang sama

Transisi dari suatu state terhadap suatu

simbol input dapat berpindah ke beberapa

state

(3)

NFA

Bermula dari state awal

Output “terima” jika pemilihan transisi

berdasarkan input berakhir di state akhir

Secara intuisi: NFA selalu “menebak yang

Secara intuisi: NFA selalu “menebak yang

(4)

1

q

a

q

2

}

{a

Alphabet =

Nondeterministic Finite Automaton

(NFA)

3

q

a

a

0

q

(5)

1

q

a

q

2

Ada dua pilihan

Tidak ada transisi

}

{a

Alphabet =

3

q

a

a

0

q

(6)

a a

1

q

q

2

Pilihan pertama

a

0

q

3

q

a

a

(7)

a a

1

q

a

q

2

Pilihan pertama

0

q

3

q

a

a

(8)

a a

1

q

a

q

2

“terima”

First Choice

Semua input berhasil dihabiskan

0

q

3

q

a

a

(9)

a a

1

q

q

2

Pilihan kedua

a

0

q

3

q

a

a

(10)

a a

1

q

a

q

2

Pilihan kedua

Tidak semua input berhasil dihabiskan

0

q

a

a

3

q

“tolak”

Automaton Halt/berhenti

(11)

Suatu NFA menerima input string:

Jika ada suatu proses komputasi pada NFA

yang menerima string tersebut

Maksudnya: semua input string berhasil diproses

Maksudnya: semua input string berhasil diproses

dan automaton berada di state penerima

(12)

aa

diterima oleh NFA di bawah:

1

q

a

q

2

“terima”

1

q

a

q

2

0

q

1

q

q

2

3

q

a

a

a

0

q

1

q

q

2

a

a

a

3

q

“tolak”

Ini komputasi

(13)

a

1

q

q

2

Contoh penolakan

a

0

q

3

q

a

a

(14)

a

1

q

a

q

2

Pilihan pertama

“tolak”

0

q

3

q

a

a

(15)

Pilihan kedua

a

1

q

a

q

2

0

q

3

q

a

a

(16)

Pilihan kedua

a

1

q

a

q

2

0

q

a

a

3

q

“tolak”

(17)

Contoh penolakan lainnya

a a

1

q

a

q

2

a

0

q

3

q

a

a

(18)

a a

1

q

a

q

2

Pilihan pertama

a

0

q

3

q

a

a

(19)

a a

1

q

a

q

2

Pilihan pertama

a

Tidak semua input berhasil dihabiskan

“tolak”

0

q

3

q

a

a

Automaton halt/berhenti

(20)

a a

1

q

q

2

Pilihan kedua

a

a

0

q

3

q

a

a

(21)

a a

1

q

a

q

2

Pilihan kedua

a

Tidak semua input berhasil dihabiskan

0

q

a

a

3

q

Automaton halt/berhenti

“tolak”

(22)

Suatu NFA menolak input string:

Jika tidak ada suatu proses komputasi pada NFA

yang menerima string tersebut.

• Semua input berhasil dihabiskan namun

Untuk setiap proses komputasi:

• Semua input berhasil dihabiskan namun

automaton berada bukan pada state penerima

• Belum semua input berhasil dihabiskan

ATAU

(23)

a ditolak oleh NFA di bawah

1

q

a

q

2

1

q

a

q

2

“tolak”

0

q

1

q

q

2

a

a

a

3

q

0

q

1

q

q

2

a

a

a

3

q

Semua komputasi yang mungkin berakhir dengan penolakan

(24)

1

q

a

q

2

q

1

a

q

2

aaa ditolak oleh NFA di bawah

“tolak”

0

q

1

q

q

2

3

q

a

a

a

0

q

1

q

q

2

a

a

a

3

q

“tolak”

(25)

1

q

a

q

2

Bahasa yang diterima:

L 

{aa

}

3

q

a

a

0

q

(26)

Transisi Lambda

1

q

q

3

a

0

q

q

2

a

(27)

a a

1

q

q

3

a

0

q

q

2

a

(28)

a a

1

q

q

3

a

0

q

q

2

a

(29)

a a

Kepala input tape head tidak bergerak

1

q

q

3

a

0

q

q

2

a

(30)

a a

“terima”

Semua input berhasil dihabiskan

1

q

q

3

a

0

q

q

2

a

“terima”

String aa diterima

(31)

a a

Contoh penolakan

a

1

q

q

3

a

0

q

q

2

a

(32)

a a a

1

q

q

3

a

0

q

q

2

a

(33)

a a

Kepala tape tidak bergerak

a

1

q

q

3

a

0

q

q

2

a

(34)

a a

“tolak”

a

Belum semua input berhasil dihabiskan

Automaton halt/berhenti

1

q

q

3

a

0

q

q

2

a

“tolak”

(35)

Bahasa yang diterima:

L 

{aa

}

1

q

q

3

a

0

q

q

2

a

(36)

Contoh lain NFA

0

(37)

a b

0

(38)

a b

0

(39)

a b

0

q

a

q

1

b

q

2

q

3

(40)

a b

String yang lain

a b

0

(41)

a b a b

0

(42)

a b a b

0

(43)

a b a b

0

(44)

a b a b

0

(45)

a b a b

0

(46)

a b a b

0

q

a

q

1

b

q

2

q

3

(47)

 

ab

ababab

abab

ab

L

,

,

,

...

Bahasa yang diterima

0

(48)

Contoh lain NFA

0

0

q

q

1

q

2

0

1

1

,

0

(49)

{

}

{ }

10

*

=

...

,

101010

,

1010

,

10

,

λ

=

)

(M

L

0

Bahasa yang diterima

0

q

q

1

q

2

0

1

1

,

0

(redundant

state)

(50)

Perhatikan:

•Simbol

tidak pernah muncul pada

input tape

M

•Automata sederhana:

0

q

2

M

0

q

1

M

{}

=

)

M

(

L

1

L

(

M

)

=

{

λ

}

(51)

q

a

2

M

1

M

NFA

DFA

•NFA lebih menarik karena kita dapat mengekspresikan

bahasa lebih sederhana dibanding DFA

0

q

2

q

1

q

a

a

0

q

a

q

1

(52)

Definisi Formal dari NFA

Set/kumpulan state

Alfabet input, contoh

Q

q

F

M

,

,

,

0

,

:

Q

q

0

,

q

1

,

q

2

:

Alfabet input, contoh

a,

b

Fungsi transisi

State awal

Set/kumpulan state penerima

:

:

0

q

:

F

:

a,

b

(53)

Fungsi transisi

1

q

x

State hasil dengan satu transisi

Fungsi transisi DFA:

)

(

})

{

(

:

:

Q

Q

Q

Q

Fungsi transisi NFA:

q

,

x

 

q

1

,

q

2

,

,

q

k

q

1

1

q

q

x

x

x

State hasil dengan satu transisi

terhadap simbol

x

(54)

q

0

,

1

  

q

1

0

1

1

,

0

0

q

q

1

q

2

(55)

}

,

{

)

0

,

(

q

1

q

0

q

2

0

q

0

1

1

,

0

1

q

q

2

(56)

}

{

)

,

(

q

0

q

2

0

q

0

1

1

,

0

1

q

q

2

(57)

)

1

,

(

q

2

0

q

0

1

1

,

0

1

q

q

2

(58)

Bisakah anda membuat tabel

transisi untuk NFA?

transisi untuk NFA?

0

1

λ

q0

{}

{q1}

{q2}

q1

{q0, q2}

{q2}

{}

(59)

Fungsi transisi diperluas

*

0

  

1

*

,

a

q

q

Sama saja dengan

namun berlaku pada string

0

q

5

q

4

q

3

q

2

q

1

q

a

a

a

b

(60)

0

 

4

5

*

,

,

aa

q

q

q

0

q

5

q

4

q

3

q

2

q

1

q

a

a

a

b

(61)

0

 

2

3

0

*

,

,

,

ab

q

q

q

q

0

q

5

q

4

q

3

q

2

q

1

q

a

a

a

b

(62)

Kasus khusus:

*

q

,

q 

Untuk setiap state

q

*

q

,

(63)

q

w

q

j

*

i

,

Bermakna ada jalan dari

menuju

dengan label

i

q

j

q

w

w

i

q

q

j

Secara umum

q

q

k

w

1

2

1

2

k

i

q

j

(64)

Bahasa dari NFA M

Bahasa yang diterima oleh

M

adalah:

  

M

w

w

w

n

L

1

,

2

,...

dimana

dan terdapat

(state penerima)

}

,

,

,...,

{

)

,

(

0

*

j

k

i

m

q

q

q

w

q

F

q

k

(65)

q

q

k

)

,

(

0

*

m

w

q

 

M

L

w

m

F

q

k

i

q

m

w

0

q

q

k

m

w

q

k

F

j

q

m

w

(66)

0

q

5

q

4

q

3

q

2

q

1

q

a

a

a

b

q

0

, q

5

F 

0

q

3

q

2

q

1

q

0

4

5

*

,

,

aa

q

q

q

aa 

L

(M

)

(67)

0

q

5

q

4

q

3

q

2

q

1

q

a

a

a

b

q

0

, q

5

F 

0

q

3

q

2

q

1

q

0

2

3

0

*

q

,

ab

q

,

q

,

q

ab 

L

 

M

(68)

0

q

5

q

4

q

3

q

2

q

1

q

a

a

a

b

q

0

, q

5

F 

0

q

3

q

2

q

1

q

0

4

5

*

,

,

abaa

q

q

q

aaba 

L

(M

)

(69)

0

q

5

q

4

q

3

q

2

q

1

q

a

a

a

b

q

0

, q

5

F 

0

q

3

q

2

q

1

q

0

 

1

*

,

aba

q

q

aba 

L

 

M

(70)

0

q

5

q

4

q

3

q

2

q

1

q

a

a

a

b

0

q

3

q

2

q

1

q

   

M

ab

*

 

ab

*

{

aa

}

L

(71)
(72)

Ekuivalensi Mesin Otomata

Definisi:

Mesin

M

1

dikatakan ekuivalen dengan mesin

M

2

Mesin

dikatakan ekuivalen dengan mesin

jika

1

M

M

2

M

1

L

M

2

(73)

0

q

q

1

0

1

NFA

M

1

{

10

}

*

L

1

M

Contoh mesin yang ekuivalen

0

q

q

1

q

2

0

1

1

,

0

DFA

M

2

{

10

}

*

L

2

M

(74)

Teorema:

Bahasa

diterima

oleh NFA

Bahasa

Regular

NFA dan DFA memiliki kekuatan komputasi yang sama,

dan menerima set bahasa yang sama

Bahasa yang

diterima

(75)

Bahasa

diterima

oleh NFA

Bahasa

Regular

Kita tunjukkan:

Pembuktian:

AND

Set equality A = B dapat dibuktikan

dengan A subset B dan A superset dari B

Bahasa

diterima

oleh NFA

Bahasa

Regular

AND

(76)

Pembuktian tahap 1

Bahasa

diterima

oleh NFA

Bahasa

Regular

Setiap DFA secara otomatis juga merupakan NFA

Setiap bahasa

yang diterima oleh DFA

Pastilah juga diterima oleh NFA

(77)

Pembuktian tahap 2

Bahasa

diterima

oleh NFA

Bahasa

Regular

Setiap NFA dapat dikonversi ke bentuk DFA yang ekuivalen

Setiap bahasa

L

yang diterima oleh NFA

(78)

Konversi NFA ke DFA

a

b

a

0

q

q

1

q

2

NFA

M

DFA

 

q

0

M 

(79)

a

b

a

0

q

q

1

q

2

NFA

M

}

,

{

)

,

(

0

1

2

*

q

q

a

q

DFA

 

q

0

2

1

, q

q

a

M 

(80)

a

b

a

0

q

q

1

q

2

NFA

M

)

,

(

0

*

b

q

Set kosong

DFA

 

q

0

2

1

, q

q

a

b

M 

(81)

a

b

a

0

q

q

1

q

2

NFA

a

M

}

,

{

)

,

(

1

1

2

*

q

q

a

q

)

,

(

2

*

a

q

q

1

, q

2

union

DFA

 

q

0

2

1

, q

q

a

b

a

M 

(82)

a

b

a

0

q

q

1

q

2

NFA

a

M

}

{

)

,

(

1

0

*

q

b

q

}

{

)

,

(

2

0

*

q

b

q

 

q

0

union

DFA

 

q

0

2

1

, q

q

a

b

a

b

M 

(83)

a

b

a

0

q

q

1

q

2

NFA

a

M

DFA

 

q

0

2

1

, q

q

a

b

a

b

M 

(84)

a

b

a

0

q

q

1

q

2

NFA

a

M

Akhir konstruksi

F

q 

1

DFA

 

q

0

2

1

, q

q

a

b

a

b

M 

q

1

,

q

2

F

(85)

Prosedur konversi NFA ke DFA

Input:

suatu NFA

Output:

suatu DFA yang ekuivalen

M

M 

Output:

suatu DFA yang ekuivalen

sehingga

M 

 

M

L

(M

)

(86)

Jika NFA memiliki state

Maka DFA memiliki state yang berasal dari

power set

,...

,

,

1

2

0

q

q

q

power set

 

,

 

,

,

 

,

,

,

,

....

,

q

0

q

1

q

0

q

1

q

1

q

2

q

3

(87)

1.

State awal NFA:

q

0

Langkah-langkah konversi

langkah

state awal DFA:

0

,

 

0

,

*

q

q

q

0

,

(88)

a

b

a

0

q

q

1

q

2

NFA

M

0

  

0

*

q

,

q

DFA

 

q

0

M 

(89)

2.

Untuk setiap state DFA

komputasikan pada NFA

}

,...,

,

{

q

i

q

j

q

m

q

a

a

q

j

i

...

,

*

,

*

}

,...,

,

{

q

k

q

l

q

n

Union

langkah

tambah transisi ke DFA

q

m

,

a

*

...

n

l

k

{

q

,

q

,...,

q

},

a

{

q

,

q

,...,

q

}

(90)

a

b

a

0

q

q

1

q

2

NFA

}

,

{

)

,

(

*

q

0

a

q

1

q

2

M

Example

 

q

0

2

1

, q

q

a

DFA

M 

(91)

3.

Ulangi langkah

2

untuk setiap state pada DFA

dan semua simbol dalam alfabet hingga tidak

langkah

dan semua simbol dalam alfabet hingga tidak

ada lagi state yang bisa ditambahkan ke DFA

(92)

a

b

a

0

q

q

1

q

2

NFA

a

M

DFA

 

q

0

2

1

, q

q

a

b

a

b

M 

(93)

4.

Untuk setiap state pada DFA

jika

merupakan state penerima pada NFA

}

,...,

,

{

q

i

q

j

q

m

j

q

langkah

jika

merupakan state penerima pada NFA

maka,

merupakan state penerima pada DFA

j

}

,...,

,

(94)

a

b

a

0

q

q

1

q

2

NFA

a

F

q 

1

M

DFA

 

q

0

2

1

, q

q

a

b

a

b

q

1

,

q

2

F

M 

(95)

Jika kita berhasil mengkonversi NFA

ke DFA maka kedua otomata

tersebut ekuivalen

M

 

M

L

M

L

M 

Lemma:

Proof:

 

M

L

M

L

 

M

L

M

L

dan

Kita akan tunjukkan:

(96)

 

M

L

M

L

Pertama sekali tunjukkan:

Kita buktikan dengan cara:

)

(M

L

w

Kita buktikan dengan cara:

)

(M

L

(97)

)

(M

L

w 

w

0

q

q

f

Kita pertimbangkan:

NFA

k

w

1

2

0

q

1

2

k

q

f

simbol

(98)

i

Merupakan ringkasan dari sub-path

i

q

q

j

simbol

i

Merupakan ringkasan dari sub-path

i

q

q

j

(99)

0

q

q

f

k

w

1

2

1

2

k

:

M

)

(M

L

w

Kita tunjukkan jika

NFA

}

,

{

q

0

1

2

k

:

M 

}

,

{

q

f

)

(M

L

w

maka

DFA

(100)

0

q

q

m

n

a

a

a

v

1

2

1

a

a

2

a

n

:

M

q

i

q

j

q

l

Secara lebih umum, kita tunjukkan bahwa pada

M

(string apapun)

NFA

1

a

a

2

a

n

:

M 

}

,

{

q

{

q

,

}

{

q

,

}

{

q

,

}

maka

DFA

}

,

{

q

(101)

0

q

a

1

:

M

q

i

Pembuktian secara induksi

Dasar induksi:

1

a

v 

|

| v

NFA

1

|

|

v

1

a

:

M 

}

,

{

q

i

Adalah benar sewaktu pengkonversian menjadi

M

DFA

}

,

{

q

0

(102)

Hipotesis induksi:

1

|

v 

|

k

0

q

a

1

a

2

k

q

d

a

:

M

q

i

q

j

q

c

k

a

a

a

v

1

2

NFA

Anggap seperti di bawah

0

q

:

M

q

i

q

j

q

c

1

a

a

2

a

k

:

M 

}

,

{

q

{

q

,

}

{

q

,

}

{

q

,

}

DFA

}

,

{

q

(103)

Langkah induksi:

|

v

|

 k

1

0

q

a

1

a

2

k

q

d

a

:

M

q

i

q

j

q

c

1

1

2

1

k

k

v

k

a

v

a

a

a

a

v



e

q

1

k

a

NFA

Maka terbukti benar dengan adanya konstruksi

M

0

:

M

q

i

q

j

q

c

1

a

a

2

a

k

:

M 

}

,

{

q

{

q

j

,

}

{

q

,

}

{

q

,

}

v

1

k

a

}

,

{

q

DFA

}

,

{

q

(104)

0

q

q

f

k

w

1

2

1

2

k

:

M

)

(M

L

w

Oleh karena itu jika

NFA

1

2

k

:

M 

}

,

{

q

f

DFA

maka

}

,

{

q

0

(105)

Kita telah tunjukkan:

L

 

M

L

M

Dengan cara yang sama, kita juga dapat buktikan:

 

M

L

M

L

 

M

L

M

L

(106)

Jadi apa kesimpulan

akhirnya?

Referensi

Dokumen terkait

Keberadaan bakteri pengurai sangat berpengaruh terhadap persediaan oksigen yang secara alami terlarut dalam air tambak, sehingga penambahan mikroba pengurai kedalam kolam

Perlakuan pupuk organik (kompos, pupuk kandang sapi, dan pupuk kandang ayam) mampu meningkatkan nilai rata-rata komponen hasil (bobot basah dan bobot kering

1) Diharapkan dapat memberikan ilmu dan pengetahuan baru bagi dunia kesehatan bahwa terdapat pengaruh pemberian pakan antioksidan buah mengkudu (Morinda citrifolia)

Karena larva yang baru habis kuning telurnya, makanan yang pertama sekali dicarinya berupa pakan alami seperti plankton (phytoplankton dan zooplankton). Jenis

Hasil penelitian yang dilakukan menunjukkan terdapat perbedaan yang signifikan pada abnormal return saham sebelum dan sesudah stock split pada perusahaan yang

Jang tidak menjenan^kan hati rakjat adalah >banjak. Djurang jang menguak antara bangsa Barat dan bangsa Bumiputera, sangat lebar, dan kian tahun kian melebar

Kehidupan bermasyarakat merupakan hal yang perlu diamati karena didalamnya selalu mengalami pergeseran, walaupun pada dasarnya manusia tercipta dalam bentuk yang sempurna.

Pola asuh authoritative yang memiliki kecenderungan pada sikap “acceptance” dan kontrol yang tinggi, bersikap responsif terhadap kebutuhan anak, mendorong anak untuk