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

k1 Automata

Embed Size (px)

Citation preview

Page 1: k1 Automata

1

TEORI BAHASA DAN AUTOMATA

MATERI POKOK :Formalisasi suatu Tata Bahasa dengan alat bantumesin matematis

BIDANG-BIDANG APLIKASI :Desain Compiler : Lexical, Scanner, ParserText Editor : Pattern MatchingDesain Sirkuit : Minimisasi Sirkuit

Page 2: k1 Automata

Teori Automata : Sinar Sinurat 2

Contoh : Transisi Bahasa oleh Automata

Page 3: k1 Automata

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..9Khusus : $ , _ , = , ( , ) , dll

♦ Panjang String : |w| yaitu jumlah simboldalam String : w = abc dan |w| = 3

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

Page 4: k1 Automata

4

♦ Prefix : Bagian depan String, misalnya : w=abcmaka prefix (w) = ε, a, ab, abc

♦ Suffix : Bagian belakang string, misalnya : w=abcmaka Suffix (w) = ε, c, bc, abc

♦ Infix : bagian tengah string, misalnya : w=abcmaka Infix (w) = ε, b

♦ Proper Prefix / Suffix : Prefix / Suffix kecuali w sendiriProper Prefix w = a, abProper Suffix w = c, cb

♦ Konkatenasi : Rangkaian dua string, misalnya :"hari" ,"ini" maka "hariini" ε w = wε = w

Page 5: k1 Automata

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: k1 Automata

Teori Automata : Sinar Sinurat 6

