TBA Automata Informatika

121
1 TEORI BAHASA DAN AUTOMATA MATERI POKOK : Formalisasi suatu Tata Bahasa dengan alat bantu mesin matematis BIDANG-BIDANG APLIKASI : Desain Compiler : Lexical, Scanner, Parser Text Editor : Pattern Matching Desain Sirkuit : Minimisasi Sirkuit

description

ggdfgfgfdgdgfdrrrrrr2323232sdasdasdasdhhhjjhjhjhjjdsfsfdsfdsfssssssssddddddddddddddrfeeeeeeeeeeeeeeeeeerrrrrrrrrrrrrrrrrrttttttttttttttttttttttt

Transcript of TBA Automata Informatika

Page 1: TBA Automata Informatika

1

TEORI BAHASA

DAN AUTOMATA

MATERI POKOK :Formalisasi suatu Tata Bahasa dengan alat bantu

mesin matematis

BIDANG-BIDANG APLIKASI : Desain Compiler : Lexical, Scanner, Parser

Text Editor : Pattern Matching

Desain Sirkuit : Minimisasi Sirkuit

Page 2: TBA Automata Informatika

Teori Automata : Sinar Sinurat 2

Contoh : Transisi Bahasa oleh Automata

Page 3: TBA Automata Informatika

Teori Automata : Sinar Sinurat 3

STRING, ALPHABET DAN LANGUAGE

STRING :

♦ Rangkaian simbol, contoh : aa, bb, ab, ba,

dan lain-lain

♦ Simbol : Huruf : a,..,z, A,..,Z

Digit : 0..9

Khusus : $ , _ , = , ( , ) , dll

♦ Panjang String : |w| yaitu jumlah simbol

dalam String : w = abc dan |w| = 3

♦ String Kosong : (ε) ; Tidak berisi simbol |ε|=0

Page 4: TBA Automata Informatika

4

♦ Prefix : Bagian depan String, misalnya : w=abc

maka prefix (w) = ε, a, ab, abc

♦ Suffix : Bagian belakang string, misalnya : w=abc

maka Suffix (w) = ε, c, bc, abc

♦ Infix : bagian tengah string, misalnya : w=abc

maka Infix (w) = ε, b

♦ Proper Prefix / Suffix : Prefix / Suffix kecuali w

sendiri

Proper Prefix w = a, ab

Proper Suffix w = c, cb

♦ Konkatenasi : Rangkaian dua string, misalnya :

"hari" ,"ini" maka "hariini"

ε w = wε = w

Page 5: TBA Automata Informatika

Teori Automata : Sinar Sinurat 5

♦ Alphabet (∑) : Himpunan (set) simbol

∑1 = { a, b, …, z }

∑2 = { 0, 1 }

♦ Language (L) : Himpunan String dari alphabet

Ø language satu sama lain berbeda

{ε}

Ø = Empty set

{ε} = Language yang terdiri dari ε (empty) string

LANGUAGEFinite : Contoh : L1 = {a, ab, abb}

Infinite : Contoh : L2 = himpunan polindrome atas

∑ = {0,1}

Page 6: TBA Automata Informatika

Teori Automata : Sinar Sinurat 6

♦ Konkatenasi Language :

L,M : Language

L.M : Konkatenasi L dan M

LM : {xy | x dalam L, y dalam M}

Contoh :

L = {0,1,00,01,10} dan M = {10,11}

L.M={010,011,110,111,0010,0011,0110,0111,1010,1011}

♦ Union Language

L υ M : Union L dan M

♦ Intersection Language

L ∩ M : {xy| x dalam L dan y dalam M }

dari contoh di atas : L ∩ M = {10}

Page 7: TBA Automata Informatika

Teori Automata : Sinar Sinurat 7

CLOSURE LANGUAGE

* : Nol atau beberapa kali (Kleene Closure)

+ : Satu atau beberapa kali (Positive Closure)

L : Suatu Language

Sehingga :

L* = L0 L1 L2 … Ln

L+ = L1 L2 … Ln

L+ = L L*

∑* : Himpunan string dari simbol-simbol

dalam ∑

Page 8: TBA Automata Informatika

Teori Automata : Sinar Sinurat 8

GRAPH (GRAFIK)

Graph G = (V, E)

V = Vertex / Node / Simpul

E = Edge / pasangan Vertex / Line

V = {1,2,3,4,5}

E = {a,b,c,d}

Page 9: TBA Automata Informatika

Teori Automata : Sinar Sinurat 9

PATHRangkaian vertex V1,V2, … ,VK, k≥1, dan

Vi→Vi+1 suatu “arc“, 1≤ i ≤ k

Panjang Path

V1,V2,…,VK, k≥1, maka panjang path-nya k–1

CYCLESuatu Path V1, V2,… ,VK, dimana v1= vK

Page 10: TBA Automata Informatika

Teori Automata : Sinar Sinurat 10

DIRECTED GRAPH

Graph G = (V,E)

V : Himpunan vertex

E : “ Ordered Pair “ atau “ arc “ v→w : arc dari v ke w

Contoh :

Page 11: TBA Automata Informatika

Teori Automata : Sinar Sinurat 11

TREEDigraph dengan sifat-sifat :

1. Satu vertex disebut “ root “

2. Ada path dari root ke setiap node/ vertex

3. Setiap vertex mempunyai satu predecessor (father)

4. Successor setiap vertex diurut dari kiri ke kanan (son)

Contoh :

Page 12: TBA Automata Informatika

Teori Automata : Sinar Sinurat 12

• Son : Successor suatu vertex

• Father : Predecessor suatu vertex

• Ancestor : Path dari v1 ke v2,

(Nenek Moyang)

v1=ancestor ; v2= descendant

Keturunan (anak dari cucu)

• Leaf : Vertex tanpa son

• Interior (leave) : Vertex bukan leaf

• Sabling : Saudara kandung

• Depth : Kedalaman suatu pohon

• Height : Ketinggian (level) dari suatu

pohon

Page 13: TBA Automata Informatika

Teori Automata : Sinar Sinurat 13

PEMBUKTIAN INDUKTIF1. Basis : Proposisi benar untuk elemen dasar/

terkecil

2. Hipotesa Induksi :

Jika proposisi benar untuk elemen n, maka

benar untuk n+1, sehingga : P(n)→P(n+1)

Buktikan :

1. Basis :

Page 14: TBA Automata Informatika

Teori Automata : Sinar Sinurat 14

2. Induksi :

Asumsi : P(n) :

Buktikan : P(n+1) :

Sementara itu :

Jadi :

Page 15: TBA Automata Informatika

Teori Automata : Sinar Sinurat 15

Contoh :Buktikan :

1. Basis : P(0) :

2. Induksi :

Tunjukkan :

Page 16: TBA Automata Informatika

Teori Automata : Sinar Sinurat 16

Perhatikan bahwa :

Page 17: TBA Automata Informatika

17

Latihan :Buktikan secara induktif kedua definisi berikut sama

(AB)

A.Palindrome adalah string yang bila dibaca dari

depan dan dari belakang sama.

B.1. e adalah polindrome

2. Jika a suatu simbol maka, a palindrome

3. Jika a suatu simbol dan x palindrome maka

axa adalah palindrome

4. Suatu string bukan palindrome kecuali

memenuhi (1), (2), (3)

Petunjuk : Buktikan dengan induksi panjang string di atas

Page 18: TBA Automata Informatika

Teori Automata : Sinar Sinurat 18

NOTASI SET

1. Union : {X | P(X)} atau

2. {X dalam A | P(X)}

P(X) : Pernyataan tentang X yang benar.

Misalnya : Himpunan bilangan genap :

{i | i dan j adalah integer dan i=2j}

KESAMAAN SET

A, B : dua set

A=B jika AB dan BA

Page 19: TBA Automata Informatika

Teori Automata : Sinar Sinurat 19

MANIPULASI SET

1. Union : AυB = {x | x∊A atau x∊B}

2. Intersection : A∩B = {x | x∊A dan x∊B}

3. Difference : A–B = {x | x∊A dan xB}

4. Cartesian Product :

AxB = {(a,b)|a∊A dan b∊B}

(a,b) : Ordered Pair

5. Power Set :

2A : Himpunan semua subset dari A

Page 20: TBA Automata Informatika

Teori Automata : Sinar Sinurat 20

Contoh : A = {1,2}, B = {2,3}

maka :

A υ B = {1, 2, 3}

A ∩ B = {2}A – B = {1}

B – A = {3}

A x B = {(1,2), (1,3 ), (2,2), (2,3)}

