Regularitet og Automater. Tobias Brixen Q4-2012

Relaterede dokumenter
Regularitet & Automater Eksamensnotater

En karakteristik af de regulære sprog. Ugens emner. FA minimering [ ] MyHill-Nerode-sætningen en algoritme til minimering af FA er

Noter til DM517 Beregnelighed

Regulære udtryk og endelige automater

Skriftlig Eksamen Beregnelighed (DM517)

Regularitet og Automater

Eksamensopgaver i DM17, Januar 2003

1 Beregnelighed. 1.1 Disposition. 1.2 Præsentation. Def. TM. Def. RE/R. Def. 5 egenskaber for RE/R. Def. NSA. Bevis. NSA!RE. Def. SA. Bevis. SA!

Seminar 1 Regularitet og Automater 28/1-2012

Nogle grundlæggende begreber

Skriftlig Eksamen Automatteori og Beregnelighed (DM17)

DM517:Supplerende noter om uafgørlighedsbeviser:

Skriftlig Eksamen Beregnelighed (DM517)

GEOMETRI-TØ, UGE 8. X = U xi = {x i } = {x 1,..., x n }, U α, U α = α. (X \ U α )

Momenter som deskriptive størrelser. Hvad vi mangler fra onsdag. Momenter for sandsynlighedsmål

Taylors formel. Kapitel Klassiske sætninger i en dimension

Matematisk induktion

Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet

Sammenhængskomponenter i grafer

Projekt 1.4 De reelle tal og 2. hovedsætning om kontinuitet

Spilstrategier. 1 Vindermængde og tabermængde

Kvadratiske matricer. enote Kvadratiske matricer

Kalkulus 2 - Grænseovergange, Kontinuitet og Følger

= λ([ x, y)) + λ((y, x]) = ( y ( x)) + (x y) = 2(x y).

Primtal - hvor mange, hvordan og hvorfor?

01017 Diskret Matematik E12 Alle bokse fra logikdelens slides

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005

Heisenbergs usikkerhedsrelationer. Abstrakt. Hvorfor? Funktionsrum. Nils Byrial Andersen Institut for Matematik. Matematiklærerdag 2013

Matematisk Metode Notesamling

Types, tokens og rationalisme i matematikkens filosofi

Analyse 2. Gennemgå bevis for Sætning Supplerende opgave 1. Øvelser. Sætning 1. For alle mængder X gælder #X < #P(X).

Vinkelrette linjer. Frank Villa. 4. november 2014

Chomsky hierarkiet af sprogklasser

6.1 Reelle Indre Produkter

Baggrundsnote om logiske operatorer

Skriftlig Eksamen Beregnelighed (DM517)

GEOMETRI-TØ, UGE 12. A σ (R) = A f σ (f(r))

Implikationer og Negationer

Lokalt ekstremum DiploMat 01905

Banach-Tarski Paradokset

8 Regulære flader i R 3

Spilstrategier. Indhold. Georg Mohr-Konkurrencen. 1 Vindermængde og tabermængde 2. 2 Kopier modpartens træk 4

Om første og anden fundamentalform

Statistik II 1. Lektion. Analyse af kontingenstabeller

Module 1: Lineære modeller og lineær algebra

Afstande, skæringer og vinkler i rummet

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Afstande, skæringer og vinkler i rummet

TALTEORI Wilsons sætning og Euler-Fermats sætning.

Symmetriske matricer

Bedste rette linje ved mindste kvadraters metode