♦ Konkatenasi Language :L,M : LanguageL.M : Konkatenasi L dan MLM : {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 LanguageL υ M : Union L dan M

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

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

Page 7: k1 Automata

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-simboldalam ∑

Page 8: k1 Automata

Teori Automata : Sinar Sinurat 8

GRAPH (GRAFIK)

Graph G = (V, E)V = Vertex / Node / SimpulE = Edge / pasangan Vertex / Line

V = {1,2,3,4,5}E = {a,b,c,d}

Page 9: k1 Automata

Teori Automata : Sinar Sinurat 9

PATHRangkaian vertex V1,V2, … ,VK, k≥1, danVi→Vi+1 suatu “arc“, 1≤ i ≤ k

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

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

Page 10: k1 Automata

Teori Automata : Sinar Sinurat 10

DIRECTED GRAPH

Graph G = (V,E)V : Himpunan vertexE : “ Ordered Pair “ atau “ arc “ v→w : arc dari v ke w

Contoh :

Page 11: k1 Automata

Teori Automata : Sinar Sinurat 11

TREEDigraph dengan sifat-sifat :

1. Satu vertex disebut “ root “2. Ada path dari root ke setiap node/ vertex3. Setiap vertex mempunyai satu predecessor (father)4. Successor setiap vertex diurut dari kiri ke kanan (son)

Contoh :

Page 12: k1 Automata

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: k1 Automata

Teori Automata : Sinar Sinurat 13

PEMBUKTIAN INDUKTIF1. Basis : Proposisi benar untuk elemen dasar/

terkecil2. Hipotesa Induksi :

Jika proposisi benar untuk elemen n, makabenar untuk n+1, sehingga : P(n)→P(n+1)

Buktikan :

1. Basis :

Page 14: k1 Automata

Teori Automata : Sinar Sinurat 14

2. Induksi : Asumsi : P(n) : Buktikan : P(n+1) : Sementara itu :

Jadi :

Page 15: k1 Automata

Teori Automata : Sinar Sinurat 15

Contoh :Buktikan :

1. Basis : P(0) :

2. Induksi :

Tunjukkan :

Page 16: k1 Automata

Teori Automata : Sinar Sinurat 16

Perhatikan bahwa :

Page 17: k1 Automata

17

Latihan :Buktikan secara induktif kedua definisi berikut sama

(A B)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 palindrome3. 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 diatas

Page 18: k1 Automata

Teori Automata : Sinar Sinurat 18

NOTASI SET

1. Union : {X | P(X)} atau2. {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 SETA, B : dua setA=B jika A⊆B dan B⊆A

Page 19: k1 Automata

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 x∉B}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: k1 Automata

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: k1 Automata

Teori Automata : Sinar Sinurat 21

RELASIHimpunan pasangan elemen, elemen pertamadari “Domain“, elemen kedua dari “Range = co-domain“R : suatu relasi

aRb artinya (a,b)∊RaRb 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: k1 Automata

Teori Automata : Sinar Sinurat 22

SIFAT-SIFAT RELASIMisalkan R suatu relasi, R bersifat :1. Reflexive : aRa, ∀a, a∊A2. Irreflexive : aRa, ∀a, a∊A3. Not Reflexive : aRa, ∀a, a∉A4. Transitive : aRb, bRc aRc5. Not Transitive : aRb, bRc aRc6. Symmetric : aRb dan bRa, ∀a,b ; a∊A, b∊B7. Asymmetric : aRb, bRa8. Not Symmetric : aRb dan bRa, ∀a,b ; a∊A, b∊B

Contoh :Relasi “<“ (lebih kecil dari) bersifat :- Transitif- Asymmetric- Irreflexive

Page 23: k1 Automata

Teori Automata : Sinar Sinurat 23

EQUIVALENCE RELATION

Relasi R yang bersifat Reflexive, Symmetric,TransitiveR membagi set S ke dalam “Disjoint Equivalence Classes“.

S = S1 ∪ S2 ∪ … ∪ Sn ; i≠j1. Si∩Sj = ∅2. a,b∊Si ; aRb3. a∊Si ; b∊Sj ; aRb

Contoh :“equality“ (=) : Equivalence relation

Page 24: k1 Automata

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: k1 Automata

Teori Automata : Sinar Sinurat 25

FINITE AUTOMATIONSistim 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: k1 Automata

Teori Automata : Sinar Sinurat 26

Deterministic Finite Automata-DFA

Model matematisInput Output Discrete (antar event tidak harussaling terkait/ partial)Konfigurasi internal disebut “State“Transisi antar state atas simbol inputHanya ada satu simbol input yang sama pada transisi dari satu state ke state lainnyaq0 : Start stateqf : Final state (satu atau lebih)Directed Graph menggambarkan FA disebut“Transition Diagram“

Page 27: k1 Automata

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: k1 Automata

Teori Automata : Sinar Sinurat 28

Definisi Formal : FAM = (Q, ∑, δ, qo, F)dimana :

Q : Himpunan state ∑ : Himpunan simbol input

q0∊Q : Start / initial stateF⊆Q : Himpuan final state

δ : Qx∑ : Fungsi transisi

δ(q, a) : dalam state ‘q’ membaca input ‘a‘

Page 29: k1 Automata

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 setelahmembaca string w, dengan start state q; δ(q,w)=p dan ada path berlabel w dari state q ke p

Page 30: k1 Automata

Teori Automata : Sinar Sinurat 30

SIMBOL YANG DIGUNAKAN

1. Q : himpunan state, dimana : q, p : state , qo : start2. ∑ : alphabet input, dimana : a,b digit : simbol input3. δ : fungsi transisi4. F : himpunan final/ accepting state5. w,x,y,z : string simbol input

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

LANGUAGE YANG DITERIMALanguage yang diterima oleh F A M adalah{x| δ(q0,x) dalam F}

Page 31: k1 Automata

31

REGULER LANGUAGE / SETLanguage yang diterima oleh suatu FA Contoh :Q = {q0, q1, q2, q3}S = {q0}∑ = {0,1}F= {q3}δ : digambarkan tabel berikut :

string yang diterima :0110100110111awal dgn 0, akhir dengan 1

Page 32: k1 Automata

Teori Automata : Sinar Sinurat 32

NON DETERMINISTIC FINITE AUTOMATON (NFA)

Lebih dari satu transisi untuk input yang sama dari suatu stateContoh :

String diterimaBila ada suatu path berlabel w dari start state ke salah satufinal state, maka w diterima

Page 33: k1 Automata

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: k1 Automata

Teori Automata : Sinar Sinurat 34

DEFINISI FORMAL NFAM = (Q, ∑, δ, q0, F) ; Q, ∑ , q0, F : seperti pada FA

δ : Q x ∑→ 2Q

δ(q , a) : himpunan state p sehingga ada transisiberlabel a dari q ke p.δ NFA di atas :

Page 35: k1 Automata

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), P⊆QQ in p