2A = {{},{1},{2},{1,2}}

Jumlah anggota set |

|A| = m

|B| = n

|AxB| = m.n

Page 21: TBA Automata Informatika

Teori Automata : Sinar Sinurat 21

RELASI

Himpunan pasangan elemen, elemen pertama dari “Domain“, elemen kedua dari “Range = co-domain“

R : suatu relasi

aRb artinya (a,b)∊R

aRb artinya (a,b)R

Contoh :

- R : “lebih kecil dari “

(4,6)∊R atau (7,5)R

- R : “kelipatan dua dari “

(4,2)∊R atau (3,5)R

Page 22: TBA Automata Informatika

Teori Automata : Sinar Sinurat 22

SIFAT-SIFAT RELASI

Misalkan R suatu relasi, R bersifat :

1. Reflexive : aRa, a, a∊A

2. Irreflexive : aRa, a, a∊A

3. Not Reflexive : aRa, a, aA

4. Transitive : aRb, bRc aRc

5. Not Transitive : aRb, bRc aRc

6. Symmetric : aRb dan bRa, a,b ; a∊A, b∊B

7. Asymmetric : aRb, bRa

8. Not Symmetric : aRb dan bRa, a,b ; a∊A, b∊B

Contoh :

Relasi “<“ (lebih kecil dari) bersifat :

- Transitif

- Asymmetric

- Irreflexive

Page 23: TBA Automata Informatika

Teori Automata : Sinar Sinurat 23

EQUIVALENCE RELATION

Relasi R yang bersifat Reflexive, Symmetric,Transitive

R membagi set S ke dalam “Disjoint Equivalence Classes“.

S = S1 S2 … Sn ; ij

1. Si∩S

j =

2. a,b∊Si ; aRb

3. a∊Si ; b∊Sj ; aRb

Contoh :

“equality“ (=) : Equivalence relation

Page 24: TBA Automata Informatika

24

CLOSURE RELASI

• P : himpunan sifat relasi

• R : suatu relasi

• P-Closure(R) : Relasi terkecil R„ memiliki sifat-sifat dalam P

• R+ : Transitive closure dari R

1. (a,b)∊R, maka (a,b)∊R+

2. (a,b)∊R+, (b,c)∊R+ maka (a,c)∊R+

3. Elemen lain hanya melalui (1) dan (2)

• R* : Reflexive Transitive Closure dari R

Jadi : R+={(a,a}|a dalam S}

Contoh :

R={(1,2),(2,2),(2,3)} relasi atas {1,2,3} maka :

R+={(1,2),(2,2),(2,3),(1,3)}

R*={(1,1),(1,2),(1,3),(2,2),(2,3),(3,3)}

Page 25: TBA Automata Informatika

Teori Automata : Sinar Sinurat 25

FINITE AUTOMATION

Sistim Finite State :

Deterministic Finite Automata (DFA)

Non-Deterministic Finite Automata (NFA)

Push Down Automata (PDA)

Turing Machine (TM)

Linear Bounded Automata (LBA)

Contoh Finite State System :

Sistem elevator, Switching circuit, Program text editor

Page 26: TBA Automata Informatika

Teori Automata : Sinar Sinurat 26

Deterministic Finite Automata-DFA

Model matematis

Input Output Discrete (antar event tidak harus saling terkait/ partial)

Konfigurasi internal disebut “State“

Transisi antar state atas simbol input

Hanya ada satu simbol input yang sama pada transisi dari satu state ke state lainnya

q0 : Start state

qf : Final state (satu atau lebih)

Directed Graph menggambarkan FA disebut “Transition Diagram“

Page 27: TBA Automata Informatika

Teori Automata : Sinar Sinurat 27

Contoh :

FA menerima string dimana jumlah „0„ dan „1„ genap

State : q0, q1, q2, q3

Start state : q0 dan final state : q0 (double circle)

Simbol input : {0,1}

Page 28: TBA Automata Informatika

Teori Automata : Sinar Sinurat 28

Definisi Formal :

FAM = (Q, ∑, δ, qo, F)

dimana :

Q : Himpunan state

∑ : Himpunan simbol input

q0∊Q : Start / initial state

FQ : Himpuan final state

δ : Qx∑ : Fungsi transisi

δ(q, a) : dalam state „q‟ membaca input „a„

Page 29: TBA Automata Informatika

Teori Automata : Sinar Sinurat 29

FUNGSI TRANSISI UNTUK STRING

δ : Qx∑*→Q ; δ : Fungsi transisi

1. δ(q,ε)=q

{pergantian state tidak ada tanpa membaca simbol input}

2. Untuk semua string w dan input a,

δ(q,wa) = δ(δ(q,w),a)

p = δ(q,w)

sehingga : δ(q,wa) menjadi δ(p,a)

δ dan p selalu sejalan :

δ(q,a) = δ(δ(q,ε),a) = δ(q,a)

δ(q,w) adalah state dimana FA akan berada setelah membaca string w, dengan start state q;

δ(q,w)=p dan ada path berlabel w dari state q ke p

Page 30: TBA Automata Informatika

Teori Automata : Sinar Sinurat 30

SIMBOL YANG DIGUNAKAN

1. Q : himpunan state, dimana : q, p : state , qo : start

2. ∑ : alphabet input, dimana : a,b digit : simbol input

3. δ : fungsi transisi

4. F : himpunan final/ accepting state

5. w,x,y,z : string simbol input

String yang diterima :

String x diterima bila δ(qo,x) = p dimana p dalam F

LANGUAGE YANG DITERIMA

Language yang diterima oleh F A M adalah

{x| δ(q0,x) dalam F}

Page 31: TBA Automata Informatika

31

REGULER LANGUAGE / SET

Language yang diterima oleh suatu FA

Contoh :

Q = {q0, q1, q2, q3}

S = {q0}

∑ = {0,1}

F= {q3}

δ : digambarkan tabel berikut :

string yang diterima :

01101

00110111

awal dgn 0, akhir dengan 1

Page 32: TBA Automata Informatika

Teori Automata : Sinar Sinurat 32

NON DETERMINISTIC FINITE AUTOMATON (NFA)

Lebih dari satu transisi untuk input yang sama dari suatu state

Contoh :

String diterima

Bila ada suatu path berlabel w dari start state ke salah satu

final state, maka w diterima

Page 33: TBA Automata Informatika

Teori Automata : Sinar Sinurat 33

Contoh : Input : w=01001

Catatan :

Bila mungkin ada lebih dari satu path yang

berlabel w tetapi harus ada salah satu path yang

berakhir di final state, agar w dapat diterima

Page 34: TBA Automata Informatika

Teori Automata : Sinar Sinurat 34

DEFINISI FORMAL NFA

M = (Q, ∑, δ, q0, F) ; Q, ∑ , q0, F : seperti pada FA

δ : Q x ∑ → 2Q

δ(q , a) : himpunan state p sehingga ada transisi

berlabel a dari q ke p.

δ NFA di atas :

Page 35: TBA Automata Informatika

Teori Automata : Sinar Sinurat 35

Transisi atas String :

1. (q,ε) = {q}

2. (q,wa) = {p| r dalam (q,w), p dalam (r, a)}

δ : 2Q x ∑* → 2Q

3. δ(P,w) =

Catatan : (q,a) = δ(q,a)

Language Accepted / diterima :

NFA M = (Q,∑,δ,qo,F),

L(M) = {w| δ(qo,w) elemen dari F}

δ^

δ^

δ^

δ^

υδ(q,w), PQQ in p

δ^

Page 36: TBA Automata Informatika

36

Contoh :

NFA di atas dengan input : 01001

δ(q0, 0) = {q0,q3}

δ(q0,01) = δ (δ(q0,0),1)

= δ({q0,q3},1)

= δ(q0,1) δ(q3,1)

= {q0,q1}

δ(q0,010) = {q0,q3}

δ(q0 ,0100) = {q0,q3,q4}

δ(q0,01001) = {q0,q3,q4}

Theorem :

Bila L adalah L(M) suatu NFA, maka L diterima FA

Page 37: TBA Automata Informatika

Teori Automata : Sinar Sinurat 37

FINITE AUTOMATA DENGAN -MOVE Memungkinkan transisi atas input kosong (empty) .

Contoh :

Fungsi Transisi :

δ : Qx(∑υ{})→ 2Q

δ(q,a) : a mungkin atau a∊∑

Tabel Transisi contoh di atas :

Jadi δ(q,a) sebagai

NFA

RE : 0*1*2*