Fortolkning. Foldning af sandsynlighedsmål. Foldning af tætheder. Foldning af Γ-fordelinger Eksempel: Hvis X og Y er uafhængige og. Sætning (EH 20.

3. klasse 6. klasse 9. klasse

Evaluering af matematik undervisning

Matematik samlet evaluering for Ahi Internationale Skole

Elementær Matematik. Mængder og udsagn

En differentiabel funktion hvis afledte ikke er kontinuert Søren Knudby

Eleverne skal lære at:

Talteoriopgaver Træningsophold ved Sorø Akademi 2007

TALTEORI Følger og den kinesiske restklassesætning.

Vi indleder med at minde om at ( a) = a gælder i enhver gruppe.

Additionsformlerne. Frank Villa. 19. august 2012

Mat H /05 Note 2 10/11-04 Gerd Grubb

Foldningsintegraler og Doobs martingale ulighed

TALTEORI Ligninger og det der ligner.

Bevisteknikker. Bevisteknikker (relevant både ved design og verifikation) Matematisk induktion. Matematisk induktion uformel beskrivelse

Oversigt [LA] 1, 2, 3, [S] 9.1-3

Om begrebet relation

Transkript:

Regularitet og Automater Tobias Brixen Q4-2012 1

Noterne er skrevet med inspiration fra http://cs.au.dk/ illio/courses/dregaut/dregautnoter.pdf Contents 1 Regulære udtryk 3 1.1 RegEx................................. 3 1.2 Automater............................... 3 1.3 Kleene part 1............................. 4 2 Endelige automater 6 2.1 RegEx og FA er............................ 6 2.2 Produktkontruktion......................... 6 2.3 Determinisering............................ 7 3 Lukkethedsegenskaber 9 3.1 Lukkethed generelt.......................... 9 3.2 Regex................................. 9 3.3 Produktkontruktion......................... 10 3.4 ved CFG.............................. 10 4 NFA er 12 4.1 NFA er................................. 12 4.2 Determinisering............................ 12 4.3 NFA-Λ................................. 13 4.4 Λ-eliminering............................. 14 5 Minimering af automater 15 5.1 RegEx og FA............................. 15 5.2 Skelnelighed.............................. 15 5.3 Ækvivalens.............................. 16 5.4 Eksempel på minimering....................... 17 6 Begrænsninger af regulære sprog 19 6.1 RegEx og FA............................. 19 6.2 Pumping lemma........................... 19 7 Kontekstfri grammatikker 21 7.1 CFG.................................. 21 7.2 Derivationer.............................. 21 7.3 Lukkethed............................... 22 7.4 Pumping lemma........................... 23 Page 2

1 Regulære udtryk Disposition RegEx Automater Kleene part 1 1.1 RegEx formalismen Σ er et sæt af en endelig mængde af symboler. Σ er en sekvens af symboler. L Σ en finite/infite sæt af strenge ud fra Σ. Regulære udtryk er en formalisme til at beskrive regulære sprog - dvs er sprog er regulært hvis det findes et regulært udtryk for det. Definition på regulære udtryk: (Sproget for det regulære udtryk.. er..) = den tomme mænge strenge; som matcher intet. union er foreningen af de strenger der accepteres af enten L 1 eller L 2 : L 1 L 2 = {x Σ x L 1 x L 2 } Konkatineringen er sproget med strenge hvor præfixet er en streng fra L 1 og suffix fra L 2 : L 1 L 2 = {xy Σ x L 1 y L 2 } Kleene operatoren er sproget indeholdene den tomme streng samt sproget konkateneret med sig selv uendelig antal gange: L 0 = {Λ} L K = LL L }{{} K L = i=0 L i 1.2 Automater En automat er en abstrakt maskine der kan sige om en streng er en del af et sprog eller ej. Ud fra klenne ved vi at automater og regulære udtryk har samme udtrykskraft, da vi kan oversætte imellem dem. M = {Q, Σ, q 0, A, δ} Den udvidede transitionsfunktion { δ q hvis x = Λ = δ(δ (q, y), a) hvis x = ya og y Σ og a Σ Sproget for en FA er den mængde af strenge som FA en accepterer. L(M) = {x Σ δ (q 0, x) A} Page 3

Kleene sætning Kleenes sætning: Regulære udtryk og endelige automater har samme udtrykskraft. De må betyde at man kan oversætte fra FA til regex og tilbage igen. Med lidt omveje kan man også det, jeg vil her vise part 1 af klennes sætning som oversætter fra RegEx til NFA-Λ. 1.3 Kleene part 1 Jeg vil bevise det hva. strukturel induktion, hvor jeg tager udgangspunkt i strukturen af regulære sprog. Hvis vi for hver del af definitionen kan oversætte denne til en automat, kan ethvert regulært udtryk også oversættes til en automat. I.H.: M 1 og M 2 accepteres af en NFA-Λ. Union: Vi skal bare bruge de to automater på samme tid - laver en Λ- transition til initial states. δu(q, a) = M U = (Q u, Σ, q u, A u, δ u ) Q u = Q 1 Q 2 {q u } A u = A 1 A 2 δ 1 (q, a) hvis q Q 1 δ 2 (q, a) hvis q Q 2 {q 1, q 2 } hvis q = q 0 og a = Λ hvis q = q 0 og a Σ Konkatinering: Strengne fra et nye sprog, består af de accepterede strenge fra M 1 herefter de accepterede strenge fra M 2. M c = (Q c, Σ, q c, A c, δ c ) Q c = Q 1 Q 2 A c = A 2 δ 1 (q, a) hvis q Q 1 δk(q, a) = δ 2 (q, a) hvis q Q 2 δ 1 (q, a) {q 2 } hvis q A 1 og a = Λ Page 4

Kleene star Den gode idé her, er at den skal accepteres 0 eller mange gange. Vi laver derfor en initial state der accepteres, og alle accept states får en gratis Λ transition til denne initial state. M k = (Q k, Σ, q k, A k, δ k ) Q k = Q 1 {q k } A k = A 1 δ 1 (q, a) hvis q Q 1 δk(q, δ a) = 1 (q, a) {q k } hvis q A 1 og a = Λ {q 1 } hvis q = q k og a = Λ hvis q = q k og a Σ Page 5

2 Endelige automater Disposition RegEx og FA Produktkontruktion Determinisering + Bevis 2.1 RegEx og FA er Regulære udtryk er bruges som for formalisme til at beskrive regulære sprog. Et sprog består af et sæt af strenge Σ over et alfabet Σ, og sproget er regulært, hvis der findes et regulært udtryk r som beskriver alle strengene så, L(r) = L. En automat er er abstrakte maskiner, der tester om en streng er i et sprog. Et eksempel er en automat der genkender sproget med ulige antal 1 taller. M = (Q, Σ, q 0, A, δ) - Hvor A Q og Q Σ Q - ved strenge Q Σ Q. { δ q hvis x = Λ (q, x) = δ(δ (q, y), a) hvis x = ya og y Σ og a Σ Sproget for en FA er givet ved alle de strenge som lander i en accepttilstand 2.2 Produktkontruktion L(M) = {x Σ δ (q 0, x) A} Hvis vi vil lave en - eksempelvis - en union mellem to sprog, kan vi gøre det ved produktiontruktion på automaterne. L(M 1 ) L(M 2 ) = L(M) Vi laver produktkontruktion ved vi lader som om at vi kører igennem begge automater på samme tid, og for hver state par, laver vi den som en ny state i vores nye automat. Q skal derfor være alle kombinationer af states M = (Q, Σ, q 0, A, δ) Q = Q 1 Q 2 q 0 = (q 1, q 2 ) δ((p, q), a) = (δ 1 (p, a), δ 2 (q, a)) Page 6

Alt efter om vi vil have union, intersection eller differens, bliver definitionen af A forskellig: L 1 L 2 : A = {(p, q) p A 1 q A 2 } L 1 L 2 : A = {(p, q) p A 1 q A 2 } L 1 L 2 : A = {(p, q) p A 1 q / A 2 } Herefter vil vi fjerne alle de tilstande som ikke bliver brugt. 2.3 Determinisering Vi vil gerne oversætte fra en NFA til en FA. Forskellen er her at vi i en NFA kan gå til flere states fra samme state og symbol, den udvidede transitionfunktion er nemlig givet ved (uden lambdalukning - skriv op sammen med M = (Q, Σ, q 0, A, δ) bruges til bevis) δ (q, Λ) = {q} δ (q, xa) = {δ(p, a) p δ (q, x)} Når vi skal lave den til en FA, skal vi bruge en del flere states. Da vi i princippet kan fra én state komme til alle andre states, skal states i den nye være powersættet af den gamle. Vi bruger disse sæt som navne til states i vores FA. Hvis sættet i en states indeholder en acceptstate, skal denne være acceptstate; A 1 = {q Q 1 q A } Transitionsfunktionen skal så pege os hen til den state, som indeholder det sæt af states som vi ville have kommet hen til hvis vi stod i NFA en. Dette kan vi gøre, da vi nu arbejder på states, som sæt af states. δ 1 (q, a) = {δ(p, a) p q} Bevis M 1 er en FA, dog en stor en, men dog en FA. Vi vil gerne vise at sproget for NFA en (M) og FA en (M 1 ) er ens. Da states i M 1 er sæt af states kan vi vise at sprogene er ens ved at sætte de to transitionsfunktioenr lige med hinanden: x Σ : δ1(q 1, x) = δ (q 0, x) Det viser vi ved strukturen af x Basis Ved x = Λ δ 1(q 1, x) = δ 1(q 1, Λ) = q 1 = {q 0 } = δ (q 0, Λ) = δ (q 0, x) Page 7

Induktions Step I.H. : δ1(q 1, x) = δ (q 0, x) δ1(q 1, xa) = δ 1 (δ1(q 1, x), a) (I.H.) = δ 1 (δ (q 0, x), a) (Def. af δ 1 ) = {δ(p, a) p δ (q, x)} (Def. af δ) = δ (q 0, xa) Page 8

3 Lukkethedsegenskaber Disposition Lukkethed RegEx Produktkontruktion ved CFG 3.1 Lukkethed generelt Lukkethed er en måde for at være sikker på at man bliver inde i sproget efter de forskellige operationer,,,,, homomorfi, og invers homomorfi. For regulære sprog gælder alle disse, men for CFL er er og kompliment ikke lukket 3.2 Regex Regulære udtryk er bruges som for formalisme til at beskrive regulære sprog. Et sprog består af et sæt af strenge Σ over et alfabet Σ, og sproget er regulært, hvis der findes et regulært udtryk r som beskriver alle strengene så, L(r) = L. En automat er er abstrakte maskiner, der tester om en streng er i et sprog. Et eksempel er en automat der genkender sproget med ulige antal 1 taller. Page 9

Sproget for en automat er 3.3 Produktkontruktion L(M) = {x Σ δ (q 0, x) A} Sproget for en automat er regulært. Jeg vil gerne vise at union for to regulære sprog er også er regulært. Disse to sprog er udtrykt ved automater. (Tegn evt. to automater, så kan man vise at man kører i begge automater på samme tid) For at lave en union på automaters sprog kan vi udføre produktkontruktionen. L(M 1 ) L(M 2 ) = L(M) Vi laver produktkontruktion ved vi lader som om at vi kører igennem begge automater på samme tid, og for hver state par, laver vi den som en ny state i vores nye automat. Q skal derfor være alle kombinationer af states. M = (Q, Σ, q 0, A, δ) Q = Q 1 Q 2 q 0 = (q 1, q 2 ) δ((p, q), a) = (δ 1 (p, a), δ 2 (q, a)) δ ((p, q), a) = (δ 1(p, a), δ 2(q, a)) Vi ved at alle strenge i de to sprog er regulære, hvis vi kan vise at enhver streng i sproget for M, er enten i M 1 eller M 2, kan vi konkludere at alle strenge i M er regulære. Alt efter om vi vil have union, intersection eller differens, bliver definitionen af A forskellig (men vi starter med union): L 1 L 2 : A = {(p, q) p A 1 q A 2 } L 1 L 2 : A = {(p, q) p A 1 q A 2 } L 1 L 2 : A = {(p, q) p A 1 q / A 2 } For at en streng er i sproget kan den komme til en acceptstate; dét tager vi udgangspunkt i. x L(M) : x (L(M 1 ) L(M 2 )) 3.4 ved CFG x L(M) δ (q 0, x) A = δ ((q 1, q 2 ), x) A (Def af δ ((p, q), a)) = δ ((δ 1(q 1, x), δ 2(q 2, x))) A (Def af A) = δ 1(q 1, x) A 1 δ 2(q 2, x) A 2 = x L(M 1 ) x L(M 2 ) = x L(M 1 ) L(M 2 ). CFG Generelt Kontekstfri grammatik giver os mulighed for at beskriver flere sprog end vha regulære udtryk, fx palimdromer. Idéen er at vi går ind og erstatter variabler i strenge med flere variabler eller terminaler. Et sprog er kontekstfrit hvis der findes en grammatik der beskriver sproget: L(G) = {x Σ S x} Page 10

Intersection ikke lukket Jeg påstår at CFG er ikke er lukket under intersection. For at bevise det, kan vi antage at CFG er er lukket under intersection, så skal vi bare finde et modstridende eksempel. L 1 = {a i b j c k i < j} L 2 = {a i b j c k i < k} Dem kan vi se at de er kontekstfrie da vi hurtigt kan lave nogle transitioner hvor vi er sikre på at i < j holder og i < k holder. Hvis vi tager intersectionen mellem disse to, er det strengene der overholder i < j i < k. L = L 1 L 2 L = {a i b j c k i < k i < j} Som giver et ikke kontekstfrit sprog, da det er et vi kan pumpe os ud af. (med kontraponering om kompliment) Men det i hovedet kan vi nemt vise at CFG er heller ikke er lukket under kontraponering da, (L 1 L 2) = L 1 L 2 Foreningen mellem de to komplimenters kompliment er lige intersection, som vi lige har vist ikke er lukket. Page 11

4 NFA er Disposition NFA er Determinisering NFA-Λ Λ-eliminering 4.1 NFA er Vi vi skal lave et regulræt udtryk om til en FA, kan vi gå en omvej til NFA-Λ til NFA og så til FA. I forhold til FA er kan NFA er have flere udgange for samme alfabetsymbol, dvs. vi kommer til at arbejde med en transitionsfunktion som på set, så alle vores states er nu sæt. Da vi teoretisk set, kan komme fra én state, til alle andre på én gang, mapper vi transitionsfunktionen til powersættet af states. M = (Q, Λ, q 0, A, δ) δ : Q Σ 2 Q δ (q, Λ) = {q} δ (q, xa) = {δ(p, a) p δ (q, x)} Sproget for en NFA er givet hvis det er muligt at komme til et state, set indeholdende en acceptstate, 4.2 Determinisering L(M) = {x Σ δ (q 0, x) A / }}. Vi vil gerne oversætte fra en NFA til en FA. Forskellen er her at vi i en NFA kan gå til flere states fra samme state og symbol. Når vi skal lave den til en FA, skal vi bruge en del flere states. Da vi i princippet kan fra én state komme til alle andre states, skal states i den nye være powersættet af den gamle. Vi bruger Page 12

disse sæt som navne til states i vores FA. Hvis sættet i en states indeholder en acceptstate, skal denne være acceptstate; A 1 = {q Q 1 q A } Transitionsfunktionen skal så pege os hen til den state, som indeholder det sæt af states som vi ville have kommet hen til hvis vi stod i NFA en. Dette kan vi gøre, da vi nu arbejder på states, som sæt af states. δ 1 (q, a) = {δ(p, a) p q} Bevis M 1 er en FA, dog en stor en, men dog en FA. Vi vil gerne vise at sproget for NFA en (M) og FA en (M 1 ) er ens. Da states i M 1 er sæt af states kan vi vise at sprogene er ens ved at sætte de to transitionsfunktioenr lige med hinanden: x Σ : δ1(q 1, x) = δ (q 0, x) Det viser vi ved strukturen af x Basis Ved x = Λ δ 1(q 1, x) = δ 1(q 1, Λ) = q 1 = {q 0 } = δ (q 0, Λ) = δ (q 0, x) Induktions Step I.H. : δ 1(q 1, x) = δ (q 0, x) 4.3 NFA-Λ δ 1(q 1, xa) = δ 1 (δ 1(q 1, x), a) (I.H.) = δ 1 (δ (q 0, x), a) (Def. af δ 1 ) = {δ(p, a) p δ (q, x)} (Def. af δ) = δ (q 0, xa) Forskellen på NFA og NFA-Λ er at der også er Λ transitioner med. Σ = Σ {Λ} så og vi har et begreb vi kalder Λ-lukningen, som er de states man kan komme til, fra en state; formelt rekursivt beskrevet som 1)S Λ(S) 2)For every q Λ(S), δ(q, Λ) Λ(S) Page 13