δ^

Page 36: k1 Automata

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: k1 Automata

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) sebagaiNFA

RE : 0*1*2*

Page 38: k1 Automata

Teori Automata : Sinar Sinurat 38

ε-CLOSURE(q)Himpunan state p dimana ada path dari q ke p berlabel ε

Page 39: k1 Automata

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: k1 Automata

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 ona 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

ENDEND

Page 41: k1 Automata

Teori Automata : Sinar Sinurat 41

Konversi NFA dengan RE Ke DFAStrategi pembuatan DFA dari RE yang ada dengan mengikuti aturan berikut :• Augmental RE r#

Pohon sintaks dari Augmental RE r

Page 42: k1 Automata

Teori Automata : Sinar Sinurat 42

Rules untuk menentukan nullable firstpos, lastpos

Page 43: k1 Automata

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

• bF

• bF

a F

*⏐⏐

aF

bF

F

F

T

F

F

F

Jadi Root yang diperolehdari pohon sintaks adalah{1,2,3} = A

Page 44: k1 Automata

Teori Automata : Sinar Sinurat 44

REGULAR EXPRESSION (RE)

Ekspresi sederhana untuk language yang diterima FAMisalkan ∑ suatu alphabet, RE didefinisikan secararecursive 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|Sr*s : RE untuk R ∩ S ≈ RSr* . : RE untuk R*r+ . : RE untuk R+

Page 45: k1 Automata

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 13. (0+1)* 00 (0+1)* meliputi : 00, 10010, 0100114. (1+10)* meliputi : ε, 1, 110, dan seterusnya5. (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: k1 Automata

Teori Automata : Sinar Sinurat 46

THEOREMJika 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 operatorBasis : (Nol Operator)Reguler ekspresi r berbentuk ε, ∅ atau aNFA untuk itu adalah :

Page 47: k1 Automata

47

Induksi : (Satu atau lebih operator)1. r = r1 + r2 , NFA yang sepadan :

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

r=ε r=∅

Page 48: k1 Automata

48

3. r = r* , NFA yang sepadan :

Contoh : RE : 01*+1 = (0(1)*)+1r1=1 : NFA berikut : r2=0 : NFA berikut :r3=1 : NFA berikut :r2=r3* : NFA berikut :r5=r2r4 NFA berikut :

R6=r5+r1

Page 49: k1 Automata

49

THEOREMJika 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: k1 Automata

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 membacasimbol 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>1L(M) = {w| q0w Wp ; untuk p∊F)Theorem :

Jika L diterima suatu 2DFA maka L regular

I1 I2m

*

Page 51: k1 Automata

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: k1 Automata

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: k1 Automata

53

λ(qj) = j, j = 0,1 dan 2Input : 1010State 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: k1 Automata

54

Contoh :Mesin Mealy yang membedakan dua input yang berdekatanOutput : ’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 : 01100Output : nnyny

Page 55: k1 Automata

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 : loopjika ai...ajak+1...am, dalam L(M) maka ai...aj(aj+1...ak)iak+1...am, dalam L(M) ; i≥0

Page 56: k1 Automata

Teori Automata : Sinar Sinurat 56

Lemma (PL)

Misalkan L reguler set, terdapat konstanta n sehingga jikaz∊L dan |z|≥ n ; z=uvw dan |uv| ≤ n, |∀|≥ 1 dan untuksemua 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: k1 Automata

Teori Automata : Sinar Sinurat 57

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

Kontradiksi.Sifat- sifat Reguler Set “ Closed Under “ :1. Gabungan (Union) : L3=L1∪L2 ; L3 reguler bila L1 dan

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

dan L2 reguler3. Kleene Closure : L1* reguler bila L1 reguler4. Komplementasi (complement) : apabila L reguler set dan

L∊S* maka ∑*-L reguler5. Irisan (Intersection) : L5=L1∩L2 ; reguler apabila L1 dan

L2 reguler6. Substitusi (substitution) : Suatu fungsi f:∑ ke subset dari

∆* ; ∆ : suatu alphabet

Page 58: k1 Automata

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*bJika L=0*(0+1)1*maka : f(L)=a*(a+b*)(b*)*

Page 59: k1 Automata

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 pasanganuntuk list (p,q)End

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

End

Page 60: k1 Automata

60

Contoh : Minimumkan DFA berikut :

Buat tabel berikut :

x : pasangan state tidak

ekivalen (dapatdibedakan)

- : pasangan state

ekivalen

Page 61: k1 Automata

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 berbedakarena string ax, jika (r,s) belum mendapat X maka (p,q) ditempatkan di list (r,s)

Minimum DFA adalah :

Page 62: k1 Automata

62

CONTEXT FREE GRAMMAR (CFG)Mendefinisikan programming languageFormalitas Konsep ParsingMendifinisikan ekspresi aritmatik

Komponen CFG :Non-terminal/ syntactic category/ variabelTerminal / valueProduction : aturan yang menghubungkan variabel denganvariabel, variabel dengan terminalSimbol 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 |orang6. (kata kerja) → makan|memukul ; dimana ( .. ):variabel;|: pilihan

Page 63: k1 Automata

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: k1 Automata

Teori Automata : Sinar Sinurat 64

Aplikasi produksi di atas secara berulang akanmenghasilkan 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 kucingkucing makan kucing

Derivasi menggunakan simbol : ⇒

Page 65: k1 Automata

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: k1 Automata

Teori Automata : Sinar Sinurat 66

Contoh : CFG untuk ekspresi aritmatika :E→E+EE→E*EE→(E)E→ id

Konversi penggunaan simbol :1. A, B, C, D,E dan S : variabel2. Huruf kecil dan digit : terminal3. X, Y, Z : terminal atau variabel4. Huruf kecil : u,v, w, x, y dan z : variabel string5. Huruf kecil : α, β, γ : variabel string dan terminal

Jika A→α1,A→α2,…A→αn ditulis A→α1|α2|…|αkDevirasi Language : G (V, T, P, S)

Page 67: k1 Automata

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 S w}

