FINITE AUTOMATA Recognizer Bir dilin recognizeri verilen herhngi ir stringin o dile it olup olmdigini elirleyen progrmdir. Finite Automt (FA) RE lerin recognizerlerinin tsrimind kullniln trnsition diygrm denir FA iki sekilde olilir Deterministic Non-deterministic (Ayni stte yni giris semolunde irden fzl stte gecis ypilir) 4/5/2004 Forml Diller 3.1
FA Deterministic Finite Automt (DFA) ve Non-deterministic Finite Automt (NFA) nin her ikisi yni grup dilleri kul ederler (Regulr Lnguges) Time-spce trdeoff DFA ile tsrlnn recognizerler NFA ile tsrlnn recognizerlerden dh hizlidir (time trdeoff) NFA ile tsrlnn recognizerler dh compcttir (spce efficient). 4/5/2004 Forml Diller 3.2
FA Finite Automton 5-tuple (Q,,,q o,f) Q: Stteler kumesi : Finite input lfe : Q X t Q Trnsition fonksiyonu q o : Bslngic stte F ` Q Finl sttes (q,): FA q sttetinde iken semolunu giris olrk ldigind erisecegi stte i gosterir 4/5/2004 Forml Diller 3.3
/ strt 0 1 2 11 Stte 0 1 2 Input Symol {0,1} {0} - {2} - {3} ( )* icin NFA 4/5/2004 Forml Diller 3.4
strt 0 1 2 3 4 * * icin NFA 4/5/2004 Forml Diller 3.5
DFA DFA NDF nin ozel ir seklidir. trnsition yok Bir stteden herhngi ir giris semolle en fzl sk ir stte gidilir. 4/5/2004 Forml Diller 3.6
DFA Algoritmsi s:=q 0 c:=nextchr; while c <> eof do s:= move(s,c) c:= nextchr; end; if s is in F then return yes else return no ; 4/5/2004 Forml Diller 3.7
strt 0 1 2 3 ( )* icin DFA 4/5/2004 Forml Diller 3.8
NFA nin DFA y Donusturulmesi (Suset Construction) -closure(s) : NFA d stte s ye girisi geldiginde ulsiln sttelerin kumesine denir. -closure(t) : T kumesindeki sttelere girisi geldiginde ulsiln sttelerin kumesine denir. move(t,) : T kumesindeki sttelere girisi geldiginde ulsiln sttelerin kumesine denir. 4/5/2004 Forml Diller 3.9
T deki tum stteleri stcke it; -closure( T) ye slngic degeri olrk T ver; while stck os degil do egin pop t, stckten elemn cek (pop); end for t den girisiyle erisileilen her u stte icin do if u -closure(t) de degilse do egin end u yu -closure(t) ye ekle; u yu stck e it (push); -closure(t) nin hesplnmsi 4/5/2004 Forml Diller 3.10
slngict -closure(s 0 ) Dsttes de vr oln tek stte ve unmrked; while Dsttes de unmrked ir T stte vrs do egin mrk T; for her ir giris semolu do egin end end U:= -closure(move(t,)); if U Dsttes icinde degilse then U yu unmrked yp ve Dsttes e ekle Dtrn[T,] := U; Suset Construction 4/5/2004 Forml Diller 3.11
strt 0 1 2 4 3 5 ( )* 6 7 8 9 10 -closure(0)=a={0,1,2,4,6,7} -closure(move(a,))= -closure({3,8}=b Dtrn[A,]=B })={1,2,3,4,6,7,8 -closure(move(a,))= -closure({5})={1,2,4,5,6,7}=c Dtrn[A,]=C 4/5/2004 Forml Diller 3.12
-closure(move(b,))= -closure({3,8})=b -closure(move(b,))= -closure({5,9})={1,2,4,5,6,7,9}=d -closure(move(c,))= -closure({3,8})=b -closure(move(c,))= -closure({5})=c -closure(move(d,))= -closure({3,8})=b -closure(move(d,))= -closure({5,10})={1,2,4,5,6,7,10}=e -closure(move(e,))= -closure({3,8})=b -closure(move(e,))= -closure({5})=c Dtrn[B,]=B Dtrn[B,]=D Dtrn[C,]=B Dtrn[C,]=C Dtrn[D,]=B Dtrn[D,]=E Dtrn[E,]=B Dtrn[E,]=C 4/5/2004 Forml Diller 3.13
A={0,1,2,4,7} B={1,2,3,4,6,7,8} C={1,2,4,5,6,7} INPUT SYMBOL Stte A B C B B D C B C D B E E B C D={1,2,4,5,6,7,9} E={1,2,4,5,6,7,10} strt A B C D E 4/5/2004 Forml Diller 3.14
Thompson s Construction: RE den NFA nin elde edilmesi Input: Alfe uzerinde tnim RE r Output: L(r) yi tniyn NFA 4/5/2004 Forml Diller 3.15
1. icin NFA strt i f 2. icin NFA strt i f 3. N(s) ve N(t) s ve t icin NFA. s t RE icin NFA N(s t) sgidki giidir N(s) strt i N(t) f 4/5/2004 Forml Diller 3.16
. RE st icin NFA N(st) strt i N(s) N(t) f c. RE s* icin NFA N(s*) strt N(s) 4/5/2004 Forml Diller 3.17
r11 r9 r10 r7 r8 r5 r6 ( r4 * r3 ) ( )* r1 r2 4/5/2004 Forml Diller 3.18
r1 strt 2 3 r2 strt 4 5 r3=r1 r2 strt 1 2 3 4 5 6 4/5/2004 Forml Diller 3.19
r5=r4* strt 0 1 2 3 4 5 6 7 4/5/2004 Forml Diller 3.20
strt 0 1 2 3 4 5 6 7 8 9 10 4/5/2004 Forml Diller 3.21
NFA y dyli pttern mtching p 1 p 2 p n N(p 1 ) s 0 N(p 2 ) N(p n ) 4/5/2004 Forml Diller 3.22
* + 1 2 strt 0 3 4 5 6 7 8 4/5/2004 Forml Diller 3.23
strt 0 1 2 3 4 5 6 7 8 Input Symol Stte Tninn Pttern 0137 247 8 none 247 7 58 8-8 * + 7 7 8 none 58-68 * + 68-8 4/5/2004 Forml Diller 3.24
DFA nin stte syisinin minimizsyonu Input: S stte kumeli DFA M Output: M nin tnidigi dili tniyn ve minimum syid stte ship DFA M. 1. Setlerin prtitioni 6 ye ilk deger t. F (ccepting stte) ve S-F 2. 6 new nin lgoritmsini uygul. 3. Eger 6 new 6 ye esitse, 6 finl = 6 ve 4 e gec. Aksi durumd 6 = 6 new ve step 2 ye le devm et. 4. 6 finl prtitiondki her grup icin ir temsilci sec. Bu temsilciler minimum syid stteden olusn M nin sttelerini teskil eder. 5. Eger M de ir ded stte (kendine giris yok m tum semoller icin yeni stte kendisi) vrs unu M den cikr 4/5/2004 Forml Diller 3.25
for 6 deki her ir grup G icin do egin end G yi lt gruplr ol oyleki G deki s ve t yni lt grupt nck ve nck her ir gris semolu icin, s ve t 6 icindeki yni stte yol crlr. 6 new deki G yi yeni elde edilen lt gruplrl degistir. 6 new Algoritmsi 4/5/2004 Forml Diller 3.26
strt A Input Symol Stte B C D A B A B B D {A,B,C} {D} D B E E B A {A,C} {C} 4/5/2004 Forml Diller 3.27 E ( )* {A,B,C,D,E} {A,B,C,D} {E}
Pumping Lemm L nin regulr ir dil oldugunu kul edelim. Eger string z L nin ir stringi ise z = uvw oyleki uv <= n, v >=1, ve i>=0 icin, uv i w L nin elemnidir. n, L yi tniyn minimum syid stte i oln DFA dki stte syisindn uyuk degildir. 4/5/2004 Forml Diller 3.28
Pumping j+1 k 1 j q 0 q j =q q k m (q 0, 1 2 i ) = q i,i=1,2,, m m ún 4/5/2004 Forml Diller 3.29
Pumping lemm Uygulmsi Pumping lemm zi setlerin regulr olmdigini icin kullnilir. Ornek: L={0 i 2 i integer ve i ú 1} L nin regulr olmdigini gosterelim. z=0 n 2 olsun. z=uvw 1[ v [n (n pumping lemmdki integer) i=2 ise n 2 \ uv 2 w [ n 2 +n \ (n+1) 2 4/5/2004 Forml Diller 3.30