4.4 Λ-eliminering Påstand: At der for et givet sprog L Σ accepteret af en NFA-Λ, findes der en NFA M 1 uden Λ-transitioner der accepterer L. M 1 = (Q, Σ, q 0, A 1, δ 1 ) Bevis: Hvis q 0 / A men Λ L skal vi også lave q 0 til accepttilstand: q Q : δ 1 (q, Λ) = q Q σ Σ : δ 1 (q, σ) = δ(q, σ) { A {q0 } hvis Λ L A 1 = A hvis Λ / L Page 14

5 Minimering af automater Disposition RegEx og FA Skelnelighed Ækvivalens + MyHill-Nerode (Eksempel) 5.1 RegEx og FA Regulære udtryk er en formalisme til at udtrykke regulære sprog. Et sprog er regulært hvis der findes et regulært udtryk der beskriver sproget. Automater er en abstrakt maskine der kan sige om en streng er en del af et sprog eller ej. Ud fra klenne ved vi at automater og regulære udtryk har samme udtrykskraft, da vi kan oversætte imellem dem. M = (Q, Σ, q 0, A, δ) - Hvor A Q og Q Σ Q - ved strenge Q Σ Q. { δ q hvis x = Λ (q, x) = δ(δ (q, y), a) hvis x = ya og y Σ og a Σ Sproget for en automat er givet ved alle de strenge som lander i en accepttilstand L(M) = {x Σ δ (q 0, x) A} 5.2 Skelnelighed To strenge er skelnelige hvis man konkatinere den samme streng på dem, og de ender i hver sin tilstand (accept vs ikke-accept) Formelt beskrevet for x, y Σ z Σ :( (xz L) (yz / L) ) ( (xz / L) (yz L) ) Uskelnelighedesrelationen I L er defineret som: xi L y x og y er uskelnelige mht. L Page 15

Eksempel: for: L = {1, 0} {10} x = 00 y = 01 Så er x og y skelnelige mht. L hvis z = 0 bliver xz accepteret, men yz gør ikke. 5.3 Ækvivalens Hvis, der for vores uskelnelighedsrelation I L gælder at den er: Refleksiv ( x : xi L x) Symmetrisk ( x, y : xi L y yi L x) Transitiv ( x, y, z : xi L y yi L z xi L z) er I L en ækvivalensrelation. En ævivalensrelation over noget partitionerer dette. På denne måde partitionerer uskelnelighedsrelationen alle strenge Σ i ækvavilensklasser. For disse klasser gælder det at alle de strenge deri er uskelnelige. Formelt skrives det som [x] = {y yi L x} Eksempel For sproget fra før, kan vi argumentere for at der er tre skelnelige strenge. 1) De som ender på 00 (denne er også uskelnelig med Λ) 2) De som ender på 1 3) De som slutter på 10. X : {Λ, 0} {0, 1, } {00} Y : {0, 1} {1} Z : {0, 1} {10} Disse partisioneringer opdeler alle strenge Σ i tre ækvivalensklasser: MyHill-Nerode sætningen siger to ting: 1) Hvis I L har uendelig mange ækvivalensklasser, så er L ikke regulært 2) Hvis n skelnelige strenge mht. et sprog L, må en FA der accepterer L have mindst n tilstande. Ud fra hans 2. sætning, må vi kunne konstruere en FA, der accepterer sproget med mindst 3 tilstande. Page 16