Page 68: k1 Automata

68

Dimana : w∊T* : terminal ; S w : 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}S aSb aaSbb… anbn

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

Page 69: k1 Automata

Teori Automata : Sinar Sinurat 69

Derivation Tree :Penggambaran derivasi dalam bentuk tree : A XYZ

Page 70: k1 Automata

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 saturightmost.

♦ Useful / Useless Symbol :Simbol X disebut “Useful“ apabila ada suatu derivasiS αxβ w

w∊T*α,β∊(V T)*

♦ X Useless symbol apabila :1. X tidak bisa menurunkan terminal2. X tidak bisa diturunkan dari S

Page 71: k1 Automata

71

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

Himpunan V' dalam Lemma di atas dapat diturunkan denganalgoritma berikut :

Begin1. OLDV := ∅2. NEWV := {A|A w untuk w∊T* 3. While OLDV ≠ NEWV do Begin4. OLDV := NEWV;5. NEWV :=OLDV∪{A|A α untuk α∊(T∪OLDV)*} end6. V := NEWV

End

Page 72: k1 Automata

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: k1 Automata

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: k1 Automata

Teori Automata : Sinar Sinurat 74

Menghilangkan Useless Symbol :Contoh : Grammar :

1. S → AB | a2. A → a

B dalam (1) useless sehingga produksi di atas menjadi :1'. S→ a2'. 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|CAA → aB→ BC|ABC→ aB|b

Page 75: k1 Automata

Teori Automata : Sinar Sinurat 75

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

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

Dengan demikian G di atas dalam bentuk CNF menjadi :1. S → CbA 7. A → CaS2. Cb→ b 8. A → a3. S → CaB 9. A → CaD24. Ca → a 10. D2→ BB5. A → Cb D1 11. B → CbS6. D1→ AA 12. B → b

Page 76: k1 Automata

76

GREIBACH NORMAL FORM (GNF)Lemma G1 :Misalkan G=(V, T, P, S) suatu CFGA→α1Bα2 suatu produksi dalam P dan B→β1|β2 |… |βr himpunan produksi B.

Misalkan G1=(V, T, P1, S) diperoleh dengan menghilangkansemua produksi dalam bentuk A→α1Bα2 dari P danmenambahkan 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: k1 Automata

77

Misalkan :G1=(V∪{B},T,P1,S) dibentuk dengan menambahkan variabel B ke V dan mengganti semua produksi A dengan produksi dalambentuk :1. A → β1

A → βiB2. B → α i

B → α iB

Maka LG1=L(G)

Pembuktian Lemma G2 :Derivasi leftmost dari G untuk produksi A→Aαi berakhir denganproduksi A→βj sebagai berikut :A Aαj1 Aα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: k1 Automata

Teori Automata : Sinar Sinurat 78

Syarat-syarat :• Hasil produksinya selalu diawali oleh satu simbol

terminal dan selanjutnya bisa diikuti oleh rangkaiansimbol variabel (A aV)

• Untuk setiap terminal harus berbeda-beda• Tidak memiliki produksi ε• Tidak bersifat rekursif kiri• Sudah dalam bentuk CNF

Contoh :S aS|bTT aS|b

Page 79: k1 Automata

79

• Cara mengubah grammar yang belum GNFS 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 prosesberikutnya

• Periksa aturan produksi simbol pertama berupa simbol variabelyang dibuat di atasA CA (sudah karena S<C)C DD (sudah karena C<D)D AB (sudah karena D<A)

• Maka lakukan substitusi pada simbol variabel A sehinggaA aB|dB

• Setelah semua memenuhi aturan urutan variabel di atas makalakukan substitusi mundur pada grammar yang belum GNFC DD menjadi C aBD|dBDS CA menjadi S aBDA|dBDA

Page 80: k1 Automata

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 | dBDAA a|dB bC aBD|dBDD aB | dB

Page 81: k1 Automata

Teori Automata : Sinar Sinurat 81

Dalam parse-Tree kedua derivasi di atas berbentuk :

Page 82: k1 Automata

82

Theorem GNFTheorem : Setiap Context Free Language (CFL) tanpa ε dapatdihasilkan oleh suatu CFG yang produksinya berbentuk : A → aα

Dimana :A : variabel/ non-terminala : 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 A32. A2 → A3 A1| b3. A3 → A1 A2 | a

Page 83: k1 Automata

83

Penyelesaian :Tahap 1 :

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

2. A2 → A3A1| b3. A3 → A2A3A2 | a

Selanjutnya A2 dalam (3) diganti dengan produksi (2) :1. A1 →A2A3

2. A2 →A3A1| b3. A3 →A3A1A3A2 |bA2A3A2|a

Selanjutnya aplikasi lemma G2 pada produksi (3) diperoleh :A3 → bA3A2B3

A3 → aB3

B3 → A1A3A2

B3 → A1A3A2B3

Page 84: k1 Automata

Teori Automata : Sinar Sinurat 84

Dengan demikian P menjadi :1. A1 → A2A3

2. A2 → A3 A1| b3. A3 → bA3A2B3 |aB3 |bA3A2|a4. B3 → A1A3A2 |A1A3A2B3

Produksi (3) sudah GNF dengan substisusi yang lain diubah kedalam GNF.

Page 85: k1 Automata

Teori Automata : Sinar Sinurat 85

Tahap 2 :

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

A2 → bA3A2B3A1|aB3A1|bA3A2A1|bA1 → 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: k1 Automata

Teori Automata : Sinar Sinurat 86

PUSH DOWN AUTOMATA (PDA)

Merupakan mesin “counter part“ dari CFGFinite automaton yang terdiri dari :- finite control- input tape- Stack

Page 87: k1 Automata

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 q12. Input : 0, FC : q1 Push : B

Input : 1, FC : q1 Push : H ; Untuk kedua input tetap di q13. 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: k1 Automata

88

5. FC dalam q2, top : M pop : M6. Di luar ketentuan di atas : PDA tidak bergerak.

Mekanisme kerja di atas digambarkan dalam tabel berikut :

Masuk q2Push HTetap q1

Push BTetap q1

q1

Masuk q2Push HTetap q1

Push BTetap q1

q1

Masuk q2Push HTetap q1

Push BTetap q1

q1

Pop top elemen dari stackq2

Merah

-Push topTetap q2

-q2

Hijau

InputStatePiring atas

--Pop topTetap q2

q2

Biru

c10

Page 89: k1 Automata

Teori Automata : Sinar Sinurat 89

DefinisiPDA menerima language dengan dua cara :1. Stack menjadi kosong2. Finite Automaton masuk final state

Secara formal , PDA :M = (Q ,∑, T, δ, q0, Z0, F) dimana :Q : Himpunan state ; ∑ : Alphabet inputT : Alphabet Stack ; q0∊Q : State awalZ0∊T : Start symbol stack ; F⊆Q : Himpunan final state β : Mapping : Qx(∑ ∪{ε})xT → Subset QxT*

Page 90: k1 Automata

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≤m2. δ(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: k1 Automata

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: k1 Automata

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: k1 Automata

93

Misalkan string input : 001c100Langkah-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: k1 Automata

94

DETERMINISTIC PDAHanya ada satu kemungkinan move dari suatu ID ataudengan 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: k1 Automata

95

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

Theorem : Jika L suatu CFL, maka ada suatu PDA sehinggaL = N (M).

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

Page 96: k1 Automata

Teori Automata : Sinar Sinurat 96

SIFAT-SIFAT CONTEXT FREE LANGUAGELemma : (PL untuk CFL)

Misalkan L suatu CFL.Ada suatu bilangan konstan n, yang tergantunghanya pada L, sedemikian sehingga jika z∊L dan|z|≥n, dapat ditulisz = uvwxy sedemikian sehingga :1. |vx| ≥ 12. |vwx|≤n dan3. untuk semua i ≥ 0, uviwi y adalah string dalam L

Lemma di atas digunakan untuk membuktikan suatulanguage Tidak Context Free.

Page 97: k1 Automata

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: k1 Automata

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. L1∪L2 : 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: k1 Automata

99

Theorem : CFL “Closed” under substitutionContoh :

Misalkan L dengan jumlah a dan b sama danLa = {0n1n | n≥1} Lb = { wwR | w∊(0+1)*}

Grammar untuk :L : G dengan produksi : S→aSbS|bSaS|εLa : Ga dengan produksi : Sa→0Sa1|01Lb : 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| 01Sb → 0Sb0 | 2Sb2 | ε

Theorem : CFL tidak closed di bawah irisan.

Page 100: k1 Automata

Teori Automata : Sinar Sinurat 100

Bukti :L1 ={ai bici | i≥1} tidak CFLL2 ={ai bicj | i≥1 dan j≥1} danL3 ={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 bTerima input setelah melihat satu atau lebih c.

Page 101: k1 Automata

101

Grammar untuk L2 adalah : L3 dihasilkan grammar :S → AB S → CDA → aAb | ab C → aC | aB → 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, karenaDeMorgan Law :

L1 ∩ L2 = L1∪L2

Suatu kontradiksi :Lemma Ogden :

Pumping Lemma untuk Context Free tidak dapat digunakansebagai alat pembuktian untuk beberapa language seperti :

Page 102: k1 Automata

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 dansatu atau lebih posisi z diberi tanda “distinguished” makaz=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 CFLTheorem : Ada algoritma menentukan jika suatu CFL adalah

Empty, Finite, InfiniteBukti : empty-start state generate : terminals→non-empty,

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

Page 103: k1 Automata

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: k1 Automata

Teori Automata : Sinar Sinurat 104

Mekanisme Kerja TM :

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

‣ Tergantung pada input symbol dan state Finite Control, dalamsatu Move TM akan :1. Mengubah state2. Mengganti simbol yang dibaca3. 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 blankq0 : Start, elemen Q ; F⊆Q : himpunan final stateδ : Fungsi transisi, mapping : QxT→QxTx{L,R}

Page 105: k1 Automata

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 berikutJika 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: k1 Automata

106

Language Accepted :Turing Machine M = (Q,∑,T,δ,q0,B,F)L(M) = {w|w dalam ∑ dan q0w* α1pα2 untuk suatu p dalamF α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: k1 Automata

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 dimasukiState q1 : bergerak ke kanan mencari simbol 1 paling kanan

yang selanjutnya diganti YState q2 : bergerak ke kiri mencari X, bila ditemukan q0

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

Page 108: k1 Automata

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, representasiinteger dengan sistem “unary”Representasi i≥0 : 0i

Rangkaian integer i1i2i3 ditulis : 0i1 | 0i2 | 0i3 di tapeJika tape berisi 0m saat TM halts maka : f(i1,i2,…,ik) = m

Page 109: k1 Automata

Teori Automata : Sinar Sinurat 109

Total Recursive Function :Jika f(i1,i2,…,ik) “defined” untuk semua i1,…,ik ataudengan kata lain dapat dihitung oleh TM yang selaluhalts

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>n0 ; m<n

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

Page 110: k1 Automata

Teori Automata : Sinar Sinurat 110

Mekanisme Kerja TM :Secara berulang mengganti 0 paling kiri dengan blank, kekanan mencari 1 yang di ikuti 0, dan mengubah 0 tersebutdengan 1, M kemudian ke kiri dan mengulang prosesserupa.

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: k1 Automata

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: k1 Automata

Teori Automata : Sinar Sinurat 112

Multiple Track TM :

Tape terdiri dari beberapa track : k Input merupakan k- tuple k = 3

…BBB101001B

…BBB101BBBB

…BB$111101⊄

FiniteControl

Page 113: k1 Automata

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 headTape head bisa bergerak secara independen

Page 114: k1 Automata

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 keduakemudian dibandingkan simbol demi simbol secaraberlawanan.

Page 115: k1 Automata

Teori Automata : Sinar Sinurat 115

CHOMSKY HIERARCYReguler Grammar :

Merupakan salah satu bentuk normal untuk CFG yang telah mengalamipenyederhanaan 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→wdimana 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: k1 Automata

Teori Automata : Sinar Sinurat 116

Unrestricted

Context Sensitive

Kontext free

regular

Keterkaitan hirarki Chomsky

Page 117: k1 Automata

Teori Automata : Sinar Sinurat 117

Theorem :Jika L mempunyai regular grammar maka L adalah regulerset.Jika L suatu reguler set maka L dihasilkan oleh suatu left-lineargrammar 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 → Da2. Ca → aaC 6. AD → AC3. CB→ DB 7. aE → Ea4. CB→ E 8. aE → E

Page 118: k1 Automata

Teori Automata : Sinar Sinurat 118

Chomsky Normal Form (CNF)

• Biarkan aturan produksi yang sudah ada dalam bentukCNF

• Lakukan pergantian aturan produksi yang ruaskanannya memuat simbol terminal dan panjang ruaskanan >1

• Lakukan pergantian aturan produksi yang ruaskanannya memuat >2 simbol variabel

• Pergantian-pergantian tersebut bisa dilakukan berkali-kali sampai akhirnya semua aturan produksi dalambentuk CNF

• Selama dilakukan pergantian, kemungkinan kita akanmemperoleh aturan-aturan produksi baru dan jugavariabel baru

Page 119: k1 Automata

Teori Automata : Sinar Sinurat 119

ContohAsumsikan CFG ini sudah mengalami penyederhanaan :S bA|aB ; A bAA|aS|a ; B aBB|bS|b

Aturan produksi yang sudah dalam CFG : A a ; B bDilakukan pergantian aturan produksi yang belum CNF (‘ ’ bisa dibaca

berubah) menjadi :

S bA S P1A ; S aB S P2BA bAA S P1AA A P1P3 ; A aS A P2SB 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 :A a ; B b ; S P1A ; S P2B ; A P1P3 ; A P2SB P2P4 ; B P1S ; P1 b ; P2 a ; P3 AA ; P4 BB

Page 120: k1 Automata

Teori Automata : Sinar Sinurat 120

Contoh CFG : S aB | CA ; A a|bcB 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, Regulerlanguage-type 3

Page 121: k1 Automata

121