Page 38: TBA Automata Informatika

Teori Automata : Sinar Sinurat 38

-CLOSURE(q)

Himpunan state p dimana ada path dari q ke p berlabel

Page 39: TBA Automata Informatika

39

LANGUAGE ACCEPTED

L diterima NFA dengan -move :{w|δ(q0,w) dalam F}

Contoh :

Untuk NFA di atas :

δ(q0,ε) = -Closure(q0) = {q0, q1, q2}

δ(q0,0) = -Closure(δ( (q0,∊), 0))

= -Closure(δ({q0,q1,q2},0))

= -Closure(δ(q0,0) δ(q1,0)δ(q2,0))

= -Closure({q0} υ)

= -Closure ({q0}) ={q0,q1,q2}

Selanjutnya :

= (q0,01) = -Closure(δ( (q0,0),1)

= -Closure(δ({q0,q1,q2},1))

= -Closure({q1}) = {q1,q2}

δ^

δ^

δ^

Page 40: TBA Automata Informatika

40

Theorem :

Jika L diterima NFA dengan -Transition maka L diterima NFA tanpa -Transition.

MEMBENTUK DFA DARI NFA DENGAN Algoritma : Input : Suatu NFA

Output : Suatu DFA menerima language yang sama

WHILE there‟s an unmarked state X=(S1,S2,…,Sn) of D Do

BEGIN

mark X ;

FOR each input symbol a Do Begin

Let T be the set of states to which there is a transition on

a from some states S in X;

y := ε–CLOSURE(T);

IF y has not been added to the set of states of D THEN

make y an “unmarked“ state of D;

add a transition from X to Y labeled a if not already present

END

END

Page 41: TBA Automata Informatika

Teori Automata : Sinar Sinurat 41

Konversi NFA dengan RE Ke DFA

Strategi pembuatan DFA dari RE yang

ada dengan mengikuti aturan berikut :

• Augmental RE r#

Pohon sintaks dari Augmental RE r

Page 42: TBA Automata Informatika

Teori Automata : Sinar Sinurat 42

Rules untuk menentukan nullable firstpos,

lastpos

Page 43: TBA Automata Informatika

43

Contoh :

DFA yang dihasilkan :

{1} {1} {2} {2}

{1,2} {1,2}

{1,2} {1,2} {3} {3}

{1,2,3} {3} {4} {4}

{4} {1,2,3}

{1,2,3}

{1,2,3}

{5} {5}

{5} {6} {6}

{6}

#

F

b

F

b

F

a

F*

a

Fb

F

F

F

T

F

F

F

Jadi Root yang diperoleh

dari pohon sintaks adalah

{1,2,3} = A

Page 44: TBA Automata Informatika

Teori Automata : Sinar Sinurat 44

REGULAR EXPRESSION (RE)

Ekspresi sederhana untuk language yang diterima FA

Misalkan ∑ suatu alphabet, RE didefinisikan secara

recursive sebagai berikut :

1. : RE yang menunjukkan “Empty Set“

2. ε : RE yang menunjukkan {ε}

3. Untuk setiap a∊∑ ; a : RE yang menunjukkan {a}

4. Jika r dan s adalah RE untuk language R dan S,

maka :

r+s : RE untuk R S ≈ R|S

r*s : RE untuk R S ≈ RS

r* . : RE untuk R*

r+ . : RE untuk R+

Page 45: TBA Automata Informatika

Teori Automata : Sinar Sinurat 45

SIFAT-SIFAT R.E.• r|s = s|r

• r|(s|t) = (r|s)|t

• (rs)t = r(st)

• r(s|t) = rs|rt

• r = r = r

• r* = (r|)*

• r** = r *

• r* = r +|

• r+ = r r *

Contoh :1. 00 : RE untuk {00}

2. (0+1)* : RE utk himpunan string yang terdiri 0 dan 1

3. (0+1)* 00 (0+1)* meliputi : 00, 10010, 010011

4. (1+10)* meliputi : ε, 1, 110, dan seterusnya

5. (0|1)* 001 : 1100001, 0011001, 1001, 11001, …

6. (aa|ab|ba|bb)* meliputi : ε, aa, aabb, …

7. (a|b)(a|b)(a|b)(a|b) meliputi : aaaa, abba, …

Page 46: TBA Automata Informatika

Teori Automata : Sinar Sinurat 46

THEOREM

Jika r suatu RE, maka suatu NFA dengan transisi ε yang menerima L(r).

RE adalah rangkaian satu atau beberapa input string yang ditransisi antar state

Pembuktian :

Secara induktif atas jumlah operator

Basis : (Nol Operator)

Reguler ekspresi r berbentuk ε, atau a

NFA untuk itu adalah :

Page 47: TBA Automata Informatika

47

Induksi : (Satu atau lebih operator)

1. r = r1 + r2 , NFA yang sepadan :

2. r = r1.r2 , NFA yang sepadan :

r=ε r=

Page 48: TBA Automata Informatika

48

3. r = r* , NFA yang sepadan :

Contoh : RE : 01*+1 = (0(1)*)+1

r1=1 : NFA berikut :

r2=0 : NFA berikut :

r3=1 : NFA berikut :

r2=r3* : NFA berikut :

r5=r2r4 NFA berikut :

R6=r5+r1

Page 49: TBA Automata Informatika

49

THEOREM

Jika L diterima suatu DFA , L didefinisikan oleh Reguler Ekspressi

Hubungan antara FA dan RE :

TWO–WAY FINITE AUTOMATA : (2 DFA)

Tape head bisa bergerak kekiri atau ke kanan

δ:Q x ∑ → Q x {L , R} ; L : bergerak ke kiri ; R : bergerak ke kanan

δ(q,a)=(p,L) : - dalam state q

- input a

- masuk state p

- bergerak kekiri

δ(q,a) = (p,r) : - dalam state q

- baca input a

- masuk state p

- bergerak ke kanan

Page 50: TBA Automata Informatika

50

INSTANTENOUS DESCRIPTION ( ID) : ├ : relasi atas ID

- String input

- State sekarang

- Posisi tape head

: m pindah dari I1 ke I2 dalam satu move

Misalkan wqx ID maka :

wx : string input, q:state sekarang, input head membaca simbol pertama dalam x

Relasi didefinisikan sebagai :

1. a1a2… ai-1qai… an ├ a1a2… ai-1aiPai+1… an ; bila δ(q,qi)=(p,R)

2. a1a2… ai-2ai-1qai…an ├ a1a2…ai-2pai-1ai…an ; bila δ(q,ai)=(p,L), i>1

L(M) = {w| q0w Wp ; untuk p∊F)

Theorem :

Jika L diterima suatu 2DFA maka L regular

I1 I2m

*

Page 51: TBA Automata Informatika

Teori Automata : Sinar Sinurat 51

Contoh :

Suatu 2DFA dengan tabel transisi :

Rangkaian ID :

q0101001 ├ 1q101001 ├ 10q11001 ├

1q201001 ├ 10q01001 ├ 101q1001 ├

1010q101 ├ 10100q11 ├ 1010q201 ├

10100q01 ├ 101001q1

Page 52: TBA Automata Informatika

Teori Automata : Sinar Sinurat 52

FINITE AUTOMATA DENGAN OUTPUT1. Moore Machine :

M = (Q, ∑, ∆, δ, λ, q0)

Q,∑,δ dan q0 : seperti pada DFA

∆ : alphabet output

λ : Q→∆Bila input a1, a2… an ; n ≥ 0, maka output :

λ(q0)λ(q1)..λ(q0),q0,q1,..,qn: state dan δ(qi-1,ai)=qi ; 1>i>n

Contoh Mesin Moore untuk Modulus 3

Page 53: TBA Automata Informatika

53

λ(qj) = j, j = 0,1 dan 2

Input : 1010

State yang dimasuki : q0 , q1 ,q2 , q2, q1

Output : ABCCB = 1010

2. Mealy Machine :

M = (Q,∑,∆,δ,λ,q0) ; Q,∑, δ dan q0 : seperti pada DFA

∆ : alphabet output ; λ : Qx∑ ke ∆

Input a1, a2,…an

Output : λ (q0, a1)λ(q1,a2)… λ(qn-1, an)

dimana q0,q1,…qn : rangkaian state sehingga

δ(qi-1, ai) = qi ; 1≤ i ≤ n

Page 54: TBA Automata Informatika

54

Contoh :

Mesin Mealy yang membedakan dua input yang

berdekatan

Output : ‟y‟ : bila sama dan „n‟ : bila berbeda

M = ({q0,p0,p1}, {0,1},{y,n},d,I,q0}

Label a/b artinya : δ(p,a) = q dan λ(p,a) = b

Input : 01100

Output : nnyny

Page 55: TBA Automata Informatika

Teori Automata : Sinar Sinurat 55

SIFAT-SIFAT REGULER SET :

Pumping Lemma (Reguler Set)

Suatu DFA :

M = (Q,∑, δ, q0, F) dengan n state menerima a1,a2,…am ;,

m≥n, i=1,2,…,m ; δ(q0,a1, a2…am) = qi ; maka q0, q1, ... ,qn

tidak semua berbeda atau qj=qk ;, 0≤j<k≤n

aj+1...Ak : loop

jika ai...ajak+1...am, dalam L(M) maka ai...aj(aj+1...ak)iak+1...am,

dalam L(M) ; i≥0

Page 56: TBA Automata Informatika

Teori Automata : Sinar Sinurat 56

Lemma (PL)

Misalkan L reguler set, terdapat konstanta n sehingga jika z∊L dan |z|≥ n ; z=uvw dan |uv| ≤ n, |∀|≥ 1 dan untuk semua i≥ 0 ; uvi w ∊L

Contoh :

Buktikan L={aibi | i≥1} tidak reguler.

Bukti :Assume L reguler, terdapat nilai n konstan sehingga z∊L dan |z|≥ n dan z=uvw, |uv|≤n ; |∀|≥1 ; uvi w∊L∀i.

Misalkan z = an bn ∊ L, uv terdiri dari a, |u|=m1 , |v|=m2 ; m1≥1,

m1+m2≤ n ; |v|≥1 dan uvi w∊L, ∀i≥0.

Page 57: TBA Automata Informatika

Teori Automata : Sinar Sinurat 57

Perhatikan uv2w : n+m2>n jumlah a sedangkan b sama dengan n.

Kontradiksi.

Sifat- sifat Reguler Set “ Closed Under “ :

1. Gabungan (Union) : L3=L1∪L2 ; L3 reguler bila L1 dan L2 reguler

2. Konkatenasi (concatenation) : L4=L1.L2 ; reguler bila L1dan L2 reguler

3. Kleene Closure : L1* reguler bila L1 reguler

4. Komplementasi (complement) : apabila L reguler set dan L∊S* maka ∑*-L reguler

5. Irisan (Intersection) : L5=L1∩L2 ; reguler apabila L1 dan L2 reguler

6. Substitusi (substitution) : Suatu fungsi f:∑ ke subset dari ∆* ; ∆ : suatu alphabet

Page 58: TBA Automata Informatika

Teori Automata : Sinar Sinurat 58

Fungsi f dapat diperluas ke string sebagai berikut:

• F(ε)=ε

• f(xa)=f(x) f(a)

Fungsi f dapat diperluas ke language :

Contoh :f(0)=a , f(1)=b* maka : f(010)=ab*b

Jika L=0*(0+1)1*

maka : f(L)=a*(a+b*)(b*)*

Page 59: TBA Automata Informatika

Teori Automata : Sinar Sinurat 59

Minimisasi Finite Automata :

State p dan q “distinguishable“ bila δ(p,x) dalam F dan δ(q,x) tidak dalam F

Algorima :

Begin

For p in F and q in Q-F do mark (p,q)

For setiap pasang (p,q) dalam FxF atau (Q-F)x(Q-F) do

If untuk suatu input a, (d(p,a),d(q,a)) diberi mark then Begin mark (p,q) secara rekursif mark semua pasangan untuk list (p,q)

End

For semua simbol input a do tempatkan semua (p,q) pada list untuk (δ (p,a), δ(q,a )) kecuali jika (δ(p,a) = (q,a))

End

Page 60: TBA Automata Informatika

60

Contoh : Minimumkan DFA berikut :

Buat tabel berikut :

x : pasangan state tidak

ekivalen (dapat

dibedakan)

- : pasangan state

ekivalen

Page 61: TBA Automata Informatika

61

Perhatikan pasangan state :

R=δ(p,a) dan s=δ(q,a) untuk setiap simbol a.

Jika r dan s berbeda untuk string x maka p dan q berbeda

karena string ax, jika (r,s) belum mendapat X maka (p,q)

ditempatkan di list (r,s)

Minimum DFA adalah :

Page 62: TBA Automata Informatika

62

CONTEXT FREE GRAMMAR (CFG) Mendefinisikan programming language

Formalitas Konsep Parsing

Mendifinisikan ekspresi aritmatik

Komponen CFG :

Non-terminal/ syntactic category/ variabel

Terminal / value

Production : aturan yang menghubungkan variabel dengan variabel, variabel dengan terminal

Simbol production : →

Contoh Production :

1. (kalimat) → (subjek) (predikat) [(objek)]

2. (subjek) → (kata benda)

3. (predikat) → (kata kerja)

4. (objek) → (kata benda)

5. (kata benda) → kucing| nasi |orang

6. (kata kerja) → makan|memukul ; dimana ( .. ):variabel;|: pilihan

Page 63: TBA Automata Informatika

Teori Automata : Sinar Sinurat 63

Secara formal CFG ditunjukkan oleh :

G = (V, T, P, S)

dimana :

V : Himpunan Variabel (Non Terminal)

T : Himpunan Terminal

V∩T=∅ (Disjoint)

P : Himpunan Produksi : A→a

A : Variabel, a∊(v∪T)

S : Start Simbol

Page 64: TBA Automata Informatika

Teori Automata : Sinar Sinurat 64

Aplikasi produksi di atas secara berulang akan menghasilkan suatu kalimat yang utuh, misalnya :

“ kucing makan kucing “

Melalui proses “ derivasi “

Contoh : derivasi :

<kalimat> <subjek> <predikat>

<subjek> <predikat> <objek>

<subjek> <predikat> <kata benda>

<subjek> <predikat> kucing

<subjek> <kata kerja> kucing

<kata benda> makan kucing

kucing makan kucing

Derivasi menggunakan simbol : ⇒

Page 65: TBA Automata Informatika

Teori Automata : Sinar Sinurat 65

Produksi untuk ekspresi arithmatik :

<ekspresi> → <ekspresi> <op> <ekspresi>

<ekspresi> → <ekspresi> + <ekspresi>

<ekspresi> → <ekspresi> - <ekspresi>

<ekspresi> → <ekspresi> * <ekspresi>

<ekspresi> → <ekspresi> / <ekspresi>

<ekspresi> → (<ekspresi>)

<ekspresi> → id

Menurunkan ekspresi aritmatika :

<ekspresi> <ekspresi>*<ekspresi>

(<ekspresi>)*<ekspresi>

(<ekspresi>+<ekspresi>)*<ekspresi>

(id+<ekspresi>)*<ekspresi>

(id+id)*<ekspresi>

(id+id)*id

Page 66: TBA Automata Informatika

Teori Automata : Sinar Sinurat 66

Contoh : CFG untuk ekspresi aritmatika :

E→E+E

E→E*E

E→(E)

E→ id

Konversi penggunaan simbol :

1. A, B, C, D,E dan S : variabel

2. Huruf kecil dan digit : terminal

3. X, Y, Z : terminal atau variabel

4. Huruf kecil : u,v, w, x, y dan z : variabel string

5. Huruf kecil : α, β, γ : variabel string dan terminal

Jika A→α1,A→α2,…A→αn ditulis A→α1|α2|…|αk

Devirasi Language : G (V, T, P, S)

Page 67: TBA Automata Informatika

Teori Automata : Sinar Sinurat 67

Relasi antara string dalam (V T ) :

Misalkan :

A→β : Produksi dalam P

α, γ elemen (V T)*

Maka αAγαβγ

Misalkan :

α1,α2 ,αn string dalam (V T)* ; m≥1,

α1α2,α2α3,…αm-1αm

maka: α1αm

1 : reflexive, transitive, closure dari 2

Αβ : i langkah

Definisi :

Language CFG G: L(G)={w|w∊T* dan Sw}

Page 68: TBA Automata Informatika

68

Dimana : w∊T* : terminal ; Sw : diturunkan dari S .

L “Context Free “ jika L(G) untuk CFG G.

Sentential Form :

Sα,α : sentential form string terminal dan non terminal

Equivalent Grammar :

G1 dan G2 equivaalent apabila L(G1)=L(G2)

Contoh : CFG : G=(V,T,P,S)

dimana V={S}

T={a,b}

P={S→aSb, S→ab}

SaSbaaSbb…anbn

L(G)={an bn |n≥1}

Page 69: TBA Automata Informatika

Teori Automata : Sinar Sinurat 69

Derivation Tree :

Penggambaran derivasi dalam bentuk tree : AXYZ

Page 70: TBA Automata Informatika

Teori Automata : Sinar Sinurat 70

♦ Leftmost Derivation :

Pada setiap langkah derivasi, variabel paling kiri yang diganti.

♦ Rightmost Derivation :

Pada setiap langkah derivasi, variabel paling kanan yang diganti.

♦ Ambiguous Grammar :

Terdapat lebih dari satu leftmost atau lebih dari satu rightmost.

♦ Useful / Useless Symbol :Simbol X disebut “Useful“ apabila ada suatu derivasi

Sαxβw

w∊T*

α,β∊(VT)*

♦ X Useless symbol apabila :

1. X tidak bisa menurunkan terminal

2. X tidak bisa diturunkan dari S

Page 71: TBA Automata Informatika

71

Lemma :Untuk suatu L(G)≠∅, dapat ditemukan CFG yang ekuivalen G'=(V',T,P',S) dimana untuk setiap A dalam V' terdapat suatu string W∊T* dimana A→w

Himpunan V' dalam Lemma di atas dapat diturunkan dengan algoritma berikut :

Begin

1. OLDV := ∅

2. NEWV := {A|Aw untuk w∊T*

3. While OLDV ≠ NEWV do Begin

4. OLDV := NEWV;

5. NEWV :=OLDV{A|Aα untuk α∊(TOLDV)*} end

6. V := NEWV

End

Page 72: TBA Automata Informatika

Teori Automata : Sinar Sinurat 72

Control Flow

• S ::= ;

• | E ; | Break ;

• | { Slist } | Continue ;

• | If (E) S | Return ;

• | If (E) S Else S | Return E ;

• | While (E) S | Goto L ;

• | Do S While (E) ; | L : S

• | For (EOp ; EOp ; EOp; EOp) S Slist ::= <Empty>

• | Switch (E) S | Slist S

• | Case Constant ; S Eop ::= <Empty>

• | Default : S | E

C/C++ Pascal__________

If (E) S If (E) then S

If (E) S1; else S2 If (E) then S1 Else S2

While (E) S While E do S

Page 73: TBA Automata Informatika

Teori Automata : Sinar Sinurat 73

Keputusan Layout Statis

• Sintaks dalam bahasa pemrograman pascal

• <simple> ::= <name> | <enumeration> | <subrange>

• <type> ::= <simple> | array[<simple>] of <type> |

• record <field list> end | set of

<simple>| ^<name>

• <enumeration> ::= (<name-list>)

• <subrange> ::= <constant>..<constant>

• <field> ::= <name-list> : <type>

Page 74: TBA Automata Informatika

Teori Automata : Sinar Sinurat 74

Menghilangkan Useless Symbol :Contoh : Grammar :

1. S → AB | a

2. A → a

B dalam (1) useless sehingga produksi di atas menjadi :

1'. S→ a

2'. A→ a

A dalam 2 tidak bisa diakses dari S, grammar di atas menjadi :

G =({S}, {a}, {S→ a}, S)

Latihan :

Cari ekivalen CFG tanpa “Useless Symbol“ untuk grammar berikut :

S → AB|CA

A → a

B→ BC|AB

C→ aB|b

Page 75: TBA Automata Informatika

Teori Automata : Sinar Sinurat 75

Chomsky Normal Form (CNF) :Setiap CFG tanpa ε dapat dihasilkan oleh suatu grammar yang produksinya berbentuk :

A→BC atau

A→a ; A, B, C : non-terminal ; a : terminal

Dengan demikian G di atas dalam bentuk CNF menjadi :

1. S → CbA 7. A → CaS

2. Cb → b 8. A → a

3. S → CaB 9. A → CaD2

4. Ca → a 10. D2→ BB

5. A → Cb D1 11. B → CbS

6. D1→ AA 12. B → b

Page 76: TBA Automata Informatika

76

GREIBACH NORMAL FORM (GNF)

Lemma G1 :

Misalkan G=(V, T, P, S) suatu CFG

A→α1Bα2 suatu produksi dalam P dan B→β1|β2 |… |βr

himpunan produksi B.

Misalkan G1=(V, T, P1, S) diperoleh dengan menghilangkan semua produksi dalam bentuk A→α1Bα2 dari P dan menambahkan produksi dalam bentuk :

A→α1β1α2 |α1β2α2 |… |α1βrα2 maka L(G)=L(G1)

Lemma G2 :

Misalkan G=(V, T, P, S) suatu CFG.

A→Aα1|Aα2 |…|Aαr adalah himpunan sebagian produksi A sedangkan produksi lainnya dalam bentuk :

A→β1|β2|…|βS

Page 77: TBA Automata Informatika

77

Misalkan :

G1=(V∪{B},T,P1,S) dibentuk dengan menambahkan variabel B ke V dan mengganti semua produksi A dengan produksi dalam bentuk :

1. A → β1

A → βiB

2. B → α iB → α iB

Maka LG1=L(G)

Pembuktian Lemma G2 :

Derivasi leftmost dari G untuk produksi A→Aαi berakhir dengan produksi A→βj sebagai berikut :

AAαj1Aαi2αi1…Aαipαip1 …αi1βjαi pαip-1…αi1

Dalam G1 urutan penggantian di atas berbentuk :

AβjBβjαipBβjαipαip-1B…βjαipα ip-1 … αi2Bβjα ipα ip-1 …. αi2αi1

Page 78: TBA Automata Informatika

Teori Automata : Sinar Sinurat 78

Syarat-syarat :

• Hasil produksinya selalu diawali oleh satu simbol

terminal dan selanjutnya bisa diikuti oleh rangkaian

simbol variabel (AaV)

• Untuk setiap terminal harus berbeda-beda

• Tidak memiliki produksi ε

• Tidak bersifat rekursif kiri

• Sudah dalam bentuk CNF

Contoh :

S aS|bT

T aS|b

Page 79: TBA Automata Informatika

79

• Cara mengubah grammar yang belum GNF

S Ca ; A a|d ; B b ; C DD ; D AB

• Tentukan urutan simbol variabel, misalnya S<A<B<C<D

Pengurutan ini bebas, yang penting memudahkan proses

berikutnya

• Periksa aturan produksi simbol pertama berupa simbol variabel

yang dibuat di atas

A CA (sudah karena S<C)

C DD (sudah karena C<D)

D AB (sudah karena D<A)

• Maka lakukan substitusi pada simbol variabel A sehingga

A aB|dB

• Setelah semua memenuhi aturan urutan variabel di atas maka

lakukan substitusi mundur pada grammar yang belum GNF

C DD menjadi C aBD|dBD

S CA menjadi S aBDA|dBDA

Page 80: TBA Automata Informatika

Teori Automata : Sinar Sinurat 80

• Substitusi mundur dilakukan mulai dari aturan produksi yang

memiliki urutan variabel yang paling akhir (S<A<B<C<D)

sehingga C disubstitusi lebih dahulu daripada S

• Hasil akhir GNF :

S aBDA | dBDA

A a|d

B b

C aBD|dBD

D aB | dB

Page 81: TBA Automata Informatika

Teori Automata : Sinar Sinurat 81

Dalam parse-Tree kedua derivasi di atas berbentuk :

Page 82: TBA Automata Informatika

82

Theorem GNFTheorem : Setiap Context Free Language (CFL) tanpa ε dapat dihasilkan oleh suatu CFG yang produksinya berbentuk :

A → aα

Dimana :

A : variabel/ non-terminal

a : terminal

α : string variabel yang mungkin empty

Contoh :

Ubah produksi grammar berikut ke dalam bentuk GNF :

G=({A1, A2, A3}, {a,b}, P, A1)

dimana : P terdiri dari :

1. A1 → A2 A3

2. A2 → A3 A1| b

3. A3 → A1 A2 | a

Page 83: TBA Automata Informatika

83

Penyelesaian :

Tahap 1 :

Simbol A1 dalam (3) diganti dengan produksi (1) {lemma G1}:

1. A1 → A2A3

2. A2 → A3A1| b

3. A3 → A2A3A2 | a

Selanjutnya A2 dalam (3) diganti dengan produksi (2) :

1. A1 →A2A3

2. A2 →A3A1| b

3. A3 →A3A1A3A2 |bA2A3A2|a

Selanjutnya aplikasi lemma G2 pada produksi (3) diperoleh :

A3 → bA3A2B3

A3 → aB3

B3 → A1A3A2

B3 → A1A3A2B3

Page 84: TBA Automata Informatika

Teori Automata : Sinar Sinurat 84

Dengan demikian P menjadi :

1. A1 → A2A3

2. A2 → A3 A1| b

3. A3 → bA3A2B3 |aB3 |bA3A2|a

4. B3 → A1A3A2 |A1A3A2B3

Produksi (3) sudah GNF dengan substisusi yang lain diubah ke

dalam GNF.

Page 85: TBA Automata Informatika

Teori Automata : Sinar Sinurat 85

Tahap 2 :

Dengan menggunakan produksi (3) secara substitusi ke dalam produksi lainnya diperoleh :

A2 → bA3A2B3A1|aB3A1|bA3A2A1|b

A1 → bA3A2B3A1A3|aB3A1A3|bA3|bA3A2A1A3|aA1A3

Dengan menggunakan prroduksi untuk A1 diperoleh :

B3 →bA3A2B3A1A3A3A2 B3|aB3A1A3A3A2B3

|bA3A3A2B3|bA3A2A1A3A3A2B3

|aA1A3A3A2B3|bA3A2B3A1A3A3A2

|aB3A1A3A3A2|bA3A3A2

|bA3A2A1A3A3A2|aA1A3A3A2

Page 86: TBA Automata Informatika

Teori Automata : Sinar Sinurat 86

PUSH DOWN AUTOMATA (PDA)

Merupakan mesin “counter part“ dari CFG

Finite automaton yang terdiri dari :

- finite control

- input tape

- Stack

Page 87: TBA Automata Informatika

87

PDA dapat mengenal set yang tidak reguler seperti :

L = {WCW R | w dalam (0+1)*}

Kontruksi dan mekanisme kerja PDA yang menerima :

L = {WCWR | w dalam (0+1)*}

Grammar : S→0S0 | 1S1| c

- Finite Control (FC) 2 state : q1, q2

- Stack symbol : piring biru (B), piring hijau (H), piring merah (M)

- input simbol : 0,1

Mekanisme kerja :

1. M di stack, FC dalam state q1

2. Input : 0, FC : q1 Push : B

Input : 1, FC : q1 Push : H ; Untuk kedua input tetap di q1

3. Input : c, FC : q1, FC : masuk q2,

4. Input : 0, FC dalam state : q2, top stack : B Pop : B

input : 1, FC : q2, top stack : H Pop : H

Page 88: TBA Automata Informatika

88

5. FC dalam q2, top : M pop : M

6. Di luar ketentuan di atas : PDA tidak bergerak.

Mekanisme kerja di atas digambarkan dalam tabel berikut :

Piring atas State Input

0 1 c

Biru q1 Push B

Tetap q1

Push H

Tetap q1

Masuk q2

q2 Pop top

Tetap q2

- -

Hijau q1 Push B

Tetap q1

Push H

Tetap q1

Masuk q2

q2 - Push top

Tetap q2

-

Merah q1 Push B

Tetap q1

Push H

Tetap q1

Masuk q2

q2 Pop top elemen dari stack

Page 89: TBA Automata Informatika

Teori Automata : Sinar Sinurat 89

DefinisiPDA menerima language dengan dua cara :

1. Stack menjadi kosong

2. Finite Automaton masuk final state

Secara formal , PDA :

M = (Q ,∑, T, δ, q0, Z0, F) dimana :

Q : Himpunan state ; ∑ : Alphabet input

T : Alphabet Stack ; q0∊Q : State awal

Z0∊T : Start symbol stack ; FQ : Himpunan final state

β : Mapping : Qx(∑ {ε})xT → Subset QxT*

Page 90: TBA Automata Informatika

Teori Automata : Sinar Sinurat 90

Move :

♦ Langkah (move) PDA didefinisikan sebagai :

1. δ(q,a,z) = {(p1,γ1), (p2,γ2),…,(pm,γm)}

dimana : q, pi, 1≤i≤m, state

a ∊ ∑ ; z : stack symbol

γi∊τ* ; 1≤i≤m

2. δ(q,∊,z) = {(p1,γ1),(p2,γ2),… ,(pm,γm)}

Instantenuous Description (ID) :

ID adalah triple : (q,w,γ) dimana

q = state ; w = string of input symbols

γ = string of stack symbols

jika δ(q,a,Z) berisi (p, β)

Catatan : 'a' dapat sama dengan ε

Page 91: TBA Automata Informatika

Teori Automata : Sinar Sinurat 91

Contoh :

Langkah-langkah PDA untuk menerima language :

L={WCRR |w dalam (0+1)*}

dengan empty stack, sebagai berikut :

M = ({q1,q2}, {0,1,c}, {R,B,G},δ,q,M,⊘)

dimana δ didefinisikan sbb :

δ(q1,0,R) = {(q1,BR)} δ(q1,1,R) = {(q1,GR)}

δ(q1,0,B) = {(q1,BB)} δ(q1,1,B) = {(q1,GB)}

δ(q1,0,G) = {(q1,BG)} δ(q1,1,G) = {(q1,GG)}

δ(q1,c,R) = {(q2,R)}

δ(q1,c,B) = {(q2,B)}

δ(q1,c,G ) = {(q2,G)}

δ(q2,0,B) = {(q2,ε)} δ(q2,1,G) = {(q2,ε)}

δ(q2,ε,R) = {(q2,ε)}

Page 92: TBA Automata Informatika

Teori Automata : Sinar Sinurat 92

Contoh :

PDA untuk menerima languuage : L={WWR |w dalam

(0+1)*} dengan empty stack, sebagai berikut :

M = ({q1,q2}, {0,1}, {R,B,G},δ,q,R,⊘)

dimana δ didefinisikan sbb :

1. δ(q1,0,R) = {(q1,BR)} 6. δ(q1,1,G) = (q1,GG),(q2,ε)}

2. δ(q1,0,R) = {(q1,GR)} 7. δ(q2,0,B) = {(q2,ε)}

3. δ(q1,0,B) = {(q1,BB),(q2,ε)} 8. δ(q2,1,G) = {(q2,ε)}

4. δ(q1,0,G) = {(q1,BG)} 9. δ(q1,ε,R) = {(q2,ε)}

5. δ(q1,1,B) = {(q1,GB)} 10. δ(q2,ε,R) = {(q2,ε)}

Page 93: TBA Automata Informatika

93

Misalkan string input : 001c100

Langkah-langkah PDA :

(q1,001c100,M) → (q1,01c100,BM )

→ (q1,1c100,BBM) → (q1,c100,HBBM )

→ (q2,100,HBBM) → (q2,00,BBR )

→ (q2,0,BR) → (q2,∊,R) → (q2,∊,∊)

→ accept

Accepted Languages :

Untuk suatu PDA M=(Q,S,T,δ,q0,Z0,F),

L ( M ) adalah language yang diterima dengan final state didefinisikan sebagai :

{w|(q0,w,Z0)* (p,∊,γ1 ) untuk suatu p∊F dan γ dalam T*}

N(M) adalah language yang diterima dengan “empty stack“ (null stack ) dan didefinisikan sebagai :

Page 94: TBA Automata Informatika

94

DETERMINISTIC PDA

Hanya ada satu kemungkinan move dari suatu ID atau dengan kata lain suatu PDA M={(Q,∑,y,δ,q0,Z0,F) deterministic bila :

1. Untuk semua q∊Q dan Z∊T, jika (q,∊,Z) tidak empty maka

δ(q,a,Z) empty untuk semua a∊∑

2. Tidak ada q∊Q, Z∊T , dan a∊∑ {∊}, dimana δ(q,a,Z )

berisi lebih dari satu elemen.

Contoh:

PDA yang menerima : L={wwR|w dalam (0+1)*}

M= ({q1,q2},{0,1},{M,B,H},δ,q,R,⊘)

dengan δ sebagai berikut :

1. δ(q1,0,M) = {(q1, BM)} 6. δ(q1,1,H) = {(q1,HH),(q2,∊)}

2. δ(q1,1,M) = {(q1,HM)} 7. δ(q2,0,B) = {(q2,∊)}

3. δ(q1,0,B ) = {(q1,BB),(q2,ε)} 8. δ(q2,1,H) = {(q2,∊)}

4. δ(q1,0,H) = {(q1,BH)} 9. δ(q1,∊,M) = {(q2,∊)}

5 δ(q1,1, B) = {(q1,HB)} 10. δ(q2,∊,M) = {(q2,∊)}

Page 95: TBA Automata Informatika

95

Misalkan string input : 001100, maka Langkah-langkah PDA :

Theorem : Jika L suatu CFL, maka ada suatu PDA sehingga

L = N (M).

Theorem : Jika L adalah N(M) untuk PDA M, maka L adalah

CFL

Page 96: TBA Automata Informatika

Teori Automata : Sinar Sinurat 96

SIFAT-SIFAT CONTEXT FREE LANGUAGE

Lemma : (PL untuk CFL)

Misalkan L suatu CFL.

Ada suatu bilangan konstan n, yang tergantung hanya pada L, sedemikian sehingga jika z∊L dan |z|≥n, dapat ditulis

z = uvwxy sedemikian sehingga :

1. |vx| ≥ 1

2. |vwx|≤n dan

3. untuk semua i ≥ 0, uviwi y adalah string dalam L

Lemma di atas digunakan untuk membuktikan suatu language Tidak Context Free.

Page 97: TBA Automata Informatika

Teori Automata : Sinar Sinurat 97

Contoh :

Buktikan bahwa L={ai bi ci | i ≥1} bukan CFL

Bukti :

Asumsikan L CFL dan n konstan .

Misalkan z=an bncn∊L dan z = uvwxy memenuhi Pumping Lemma.

Jika L CFL berarti z1=uviwxiy, i≥0, elemen dari L

‣ vx tidak bisa mengandung a dan c, karena bisa demikian |vwx|>n

‣ Misalkan vx mengandung hanya a, perhatikan uviwxiy, i=0, mengandung jumlah a < jumlah b dan c

‣ Kontradiksi.

Page 98: TBA Automata Informatika

98

SIFAT-SIFAT CLOSURE CFL

Misalkan L1 dan L2 CFL dengan CFG :

G1= (V1,T1,P1,S1) dan G2 = (V2,T2,P2,S2)

dimana V1,V2 disjoint, S3,S4,S5 elemen V1 dan V2

maka untuk :

1. L1L2 : G3 = (V1 V2 {S3},T1 T2 ,P3,S3)

dimana : P1=P1 P2 tambah S3→S1|S2 ;

2. L1.L2 : G4 = (V1 V2 {S4},T1 T2,P4,S4)

dimana : P4=P1 P2 tambah S4→S1S2

3. L1* : G5 = (V1 {S5},T1,P5,S5)

dimana : P5=P1 tambah S5→S1S5|ε

Page 99: TBA Automata Informatika

99

Theorem : CFL “Closed” under substitution

Contoh :

Misalkan L dengan jumlah a dan b sama dan

La = {0n1n | n≥1} Lb = { wwR | w∊(0+1)*}

Grammar untuk :

L : G dengan produksi : S→aSbS|bSaS|ε

La : Ga dengan produksi : Sa→0Sa1|01

Lb : Gb dengan produksi : Sb→0Sb0|2Sb2|ε

Jika f adalah substitusi dimana : f(a)=La dan f(b)=Lb maka f(L)

dihasilkan oleh grammar :

S →SaSSbS | SbSSaS|ε

Sa → 0Sa1| 01

Sb → 0Sb0 | 2Sb2 | ε

Theorem : CFL tidak closed di bawah irisan.

Page 100: TBA Automata Informatika

Teori Automata : Sinar Sinurat 100

Bukti :

L1 ={ai bici | i≥1} tidak CFL

L2 ={ai bicj | i≥1 dan j≥1} dan

L3 ={ai bicj | i≥1 dan j≥1} kedua CFL tetapi,

L2 ∩ L3 = L1 , jika CFL closed di bawah irisan, maka L1 CFL

Kontradiksi :

L2 dan L3 CFL karena dapat diterima PDA sebagai berikut :

Untuk L2 :

Push a, kemudian tunda a terhadap b

Terima input setelah melihat satu atau lebih c.

Page 101: TBA Automata Informatika

101

Grammar untuk L2 adalah : L3 dihasilkan grammar :

S → AB S → CD

A → aAb | ab C → aC | a

B → cB | c D → bDc | bc

Corollary :

CFL tidak “Closed“ pada komplementasi (Complementation).

Bukti :Diketahui CFL closed di bawah union. Jika CFL “closed under“ komplementasi, maka “closed under“ intersection, karena DeMorgan Law :

L1 ∩ L2 = L1L2

Suatu kontradiksi :

Lemma Ogden : Pumping Lemma untuk Context Free tidak dapat digunakan sebagai alat pembuktian untuk beberapa language seperti :

Page 102: TBA Automata Informatika

Teori Automata : Sinar Sinurat 102

L3 = {ai bick dl | i = 0 atau j=k=l yang tidak context free.

Diperlukan versi PL yang lebih kuat yaitu

Lemma (Ogden)

Misalkan L CFL maka ada konstan n sehingga jika z∊L dan satu atau lebih posisi z diberi tanda “distinguished” maka z=uvwy sedemikian hingga :

1. V dan X bersama-sama mempunyai paling tidak satu posisi “distinguished“

2. vwx paling banyak n posisi “distinguished“

3. Untuk semua i≥0, uviwxiy adalah elemen L.

DECISION ALGORITHM FOR CFL

Theorem : Ada algoritma menentukan jika suatu CFL adalah Empty, Finite, Infinite

Bukti : empty-start state generate : terminals→non-empty,

finite-CNF : tidak ada cycle, infinite-CNF mengandung cycle

Page 103: TBA Automata Informatika

Teori Automata : Sinar Sinurat 103

TURING MACHINE

‣ Model matematis untuk komputer

‣ Diciptakan Alan Turing 1936 :

‣ Church‟s Thesis menunjukkan TM mempunyai kemampuan yang sama dengan komputer digital

‣ Mendefinisikan : “Recursively Enumerable“ set

‣ Kelompok fungsi integer yang dihitung : “Partial Recursive Function“

Page 104: TBA Automata Informatika

Teori Automata : Sinar Sinurat 104

Mekanisme Kerja TM :

‣ Sel paling kiri dari tape berisi simbol input, sel lainnya berisi blank (B)

‣ Tergantung pada input symbol dan state Finite Control, dalam satu Move TM akan :

1. Mengubah state

2. Mengganti simbol yang dibaca

3. Menggeser tape head ke kiri atau ke kanan satu sel

Defenisi TM secara formal : M = (Q,∑,T,δ,q0,B,F)

Dimana : Q : Himpunan state ; T : Himpunan simbol state

B : Blank, elemen T ; ∑ : Himpunan input simbol, subset T tdk

termasuk blank

q0 : Start, elemen Q ; FQ : himpunan final state

δ : Fungsi transisi, mapping : QxT→QxTx{L,R}

Page 105: TBA Automata Informatika

Teori Automata : Sinar Sinurat 105

Instantenous Description (ID) :

ID Turing Machine berbentuk : α1 q α2

dimana q : state α1α2∊T*

Move M didefinisikan sebagai : x1x2…xi-1qxi…xn

Suatu ID bila :

1. δ(q,xi) = (p,Y,L) maka

Jika i-1 = n, xi = blank

Jika i-1 = n, tidak ada ID berikut

Jika i>1, move M berikut :

x1x2...xi-1qxi...xn _ x1x2...xi-2pxi-1y...xn

2. δ(q,xi) = (p,Y,R), move M adalah :

x1x2…xi-1qxixi+1…xn_x1x2…xi-1Ypxi+1…xn ; jika i-1=n,

string xi …xn empty.

Page 106: TBA Automata Informatika

106

Language Accepted :

Turing Machine M = (Q,∑,T,δ,q0,B,F)

L(M) = {w|w dalam ∑ dan q0w* α1pα2 untuk suatu p dalam F

α1 dan α2 dalam t*}

TM halts :

Mengenal suatu language, sebaliknya untuk language yang tidak dikenal TM mungkin tidak pernah “halt“

Contoh :

TM menerima L={0n1n | n≥1} pada tabel berikut :

Page 107: TBA Automata Informatika

Teori Automata : Sinar Sinurat 107

Misalkan input : 0011 ; maka Move M adalah :

Q00011 ├ xq1011 ├ x0q111 ├ xq20Y1 ├ q2x0y1├

xq00y1

├ xxq1y1 ├ xxyq11 ├ xxq2yy ├ xq2xyy ├ xxq0yy ├ xxy3y

├ xxyyq3 ├ xxyyBq4

Move TM di atas dapat dirangkum sebagai berikut :

State q0 : paling awal dimasuki

State q1 : bergerak ke kanan mencari simbol 1 paling kanan

yang selanjutnya diganti Y

State q2 : bergerak ke kiri mencari X, bila ditemukan q0

Dalam q1 ke kanan mencari 1 tetapi menemukan B atau X,

input tolak

Page 108: TBA Automata Informatika

Teori Automata : Sinar Sinurat 108

Computable Language and Function :

Language yang diterima TM disebut “Recursive

Enumerable (RE) set”

Suatu “Sub-Class” dari RE set disebut “recursive set”

TM digunakan juga untuk komputasi, representasi

integer dengan sistem “unary”

Representasi i≥0 : 0i

Rangkaian integer i1i2i3 ditulis : 0i1 | 0i2 | 0i3 di tape

Jika tape berisi 0m saat TM halts maka : f(i1,i2,…,ik) = m

Page 109: TBA Automata Informatika

Teori Automata : Sinar Sinurat 109

Total Recursive Function :

Jika f(i1,i2,…,ik) “defined” untuk semua i1,…,ik atau dengan kata lain dapat dihitung oleh TM yang selalu halts

Partial Recursive Function :Jika f(i1,i2,…,ik) dihitung oleh TM yang mungkin halts atau mungkin tidak halts

Contoh :

Disain TM dapat melakukan “proper substraction” (•) sbb :

m•n = m-n ; m>n

0 ; m<n

Mula-mula : tape berisi 0m10n , saat halts tape berisi 0m-n

Page 110: TBA Automata Informatika

Teori Automata : Sinar Sinurat 110

Mekanisme Kerja TM :

Secara berulang mengganti 0 paling kiri dengan blank, ke kanan mencari 1 yang di ikuti 0, dan mengubah 0 tersebut dengan 1, M kemudian ke kiri dan mengulang proses serupa.

Fungsi transisi δ untuk TM di atas didefinisi sebagai berikut :

1. δ(q0,0) = (q1,B,R)

2. δ(q1,0) = (q1,0,R); δ(q1,1) = (q2,1,R)

3. δ(q2,1) = (q2,1,R); δ(q2,0) = (q3,1,L)

4. δ(q3,0) = (q3,0,L); δ(q3,1) = (q3,1,L) δ(q3,B)=(q0,B,R)

5. δ(q2,B) = (q4,B,L); δ(q4,1) = (q4,B,L) δ(q4,0)= (q4,0,L);

δ(q4,B) = (q6,0,R)

6. δ(q0,1) = (q5,B,R); δ(q5,0) = (q5,B,R) δ(q5,1) = (q5,B,R);

δ(q5,B) = (q6,B,R)

Page 111: TBA Automata Informatika

Teori Automata : Sinar Sinurat 111

Dengan input 0010 M bergerak sebagai berikut :

q00010 ⊢ Bq1010 ⊢ B0q110 ⊢ B01q20 ⊢

B0q311 ⊢ Bq3011 ⊢ q3B011 ⊢ Bq0011 ⊢

BBq111 ⊢ BB1q21 ⊢ BB11q2 ⊢ BB1q41 ⊢

BBq41B ⊢ Bq4BBB ⊢ B0q6BB

Untuk input 0100 M bergerak sebagai berikut :

q00100 ⊢ Bq1100 ⊢ B1q200 ⊢ Bq3110 ⊢

q3B110 ⊢ Bq0110 ⊢ BBq510 ⊢ BBBq50 ⊢

BBBBq5 ⊢ BBBBBq6

Page 112: TBA Automata Informatika

Teori Automata : Sinar Sinurat 112

Multiple Track TM :

Tape terdiri dari beberapa track : k

Input merupakan k- tuple k = 3

⊄ 1 0 1 1 1 1 $ B B …

B B B B 1 0 1 B B B …

B 1 0 0 1 0 1 B B B …

FiniteControl

Page 113: TBA Automata Informatika

Teori Automata : Sinar Sinurat 113

Dapat digunakan untuk mengenal language :

{w | w dalam ∑*} dan {wcy | w dan y dalam ∑*, w≠ y}

Multiple TM :

Input tape ada beberapa : k

Finite control mempunyai k tape head

Tape head bisa bergerak secara independen

Page 114: TBA Automata Informatika

Teori Automata : Sinar Sinurat 114

Theorem :

Jika suatu language L diterima suatu TM multi-tape,

language tersebut diterima TM dengan single tape.

Contoh : L = {wwR | w dalam (0+1)*}

Diterima oleh TM dengan 2 tape sebagai berikut :

input pada tape yang pertama disalin ke tape yang

kedua

kemudian dibandingkan simbol demi simbol secara

berlawanan.

Page 115: TBA Automata Informatika

Teori Automata : Sinar Sinurat 115

CHOMSKY HIERARCYReguler Grammar :

Merupakan salah satu bentuk normal untuk CFG yang telah mengalami penyederhanaan yaitu penghilangan produksi useless, unit dan ε

Syarat-syaratnya :

Tidak memiliki produksi useless, produksi unit dan produksi ε

Right linear Grammar : Semua produksi dalam bentuk :

A→wb atau A→w

dimana A, B : variabel, w : string terminal

Left linear : produksi dalam bentuk :

A→Bw atau A→w

Left/ right grammar disebut “regular grammar“

Contoh : L=0(10)*

Right linear : S→0A

A→10A | ε

Left linear : S→10A | 0

Page 116: TBA Automata Informatika

Teori Automata : Sinar Sinurat 116

Unrestricted

Context Sensitive

Kontext free

regular

Keterkaitan hirarki Chomsky

Page 117: TBA Automata Informatika

Teori Automata : Sinar Sinurat 117

Theorem :

Jika L mempunyai regular grammar maka L adalah reguler set.

Jika L suatu reguler set maka L dihasilkan oleh suatu left-linear

grammar atau suatu right-linear grammar.

Unrestricted Grammar :

α→β ; α,β : sembarangan symbol grammar

Grammar separti ini disebut type 0 atau phrase structure

L(G) = {w | w dalam T* dan S⇒w}

Grammar untuk L(G) = {ai | positive power of 2}

1. S → ACaB 5. aD → Da

2. Ca → aaC 6. AD → AC

3. CB→ DB 7. aE → Ea

4. CB→ E 8. aE → E

Page 118: TBA Automata Informatika

Teori Automata : Sinar Sinurat 118

Chomsky Normal Form (CNF)

• Biarkan aturan produksi yang sudah ada dalam bentuk

CNF

• Lakukan pergantian aturan produksi yang ruas

kanannya memuat simbol terminal dan panjang ruas

kanan >1

• Lakukan pergantian aturan produksi yang ruas

kanannya memuat >2 simbol variabel

• Pergantian-pergantian tersebut bisa dilakukan berkali-

kali sampai akhirnya semua aturan produksi dalam

bentuk CNF

• Selama dilakukan pergantian, kemungkinan kita akan

memperoleh aturan-aturan produksi baru dan juga

variabel baru

Page 119: TBA Automata Informatika

Teori Automata : Sinar Sinurat 119

Contoh

Asumsikan CFG ini sudah mengalami penyederhanaan :

S bA|aB ; AbAA|aS|a ; BaBB|bS|b

Aturan produksi yang sudah dalam CFG : Aa ; Bb

Dilakukan pergantian aturan produksi yang belum CNF („‟ bisa dibaca berubah) menjadi :

S bA S P1A ; S aB S P2B

A bAA S P1AA A P1P3 ; A aS A P2S

B aBB B p2BB B p2P4 ; B bS B P1S

Terbentuk aturan produksi dan simbol variabel baru :

P1 b ; P2 a ; P3 AA ; P4 BB

Hasil akhir aturan produksi dalam CNF :

Aa ; B b ; S P1A ; S P2B ; A P1P3 ; A P2S

BP2P4 ; B P1S ; P1 b ; P2 a ; P3 AA ; P4 BB

Page 120: TBA Automata Informatika

Teori Automata : Sinar Sinurat 120

Contoh CFG :

S aB | CA ; A a|bc

B BC|Ab ; C aB|b

Aturan produksi yang sudah dalam bentuk CNF :

S CA ; A a ; B BC ; C b

Context Sensitive Grammar (CSG)

Produksi α→β disertai dengan pembatasan tertentu. Misalnya : α1Aα2 → α1βα2 ; β≠ε

A hanya bisa diganti dengan β apabila dalam context α1,α2

Proses mengenal CSL disebut “linear bounded automaton”.

Class Language :

Yaitu R.E. Set-type 0, CSL-type 1, CFL-type 2, Reguler language-type 3

Page 121: TBA Automata Informatika

121