Upload
alfatihliando
View
322
Download
26
Embed Size (px)
DESCRIPTION
ggdfgfgfdgdgfdrrrrrr2323232sdasdasdasdhhhjjhjhjhjjdsfsfdsfdsfssssssssddddddddddddddrfeeeeeeeeeeeeeeeeeerrrrrrrrrrrrrrrrrrttttttttttttttttttttttt
Citation preview
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
Teori Automata : Sinar Sinurat 2
Contoh : Transisi Bahasa oleh 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..9
Khusus : $ , _ , = , ( , ) , dll
♦ Panjang String : |w| yaitu jumlah simbol
dalam String : w = abc dan |w| = 3
♦ String Kosong : (ε) ; Tidak berisi simbol |ε|=0
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
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}
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}
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 ∑
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}
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
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 :
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 :
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
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 :
Teori Automata : Sinar Sinurat 14
2. Induksi :
Asumsi : P(n) :
Buktikan : P(n+1) :
Sementara itu :
Jadi :
Teori Automata : Sinar Sinurat 15
Contoh :Buktikan :
1. Basis : P(0) :
2. Induksi :
Tunjukkan :
Teori Automata : Sinar Sinurat 16
Perhatikan bahwa :
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
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
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
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
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
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
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
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)}
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
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“
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}
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„
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
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}
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
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
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
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 :
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
δ^
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
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*
Teori Automata : Sinar Sinurat 38
-CLOSURE(q)
Himpunan state p dimana ada path dari q ke p berlabel
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}
δ^
δ^
δ^
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
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
Teori Automata : Sinar Sinurat 42
Rules untuk menentukan nullable firstpos,
lastpos
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
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+
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, …
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 :
47
Induksi : (Satu atau lebih operator)
1. r = r1 + r2 , NFA yang sepadan :
2. r = r1.r2 , NFA yang sepadan :
r=ε r=
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
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
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
*
Teori Automata : Sinar Sinurat 51
Contoh :
Suatu 2DFA dengan tabel transisi :
Rangkaian ID :
q0101001 ├ 1q101001 ├ 10q11001 ├
1q201001 ├ 10q01001 ├ 101q1001 ├
1010q101 ├ 10100q11 ├ 1010q201 ├
10100q01 ├ 101001q1
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
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
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
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
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.
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
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*)*
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
60
Contoh : Minimumkan DFA berikut :
Buat tabel berikut :
x : pasangan state tidak
ekivalen (dapat
dibedakan)
- : pasangan state
ekivalen
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 :
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
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
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 : ⇒
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
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)
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}
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}
Teori Automata : Sinar Sinurat 69
Derivation Tree :
Penggambaran derivasi dalam bentuk tree : AXYZ
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
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
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
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>
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
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
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
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
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
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
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
Teori Automata : Sinar Sinurat 81
Dalam parse-Tree kedua derivasi di atas berbentuk :
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
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
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.
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
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
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
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
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*
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 ε
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,ε)}
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,ε)}
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 :
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,∊)}
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
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.
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.
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|ε
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.
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.
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 :
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
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“
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}
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.
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 :
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
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
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
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)
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
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
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
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.
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
Teori Automata : Sinar Sinurat 116
Unrestricted
Context Sensitive
Kontext free
regular
Keterkaitan hirarki Chomsky
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
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
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
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
121