Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Regulær udtryk Lad T være det terminale alfabet. og T* angive et sæt af strenge over T ex: T={a,b,c} så er: aaa, bab,bbbbbbaaaa er indeholdt i T* Et sporg.

Lignende præsentationer


Præsentationer af emnet: "Regulær udtryk Lad T være det terminale alfabet. og T* angive et sæt af strenge over T ex: T={a,b,c} så er: aaa, bab,bbbbbbaaaa er indeholdt i T* Et sporg."— Præsentationens transcript:

1 Regulær udtryk Lad T være det terminale alfabet. og T* angive et sæt af strenge over T ex: T={a,b,c} så er: aaa, bab,bbbbbbaaaa er indeholdt i T* Et sporg L er et muligt subsæt af T* ex: L={aaa,aab,abc} Hvis et sprog er ''finite'' kan det beskrives på denne måde, men det er sprog som regel ikke.

2 Operationer på sprog. Fordi sprog er sæt så vil enhver sæt-operation kunne anvendes på sprog. Ex: L1={aaa,bbb} L2={aaa,ccc} L1 intersect. L2={Sættet af strings tilhørende både L1 og L2} L1 i.s. L2 ={ aaa} L1 union L2 ={Sættet af strings tilhørende L1 eller L2} L1 u. L2 ={aaa,bbb,ccc} Strings må sammekædes ''concatenated'' i.e. s1=aaa, s2=bbb s1 c. s2 = aaabbb Og sprog må sammekædes L1 c. L2={Sættet af strings s=s1 c. s2, hvor s1 tilhøre L1 og s2 tilhøre L2} ex: L1={aaa,bbb} og L2={aaa,ccc} L1 c. L2 = {aaaaaa,aaaccc,bbbaaa,bbbccc}

3 Iteration s^(i+1)=s c. s^(i) s=a s^(i)=aaaaa.... aaaa (i gange) s=abc s^(i)=abcabcabc... abcabc (i gange) For sprog: L^(i+1)=L c. L^(i) ex: L={a} L^(i)={aaaaa.... aaaa (i gange)} L={a,b} L^(i)={aaaa....aaa (i gange), baaa... aaa (i-1 gange),.... (enhver string af lengten i bestående af a'er og b'er)}

4 Nul eller flere gentagelser Alle sprog L^(i) for i mindre end eller lig med k: union(i=0..k) L^(i)= {Sættet af s=s1s2s3...si hvor si tilhøre L og i tilhøre 0.. k } eks: L={a} L^5={e,a,aa,aaa,aaaa,aaaaa} L={a,b} L^3={e, (len.0) a,b, (len.1), aa,ab,ba,bb (len.2), baaa,aab,aba,abb,baa,bab,bba,bbb (len.3)} hvis i går mod uendeligt L*={s=s1,...si, hvor i=0,1,2,...} ex: L={a} L*={e,a,aa,aaa,aaaa,aaaaa,... (vilkårlig længde)} L={aa,bb} L*={e (len.0)aa,bb(len.1),aaaa,aabb,bbaa, bbbb(len.2).... (len. any)} T* er settet af vilkårligt sammenkædede symboler fra T (Sættet af alle strenge)

5 Regulære udtryk Metode til at beskrive regulære sprog. Metoden er regulære udtryk Anvendte symboler: T,(,),c.,un.,* ex: T={a,b,c} L=a* gentagelser af a nul eller flere gange L={e,a,aa,aaa,aaaa,...} L=a un. b L={a,b} L=ab l={ab} L=a*b L={b,ab,aab,aaab, (vilkårlig mange a'er)} L=a* un b* L={e,a,b,aa,bb,aaa,bbb,aaaa,bbbb (strenge af vil. len bestående af a'er eller b'er} L=a*b*b L={b,ab,aab,aaab,.. aaaabb, aaaabbbb... (vil. mange a'er, og mindst et b)...}

6 Endelige automater En maskine til at undersøge om en streng tilhøre et sprog L. Maskinen: Deterministic state machine (finite state automata) Eller på dansk endelig automat. M=(K,T,delta,s,F) where: K: er et endeligt sæt af tilstande. T: er et alfabet. delta: er en funktion som afbilder en tilstand og et symbol fra T tilen ny tilstand i.e. K x T -> K s: tilhørende K er initial tilstanden. F: subsæt K er et sæt af slut tilstande. Maskinen arbejder således: Givet en streng T= a1a2a3,...ai Så vi maskinen gennemløbe en sekvens ef tilstande x0,x1,...,xi udfra følgende: x0=s (initial state) x(j+1)=delta(x(j),aj)

7 FSA

8 a*b (aba)*b(ba)* a un. b

9 NFSA Lad os antage at det er tilladt at delta ikke er en funktion dvs samme tilstand og samme symbol kan resultere i to ellere flere næste tilstande, samt at vi kan skifte fra en tilstand til en anden uden at læse et symbol. Så har vi en nondeterministic finite state automata or nfsa.

10 NFSA

11 Transform NFSA -> FSA Det er muligt at transformere alle NFSA til FSA, således at FSA acceptere samme og kun samme sprog Antag at nfsa: M=(K,T,Delta,s,F) og at fsa: M´=(K´,T,delta,s´,F´) Tilstandende K´ fra M´ er mængder af tilstande i K, i.e. K´ subsæt 2^(K) (powersæt, sæt of subsæts) s´ = {s} un. {k i K | der er tillade af hoppe til k fra s uden at læse nogle symboler}

12 Transformer nfsa til fsa Delta er en funktion som afbilleder K´ og symboler i T over i tilstande i K´. Delta er givet ved: delta(a,k´)={k i K | for nogle c i k´ er det tilladt at hoppe til k givet a efterfuldt af no symbolet et antal gange}

13 Transformer nfsa til fsa


Download ppt "Regulær udtryk Lad T være det terminale alfabet. og T* angive et sæt af strenge over T ex: T={a,b,c} så er: aaa, bab,bbbbbbaaaa er indeholdt i T* Et sporg."

Lignende præsentationer


Annoncer fra Google