Formel definition: M L = (Q, Σ, q 0, A, δ) Q = Q L q 0 = [Λ] A = {q Q q L } δ = (q, a) = p hvis q = [x] og p = [xa] for en streng x 5.4 Eksempel på minimering Fremgangsmåden er som følger 1) Fjern uopnåelige tilstande (slet 5) 2) Marker alle par som indeholder en accepttilstand (marker alle med 2) 3) Hvis, fra et state-par (r, s) efter transition for begge states, kommer over i et statepar der er markeret, skal (r, s) markeres. Fx fra (3,1) kommer man, ved et a, over i parret (3,2) som er markeret - derfor skal (3,1) markeres. 4) Læg ting i samme ækvavilensklasser sammen - Læg 3 og 4 sammen. Grunden til det, er at 3 og 4 er ækvavilente; uanset hvilket symbol de får, kommer de hen til samme state (accept vs ikke-accept). Det er egenligt bare en snedig måde at finde ævkvilensklasser på. For hver kolonne er de i samme klasse som der ikke er markeret mht. rækken. Fx 3 er i samme klasse som 4, da 3,4 ikke er mærket. Det vi har er er 3 og 4 er i uskelnelige, og derfor i samme ækvavilensklasse. Page 17

Page 18

6 Begrænsninger af regulære sprog Disposition RegEx og FA Pumping lemma MyHill-Nerode 6.1 RegEx og FA Regulære udtryk er en formalisme til at udtrykke regulære sprog. Et sprog er regulært hvis der findes et regulært udtryk der beskriver sproget. Automater er en abstrakt maskine der kan sige om en streng er en del af et sprog eller ej. Ud fra klenne ved vi at automater og regulære udtryk har samme udtrykskraft, da vi kan oversætte imellem dem. M = (Q, Σ, q 0, A, δ) - Hvor A Q og Q Σ Q - ved strenge Q Σ Q. { δ q hvis x = Λ (q, x) = δ(δ (q, y), a) hvis x = ya og y Σ og a Σ Sproget for en automat er givet ved alle de strenge som lander i en accepttilstand L(M) = {x Σ δ (q 0, x) A} 6.2 Pumping lemma Hvis vi har en automat med Q = n og vi har en streng x = n 1, og x har forskellige prefixes, så vil det være muligt at automaten er i forskellige states efter processering af hver del. Hvis x n så vil automaten, på et tidpunkt, ramme den samme state to gange. Strengen kan derfor deles i u og v så at δ (q 0, u) = δ (q 0, uv) hvis x L og w er i strengen x = uvw har vi hvad der er på billedet herunder Page 19

Vi kan altså se at vi kommer igennem mindst ét loop, ved uv n. Siden v er vores start/stop i loop et, kan vi pumpe på det / køre den flere gange (eller helt lade være) vi har nu formen uv i w. Th. 2.29: Definitionen her er for regulære udtryk som er regulære n >0 : x L x n : u, v, w Σ : x = uvw uv n v > m 0 : uv m w L Hvis vi vil teste om et regulært udtryk ikke en del af et sprog, kan vi (Bare reverse kvantorne, og den sidste ) n >0 : x L x n : u, v, w Σ : Lav eksempel ved L = {a i b i i 0}. Det skal gælder for alle n > 0 x = uvw uv n v > m 0 : uv m w / L Vi vælger x = 0 n 1 n, opfylder sproget, samt x n Der er en opdeling af x = uvw Da uv n består uv kun af 0 er Vi når vi pumper, pumper vi altså på mindst en 0 er (da v > 0) og vi kan bare vælge m 2 og derved vise at der er flere 0 er end 1 er. Page 20

7 Kontekstfri grammatikker Disposition CFG Derivationer Lukkethed Pumping lemma 7.1 CFG Som regulære udtryk udtrykker, regulære sprog, har vi også kontekstfri grammatiker (CFG) som beskriver kontekstfri sprog (CFL). De regulære sprog er indeholdt i kontekstfri grammatikker, ligesom endelige sprog er indehold i regulræe sprog. Vi kan derfor også oversætte regulære udtryk til kontekstfri grammatikker, men mere om det senere. En kontekstfri grammatik er givet ved G = {V, Σ, S, P } Hvor V er non-terminaler/variabler, Σ er terminaler, S er start-variablen, og P er produktioner på formen A α hvor A V, og α (V Σ). 7.2 Derivationer Hvordan bruger vi så de kontekstfri grammatikker? Det gøres ved derivationer, givet ved symbolet. Den bruges som: Hvis a 1, a 2 (V Σ) og (A γ) P, så gælder det at a 1 Aa 2 a 1 γa 2 Den udvidede derivationstrin er givet som α β hvis og kun hvis α...... β Kontekstfri betyder bare at når man laver udskiftningerne (A α) er det ligemeget hvad der står udenom. (Modsat kontekst sensitive grammatikker, som et det næste trin i chomsky hirakiet) Sproget for en CFG er alle de strenge som hvor vi kan bruge produktionerne til at komme frem til strengen: L(G) = {x Σ S x} Derivationstræer er en grafisk måde at skrive mulige derivationer op på. Eksempelvis ved x y + z. Vi har et par produktioner fx {S S + S, S S S}, som giver os starten på træerne hernede. Page 21

For dette udtryk er der altså flere derivationertræer, dvs at CFG en er tvetydig. Sagt mere formelt: En CFG er tvetydig hvos der eksisterer en streng x L(G) med mere end ét derivationstræ. Eksempel på CFG ved en CFG: Sproget pal = {x Σ x = reverse(x)} kan vi beskrive G = {V, Σ, S, P } V = {S} Σ = {0, 1} P = {S λ 0 1 0 S 0 1 S1 } Sproget for palindromer er ikke regulært, men det er kontekstfri. Regulære CFG er. Hvis en CFG er regulært, er sproget L(G) også regulært. Det gælder dog ikke nødvendigvis den anden vej. En regulær CFG har produktioner på formen B σc og A λ. At den er regulær, betyder at vi kan oversætte fra RegEx til CFG er Bevis - Basis r = vælg V = {S}, P = r = Λ vælg V = {S}, P = {S Λ} r = σ Σ vælg V = {S}, P = {S σ} 7.3 Lukkethed Lukkethed er en måde for at være sikker på at man bliver inde i sproget efter de forskellige operationer,,,,, homomorfi, og invers homomorfi. For regulære sprog gælder alle disse, men for CFL er er og kompliment ikke lukket Intersection ikke lukket Jeg påstår at CFG er ikke er lukket under intersection. For at bevise det, kan vi antage at CFG er er lukket under intersection, så skal vi bare finde et modstridende eksempel. L 1 = {a i b j c k i < j} L 2 = {a i b j c k i < k} Page 22

Dem kan vi se at de er kontekstfrie da vi hurtigt kan lave nogle transitioner hvor vi er sikre på at i < j holder og i < k holder. Hvis vi tager intersectionen mellem disse to, er det strengene der overholder i < j i < k. L = L 1 L 2 L = {a i b j c k i < k i < j} Som giver et ikke kontekstfrit sprog, da det er et vi kan pumpe os ud af. (med kontraponering om kompliment) Men det i hovedet kan vi nemt vise at CFG er heller ikke er lukket under kontraponering da, (L 1 L 2) = L 1 L 2 Foreningen mellem de to komplimenters kompliment er lige intersection, som vi lige har vist ikke er lukket. 7.4 Pumping lemma Chomsky Normal Form 1 (CNF) betyder at grammatikken enten højresiden af en produktion er enten 1) enkel terminal eller 2) to non-terminaler. Hvis vi har en grammatik på CNF en streng u hvor u > 2 p (hvor p er distinke produktioner i CGF en) så er vi sikre på at den samme produktion er blevet brugt mere end én gang. De må altså gælde at hvis vi bruger dette loop flere gange er vi stadig inde i sproget. Formelt skrives det som: n >0 : u L hvor u n : x, u, v, w, z Σ : u = vwxyz wxy n wy > m 0 : vw m x m z L Hvis vi vil bevise at en grammatik ikke er en CFG, kan vi vise det ved at lave en kontraponering af dette. n >0 : u L hvor u n : x, u, v, w, z Σ : u = vwxyz wxy n wy > m 0 : vw m x m z / L Eksempel Lad L = {a i b j c k i < j i < k} der vælges et n > 0 Vi vælger strengen u = a n b n+1 c c+2 så u L samt u > 0 1 Den er på CNF form hvis produktionerne er på formen A BC (non-terminal til to non-terminal) eller A σ (Non-terminal til terminal) Page 23

Der bliver valgt en opdeling med u = vwxyz, wxy og wy > 0 Vi kan se at strengen ikke kan indeholde a er og c er da wxy n Hvis u indeholder mindst ét a så vælges m = 2, da antallet af a er vil blive flere end c er. Hvis u ikke indeholder a er vælges m = 0 da enten vil : 1) wxy indeholde kun b er: Så vil antal b er være mindre end a er 2) wxy indeholde b er og c er: Så pumper vi på mindst ét b og mindst ét c: Så vil antal b er være lige antal a er. 3) wxy indeholde kun c er: Så vil antal c er være lige a er. Page 24