Pertemuan 3 Finite Automata

Download Report

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.