Regularitet & Automater Eksamensnotater

Størrelse: px
Starte visningen fra side:

Download "Regularitet & Automater Eksamensnotater"

Transkript

1 Regularitet & Automater Eksamensnotater Michael Lind Mortensen, , DAT4 10. juni 2008

2 Indhold 1 Regulære udtryk (1.5 & 3.1) Disposition Noter Definer regulære udtryk Endelige automater Definer automater Kleene sætning del Endelige automater ( ) Disposition Noter Endelige automater Definer automater Determinering Produktkonstruktionen Lukkethedsegenskaber ( ) Disposition Noter Definer regulære udtryk Produktkonstruktionen Lukkethedsegenskaber Kontekstfrie grammatiker Nondeterministiske automater (4) Disposition Noter NFA er Definer automater Determinering NFA-Λ Kleene Λ-eliminering Minimering af automater ( ) Disposition Noter Endelige automater Eksempel på minimering af en FA Skelnelighed MyHill-Nerode

3 6 Begrænsninger af regulære sprog (5.3) Disposition Noter Definer regulære udtryk Skelnelighed MyHill-Nerode Pumping lemmaet for regulære sprog Kontekstfri grammatikker (6-8) Disposition Noter Kontekstfrie grammatiker Lukkethedsegenskaber Pumping Lemma for CFL

4 1 Regulære udtryk (1.5 & 3.1) 1.1 Disposition 1. RegExp 2. RegExp vs. Automater 3. Kleene Noter Definer regulære udtryk Regulære udtryk er en formalisme vi bruger til at beskrive de regulære sprog - således er de defineret. L( ) = L(Λ) = Λ L(a) = a, (a Σ) L(r 1 + r 2 ) = L(r 1 ) L(r 2 ) L(r 1 r 2 ) = L(r 1 )L(r 2 ) L(r ) = (L(r)) Et sprog S er derved kun regulært såfremt der eksisterer et regulært udtryk således at L(r) = S. Operationer Man kan så udføre en række operationer med disse regulære sprog, heriblandt foreningsoperationer (også kaldet union): L 1 L 2 = {x Σ x L 1 x L 2 } Union forklaret: Giver et sprog der indeholder alle strenge som mindst et af sprogene indeholder. Eller konkateneringsoperationen som giver et sprog der indeholder alle strenge der består af et prefix af det ene sprog efterfulgt af en streng fra det andet sprog: L 1 L 2 = {xy Σ x L 1 y L 2 } 4

5 Og så Kleenoperatoren der giver et sprog der indeholder alle strenge, der består af den tomme streng efterfulgt af et vilkårligt antal strenge: L = L i, L k = LL L, L 0 = {Λ} i=0 Præcedens: Kleene stjerne, Konkatenering, Forening Regulære udtryk er en mekanisme til at beskrive et sprog. Endelige automater tester hvorvidt en given streng er indeholdt i sproget Endelige automater Endelige automater (FA er) abstrakte maskiner designet til at teste hvorvidt en given streng er med i et sprog. Eksempel En FA består af en endelig mængde tilstande Q og har så til format at løse membership beslutningsproblemer for regulære sprog. Et eksempel på en FA ses herunder, men alfabetet Σ = {0, 1}. Denne genkender strenge med ulige antal 1 ere: En FA er defineret som en 5-tuppel: M = (Q, Σ, q 0, A, δ), hvor Q er en endelig mængde af tilstande, Σ er et alfabet bestående af en endelig mængde symboler, q 0 er den initielle tilstand, A er et subset af Q (A Q) hvor disse tilstande er accepttilstande og δ er en transitionsfunktion på formen Q Σ Q. 5

6 Sproget for en FA Sproget for en FA er et regulært sprog, da regulære sprog og FA er har samme udtrykskraft og en FA kan oversættes til et regulært udtryk (vha. Kleene s sætning del 2). Uden et sprog har en FA ingen funktion. Sproget for en FA er defineret som: L(M) = {x Σ δ (q 0, x) A} Altså indeholder sproget de strenge x for hvilket den udvidede transitionsfunktion fra initialtilstanden på strengen x går til en accepttilstand. Den udvidede transitionsfunktion For q Q og x Σ er δ : Q Σ Q defineret som { δ q hvis x = Λ (q, x) = δ(δ (q, y), a) hvis x = ya hvor y Σ og a Σ Definer automater Som sagt har regulære udtryk samme udtrykskraft som endelige automater (og omvendt), men hvordan konverterer man så imellem de to? Jo det gør man ved at lave et regulært udtryk om til en NFA-Λ, videre til en NFA vha. Λ-eliminering og så til sidst til en FA vha. determinisering. Ligeledes kan en FA laves om til et regulært udtryk vha. Kleene 2, eller en FA kan laves om til en NFA og videre til en NFA-Λ. Alt dette er vist forneden: Kleene sætning del 1 My way Kleene 1 bruges til at oversætte et regulært udtryk til en NFA-Λ. Dette vil vi bevise ved at lave et strukturalt induktionsbevis i strukturen af det regulære udtryk r: Basis 6

7 Induktionshypotesen Der eksisterer NFA-Λ er M 1 og M 2 hvor L(M 1 ) = L(r 1 ) og L(M 2 ) = L(r 2 ). Induktionsskridtet Det ses at sproget er det samme ved r = r 1 + r 2 da man blot følger Λ transitioner og hvert x L(M 1 ) vil derfor stadig blive genkendt af M 1. Det 7

8 samme gælder for konkatinering og Kleenes stjerne. Formel definition og bevis Kleene s sætning (1). Ethvert regulært sprog kan genkendes af en endelig automat (NFA-Λ). Bevis. Vi har allerede en sætning der siger at disse tre udsagn er ækvivalente L kan genkendes af en FA L kan genkendes af en NFA L kan genkendes af en NFA-Λ Det er derfor nok at vise at ethvert regulært sprog kan genkendes af en af dem, her en NFA-Λ. Dette bevises vha. strukturel induktion., {Λ}, {a}(a Σ) De tre basistilfælde kan genkendes af hhv. automaten med kun den initielle tilstand som ikke er en accepttilstand, automaten med kun den initielle tilstand som også er en acceptilstand og automaten med en initiel tilstand samt en transition δ(q 0, a) = p, hvor p er en accepttilstand. M u : L 1 L 2 Som induktionshypotese antages at automaterne M 1 og M 2 er accepteret af en NFA-Λ. Vi definerer M u = (Q u, Σ, q u, A u, δ u ) Q u = Q 1 Q 2 {q u } A u = A 1 A 2, hvor q u er en ny tilstand der hverken tilhører Q 1 eller Q 2. Transitionsfunktionen er triviel; { δ1 (q, a) if q Q δ u (q, a) = 1, δ 2 (q, a) if q Q 2 men indeholder ydermere transitioner for den nye initielle tilstand, sådan så lambdalukningen for q u tillader at vi både bevæger os ind i M 1 og M 2. δ u (q u, Λ) = {q 1, q 2 } δ u (q u, a) = for every a Σ 8

9 M c : L 1 L 2 Samme induktionshypotese som før. Vi definerer M c = (Q c, Σ, q c, A c, δ c ) Q c = Q 1 Q 2 A c = A 2 Transitionsfunktionen er triviel for alle tilstande der ikke tilhører A 1. For α Σ {Λ}: { δ1 (q, a) if q Q δ c (q, α) = 1 A 1 δ 2 (q, a) if q Q 2 Hos de resterende tilstande bliver lambdalukningen udvidet til den initielle tilstand hos L 2. For alle q A 1 : δ c (q, a) = δ 1 (q, a) for every a Σ δ c (q, Λ) = δ 1 (q, Λ) {q 2 } M k : L 1 Samme induktionshypotese om L 1. Vi definerer M k = (Q k, Σ, q k, A k, δ k ) Q k = Q 1 {q k } A k = {q k }, hvor q k er en ny tilstand der ikke tilhører Q 1. Transitionsfunktionen er kun triviel i disse tilfælde. For q Q 1 og α Σ {Λ}: δ k (q, α) = δ 1 (q, α), med mindre q A 1 og α = Λ. I dette tilfælde definerer vi for q A 1 For den nye tilstand definerer vi δ k (q, Λ) = δ 1 (q, Λ) {q k }. δ k (q k, Λ) = {q 1 } δ k (q k, a) = for a Σ På den måde udvides lambdalukningen fra hver tidligere accepttilstand så vi kan begynde forfra et vilkårligt antal gange. 9

10 2 Endelige automater ( ) 2.1 Disposition 1. RegExp & Automater 2. FA er 3. Produktkonstruktion 4. Determinering 2.2 Noter Endelige automater Endelige automater (FA er) abstrakte maskiner designet til at teste hvorvidt en given streng er med i et sprog. Eksempel En FA består af en endelig mængde tilstande Q og har så til format at løse membership beslutningsproblemer for regulære sprog. Et eksempel på en FA ses herunder, men alfabetet Σ = {0, 1}. Denne genkender strenge med ulige antal 1 ere: En FA er defineret som en 5-tuppel: M = (Q, Σ, q 0, A, δ), hvor Q er en endelig mængde af tilstande, Σ er et alfabet bestående af en endelig mængde symboler, q 0 er den initielle tilstand, A er et subset af Q (A Q) hvor disse tilstande er accepttilstande og δ er en transitionsfunktion på formen Q Σ Q. 10

11 Sproget for en FA Sproget for en FA er et regulært sprog, da regulære sprog og FA er har samme udtrykskraft og en FA kan oversættes til et regulært udtryk (vha. Kleene s sætning del 2). Uden et sprog har en FA ingen funktion. Sproget for en FA er defineret som: L(M) = {x Σ δ (q 0, x) A} Altså indeholder sproget de strenge x for hvilket den udvidede transitionsfunktion fra initialtilstanden på strengen x går til en accepttilstand. Den udvidede transitionsfunktion For q Q og x Σ er δ : Q Σ Q defineret som { δ q hvis x = Λ (q, x) = δ(δ (q, y), a) hvis x = ya hvor y Σ og a Σ Definer automater Som sagt har regulære udtryk samme udtrykskraft som endelige automater (og omvendt), men hvordan konverterer man så imellem de to? Jo det gør man ved at lave et regulært udtryk om til en NFA-Λ, videre til en NFA vha. Λ-eliminering og så til sidst til en FA vha. determinisering. Ligeledes kan en FA laves om til et regulært udtryk vha. Kleene 2, eller en FA kan laves om til en NFA og videre til en NFA-Λ. Alt dette er vist forneden: Determinering Kort forklaret med eksempel Enhver NFA kan oversættes til en FA, hvilket gøres vha. Determinisering eller delmængdekonstruktion (hvad end man har lyst til at kalde det). Vi har en NFA M = (Q, Σ, q 0, A, δ) og vil nu lave denne om til en FA M 1 = (Q 1, Σ, q 1, A 1, δ 1 ) hvor Q 1 bliver til Q 1 = 2 Q, da hver tilstand i FA en bliver en mængde af tilstande i NFA en. q 1 bliver til q 1 = {q 0 }. Accepttilstandende for FA en bliver til A 1 = {q Q 1 q A }, altså blot de q i 11

12 vores nye Q hvor disse var accepttilstande i NFA en (hvilket vil sige at alle i en mængde bliver accept hvis en given q er en mængde af tilstande fra NFA en). Sidst men ikke mindst bliver transitionsfunktionen omdefineret til: δ 1 (q, a) = r q δ(r, a) Nu gælder det så at L(M 1 ) = L(M). Hele denne proces ses i eksemplet herunder: Som vi kan se bliver tilstandende i NFA en lavet om til mængder af tilstande i FA en, hvor 1 transitionerne fra q 0 bliver til mængden {3, 2}, som så bliver en accepttilstand fordi tilstand 2 var en accepttilstand i NFA en og accepttilstandende er defineret som: A 1 = {q Q 1 q A }. Formel definition NB: Også kaldet delmængdeproduktion. 12

13 Givet en NFA M definer en FA M 1 : M = (Q, Σ, q 0, A, δ) M 1 = (Q 1, Σ, q 1, A 1, δ 1 ) Q 1 = 2 Q q 1 = {q 0 } A 1 = {q Q 1 q A } δ 1 (q, a) = δ(r, a) r q Der gælder nu L(M 1 ) = L(M). Bevis. Definitionen af A 1 er sand da en streng accepteres hvis M fra q 0 ender op med en mængde tilstande hvor mindst en er et element i A. Det følger da fra nedenstående lemma at L(M) = L(M 1 ). En streng x accepteres af M 1 hvis δ 1 (q 1, x) A. Dette er sandt hvis og kun hvis δ (q 0 ), x) A 1. Fra definitionen af A 1 ser vi at dette er sand hvis og kun hvis δ (q 0, x) A. Altså accepteres x af M 1 hvis og kun hvis x accepteres af M. Lemma 1. x Σ : δ 1(q 1, x) = δ (q 0, x) Bevis. Ved induktion i strukturen af x. Basis: Hvis x = Λ, δ 1(q 1, x) = δ 1(q 1, Λ) = q 1 = {q 0 } = δ (q 0, Λ) = δ (q 0, x) Induktionsskridt: Vi antager at δ 1 (q 1, x) = δ (q 0, x) δ1(q 1, xa) = δ 1 (δ1(q 1, x), a) = δ 1 (δ (q 0, x), a) = δ(r, a) r δ (q 0,x) = δ(δ (q 0, x), a) = δ (q 0, xa) 13

14 2.2.4 Produktkonstruktionen En spændende egenskab ved automater er at vi kan lave forenings-, snit- og differens-operationer på dem. Ved hver af disse operationer definerer vi en FA M ud fra de to input FA er M 1 = (Q 1, Σ, q 1, A 1, δ 1 ) og M 2 = (Q 2, Σ, q 2, A 2, δ 2 ) - således at: 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)), hvor p Q 1, q Q 2 og a Σ. Hver tilstand er altså nu repræsenteret ved en tuppel. Vi kan nu definere A på følgende måder for at opnå en af de tre operationer: 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 } Illustration ved eksempel M 1 og M 2. Nedenfor ses et eksempel på union af to FA er Som det ses så har vi to FA er: M 1 = (Q 1, Σ, q 1, A 1, δ 1 ) M 2 = (Q 2, Σ, q 2, A 2, δ 2 ) 14

15 Hvorefter vi definerer en ny FA. Normalt vil man fjerne alle tilstande som ikke er uopnåelige fra starttilstanden, men da der ingen af dem er her ignorerer vi det.: Der gælder nu: M = (Q, Σ, q 0, A, δ) Q = Q 1 Q 2 q 0 = (q 1, q 2 ) A = {(p, q) p A 1 q A 2 } δ((p, q), a) = (δ 1 (p, a), δ 2 (q, a)) L(M) = L(M 1 ) L(M 2 ) Hvordan ved vi så sproget stadig er regulært? - Det ved vi fordi vi kan lave en FA og det derfor helt naturligt må være regulært, da FA er og regulære udtryk har samme udtrykskraft og kan konverteres imellem vha. Kleene 1 og 2. Det vigtige er så at være sikker på automaten accepterer det rigtige sprog. At det er regulært er intuitivt, da vi ellers ikke ville kunne konstruere en FA. Dette ved vi så dog ud fra lukkethedsegenskaberne for regulære sprog, da disse gør at regulære sprog er lukket under Kleene stjerne, konkatinering, union, intersection, division og en række andre ting. 3 Lukkethedsegenskaber ( ) 3.1 Disposition 1. RegExp 2. Produktkonstruktion 3. Kontraponering 4. CFG lukkethed 3.2 Noter Definer regulære udtryk Regulære udtryk er en formalisme vi bruger til at beskrive de regulære sprog - således er de defineret. 15

16 L( ) = L(Λ) = Λ L(a) = a, (a Σ) L(r 1 + r 2 ) = L(r 1 ) L(r 2 ) L(r 1 r 2 ) = L(r 1 )L(r 2 ) L(r ) = (L(r)) Et sprog S er derved kun regulært såfremt der eksisterer et regulært udtryk således at L(r) = S. Operationer Man kan så udføre en række operationer med disse regulære sprog, heriblandt foreningsoperationer (også kaldet union): L 1 L 2 = {x Σ x L 1 x L 2 } Union forklaret: Giver et sprog der indeholder alle strenge som mindst et af sprogene indeholder. Eller konkateneringsoperationen som giver et sprog der indeholder alle strenge der består af et prefix af det ene sprog efterfulgt af en streng fra det andet sprog: L 1 L 2 = {xy Σ x L 1 y L 2 } Og så Kleenoperatoren der giver et sprog der indeholder alle strenge, der består af den tomme streng efterfulgt af et vilkårligt antal strenge: L = L i, L k = LL L, L 0 = {Λ} i=0 Præcedens: Kleene stjerne, Konkatenering, Forening Regulære udtryk er en mekanisme til at beskrive et sprog. Endelige automater tester hvorvidt en given streng er indeholdt i sproget. 16

17 3.2.2 Produktkonstruktionen En spændende egenskab ved automater er at vi kan lave forenings-, snit- og differens-operationer på dem. Ved hver af disse operationer definerer vi en FA M ud fra de to input FA er M 1 = (Q 1, Σ, q 1, A 1, δ 1 ) og M 2 = (Q 2, Σ, q 2, A 2, δ 2 ) - således at: 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)), hvor p Q 1, q Q 2 og a Σ. Hver tilstand er altså nu repræsenteret ved en tuppel. Vi kan nu definere A på følgende måder for at opnå en af de tre operationer: 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 } Illustration ved eksempel M 1 og M 2. Nedenfor ses et eksempel på union af to FA er Som det ses så har vi to FA er: M 1 = (Q 1, Σ, q 1, A 1, δ 1 ) M 2 = (Q 2, Σ, q 2, A 2, δ 2 ) 17

18 Hvorefter vi definerer en ny FA. Normalt vil man fjerne alle tilstande som ikke er uopnåelige fra starttilstanden, men da der ingen af dem er her ignorerer vi det.: Der gælder nu: M = (Q, Σ, q 0, A, δ) Q = Q 1 Q 2 q 0 = (q 1, q 2 ) A = {(p, q) p A 1 q A 2 } δ((p, q), a) = (δ 1 (p, a), δ 2 (q, a)) L(M) = L(M 1 ) L(M 2 ) Hvordan ved vi så sproget stadig er regulært? - Det ved vi fordi vi kan lave en FA og det derfor helt naturligt må være regulært, da FA er og regulære udtryk har samme udtrykskraft og kan konverteres imellem vha. Kleene 1 og 2. Det vigtige er så at være sikker på automaten accepterer det rigtige sprog. At det er regulært er intuitivt, da vi ellers ikke ville kunne konstruere en FA. Dette ved vi så dog ud fra lukkethedsegenskaberne for regulære sprog, da disse gør at regulære sprog er lukket under Kleene stjerne, konkatinering, union, intersection, division og en række andre ting Lukkethedsegenskaber Regulære sprog har en række pæne egenskaber, heriblandt at de er lukkede under en mængde operationer såsom: forening, snit og differens (produktkonstruktionen) komplement: L 1 = Σ, L 2 = R R = L 1 L 2 konkatenering og kleene Eksempel: Vis produktkonstruktion og argumenter for sproget er korrekt. 18

19 Kontraponering Lukkethedsegenskaber bruges bl.a. til at vise at et givent sprog ikke er regulært. Eksempelvis, så hvis vi antager vi allerede har bevist at S ikke er regulært, så hvis: S = P R og R er regulær, så kan P ikke være regulær. Homomorfi Homorforfi består i al sin enkelhed i at man tager alfabetet fra den ene og ændrer konsistent til den andens alfabet. F.eks. hvis man ville ændre Σ = [a z] til Σ = [A Z]. Regulære sprog er lukkede under homomorfi. g : Σ 1 Σ 2 { Λ hvis x = Λ h(x) = h(y)g(a) hvis x = ya, y Σ 1, a Σ 1 hvis L er regulært, er h(l) = {h(x) x L} det også. (eks. palindromer) Bevis. Strukturel induktion i regulære udtryk, erstat hver a Σ 1 i udtrykket med h(a). Omvendt: Bevis. Givet M definer M 1. M = (Q, Σ 2, q 0, A, δ) M 1 = (Q, Σ 1, q 0, A, δ 1 ), hvor δ 1 (q, a) = δ (q, h(a)) Påstand: L(M 1 ) = h 1 (L) (bevises ved induktion) Lukkethed for CFG er Hvor regulære udtryk er lukket under stortset hvad som helst, så er CFG er knap så tilgivende. Lukket for forening, konkatenering og kleene, men ikke for snit (eks.) og komplement (modstrid: (L 1 L 2 ) = L 1 L 2 ). 19

20 CFG er snit Hvordan ses det så CFG er ikke er lukket for snit? Hvis vi antager CFG er er lukket under snit, så gælder det blot om at finde et modstridende eksempel, så vi ser på følgende sprog L: L = {a i b j c k i < j i < k} L er ikke kontekstfrit! Hvis vi så kigger på sprogene: L 1 = {a i b j c k i < j} L 2 = {a i b j c k i < k} Så er disse faktisk kontekstfrie. Hvis vi så forsøger at lave snittet af disse, så viser det sig: L = L 1 L 2 Altså at snittet af L 1 og L 2 faktisk er lig L, som vi jo ved ikke er kontekstfri. Altså er klassen af kontekstfrie sprog ikke lukket under snit. CFG er komplement At CFG er ikke er lukket under komplement ses nemt, da vi blot kan finde et eksempel som dette: (L 1 L 2) = L 1 L 2 Altså hvor komplementet af L 1 s komplement forenet med L 2 s komplement resulterer i snittet mellem L 1 og L 2. Og siden vi allerede har bevist CFG er ikke er lukket under snit, så er de logisk nok heller ikke lukket under komplement Kontekstfrie grammatiker Ligesom et regulært udtryk beskriver et givent regulært sprog, så genererer en kontekstfri grammatik (CFG) et kontekstfrit sprog (CFL). En kontekstfri grammatik er derved en udtryksmekanisme ligesom FA er, RegExp er osv., men blot med lidt andre muligheder. Desuden skal det siges 20

21 at alle regulære udtryk rent faktisk er indeholdt i de kontekstfrie sprog, sådan at ethvert regulært udtryk rent faktisk kan oversættes til et kontekstfrit sprog - men mere om det senere. En kontekstfri grammatik er defineret som en 4-tuple: G = {V, Σ, S, P } Hvor V er en endelig mængde af nonterminal-symboler, Σ er et alfabet af terminal-symboler (hvor V Σ = ), S V er et start-symbol og en del af nonterminalerne og sidst men ikke mindst P er en endelig mængde af produktioner på form A α hvor A V og α (V Σ). Kontekstfrie grammatikker bruges bl.a. til beskrivelse af syntaks for programmeringssprog og er en af hjørnestenene i compilers (specifikt til parsing af kode). Derivationer En derivation er en erstatning af et nonterminal-symbol ifølge en given produktion P. Et derivationstrin skrives som og er en relation over mængden (V Σ). Hvis a 1, a 2 (V Σ) og (A γ) P, så gælder der: a 1 Aa 2 a 1 γa 2 Relationen defineres så som den refleksive transititve luking af, hvor α β hvis og kun hvis α β (altså at α går til β ved 0 eller flere derivationstrin). 21

22 Hvorfor navnet kontekstfrit så? Fordi man kan substituere nonterminalen A for γ uafhængigt af konteksten. Eksempel: algebraiske udtryk algebraiske udtryk, således at: Vi har en CFG G = (V, Σ, S, P ) for V = {S} Σ = {+,,, /, (, ), x, y, z} P = S S + S S S S S S/S (S) x y z Vi vil nu vise at strengen x y + z er i L(G), hvilket vi gør ved at følge en sekvens af derivationer S... x y + z. Vi har 3 derivationer af strengen x y + z: 1) S S + S S S + S x S + S x y + S x y + z 2) S S + S S + z S S + z S y + z x y + z 3) S S S S S + S x S + S x y + S x y + z Vi har altså 3 måder at nå frem til strengen på. Når en given CFG har dette siges det at den er tvetydig: En CFG G er tvetydig hvis der eksisterer en streng x L(G) med mere end et derivationstræ. Derivationstræer Et derivationstræ er blot en måde at strukturere forskellige derivationer på. Vores algebraiske udtryk har f.eks. derivationstræerne: 22

23 En parser bruger netop disse typer derivationstræer når den læser en given streng. Sproget for en CFG Sproget for en CFG er et kontekstfrit sprog hvis og kun hvis der findes en CFG G hvor L(G) = L, hvor L Σ. L er således defineret som: L(G) = {x Σ S x} Altså hvis man igennem at bruge produktionerne i CFG en kan finde x, så er x i sproget. Eksempel på en CFG Vi har en CFG G = (V, Σ, S, P ) der beskriver sproget A = {a n b n n 0}. G har således: V = {S} Σ = {a, b} P = {S asb, S λ} OBS: P kan også skrives som P = {S asb λ} CFG en for Palindromer Sproget pal = {x {0, 1} x = reverse(x)} kan beskrives af en CFG G = (V, Σ, S, P ) hvor: V = {S} Σ = {0, 1} P = {S λ, S 0, S 1, S 0S0, S 1S1} Så er pal kontekstfrit, men ikke regulært. OBS: Igen kan P i stedet skrives som P = {S λ 0 1 OS0 1S1}. 23

24 Højrelineære CFG er En CFG siges at være højrelineær, hvis alle dens produktioner er på formen: A ab.. eller A λ Hvor A, B V og a Σ. Eksempler kunne være: S 0S 1A A 0A 1S λ At CFG en G gør den nemmere at arbejde med, da det betyder L(G) faktisk er regulært, hvorved det eksempelvis kan oversættes til en NFA-Λ vha. Kleene 1. Dette faktum betyder også, at ethvert regulært sprog L kan laves om til en højre-lineær grammatik G så L(G) = L. OBS: L(G) kan godt være regulært uden at CFG en er højre-lineær.. det er blot altid regulært hvis CFG en ER højre-lineær. Bevis. Strukturel induktion i r Basis: r = vlg V = {S}, P = r = λ vlg V = {S}, P = {S λ} r = a Σ vlg V = {S}, P = {S a} Induktionsskridt: r = r 1 + r 2 : Vi har en induktionshypotese der giver os: G 1 = (V 1, Σ, S 1, P 1 ), L(G 1 ) = L(r 1 ) G 2 = (V 2, Σ, S 2, P 2 ), L(G 2 ) = L(r 2 ) Vi omdøber lige nonterminalsymbolerne således at V 1 V 2 =, hvorefter vi vælger: 24

25 V = V 1 V 2 {S} S / V 1 V 2 P = P 1 P 2 {S S 1, S S 2 } r = r 1 r 2 : Som vi havde det ved r = r 1 + r 2, men: P = P 1 P 2 {S S 1 S 2 } r = r 1 : igen som ved r = r 1 + r 2, men: V = V 1 {S} P = P 1 {S S 1 S, S λ} Oversættelse fra RegExp til CFG Ethvert regulært udtryk r over et alfabet Σ kan oversættes til en CFG G = {V, Σ, S, P } hvor L(G) = L(r). Fremgansmåde: 1. Start med at Eksempel på oversættelse af RegExp til CFG Hvis vi har det regulære udtryk r = a + b, så oversættes det til en CFG således: 4 Nondeterministiske automater (4) 4.1 Disposition 1. NFA er 2. Determinisering 3. Kleene 1 4. NFA-Λ 5. Λ-eliminering 25

26 4.2 Noter NFA er Hvordan laver man en automat, der svarer til det regulære udtryk ( ) 0? Det gør man vha. en NFA - denne her for at være præcis: Der er ikke altid præcis en udgående transition pr. alfabetsymbol for hver tilstand Automaten accepterer en streng, hvis det er muligt at gætte en vej til accept Som det kan ses bliver eksempelvis strengen godkendt af automaten ovenfor. Formel definition NFA er er i høj grad ligesom FA er, dog med et ekstra lille hint af ubestemmelighed (hence the name). En NFA bestemmes, ligesom en FA, af en 5-tuple som beskrevet herunder. M = (Q, Σ, q 0, A, δ) δ : Q Σ 2 Q { {q} hvis x = Λ δ (q, x) = r δ (q,y) δ(r, a) hvis x = ya, hvor y Σ og a Σ Så altså ligesom en FA bortset fra de tilstande den går til nu er mængder af tilstande, sproget for en NFA er anderledes og derved så er transitionsfunktionen for en NFA anderledes. 26

27 Sproget for en NFA M accepterer en streng x hvis og kun hvis δ (q 0, x) A. L(M) = {x Σ δ (q 0, x) A } En streng er altså accepteret hvis der eksisterer en sti igennem tilstandende hvortil den givne streng kan slutte i en accepttilstand. Fra FA til NFA: δ giver singleton-mængder. Størrelsen af en NFA NFA er er ofte mindre end FA er, da en FA der genkender sproget L 42 = {x {0, 1} x 42 og det 42. symbol fra højre i x er et 1 }, har mindst hele 2 42 tilstande, da dette er mængden af ækvivalensklasser, så har en NFA der genkender L 42 kun 43 tilstande: Definer automater Som sagt har regulære udtryk samme udtrykskraft som endelige automater (og omvendt), men hvordan konverterer man så imellem de to? Jo det gør man ved at lave et regulært udtryk om til en NFA-Λ, videre til en NFA vha. Λ-eliminering og så til sidst til en FA vha. determinisering. Ligeledes kan en FA laves om til et regulært udtryk vha. Kleene 2, eller en FA kan laves om til en NFA og videre til en NFA-Λ. Alt dette er vist forneden: 27

28 4.2.3 Determinering Kort forklaret med eksempel Enhver NFA kan oversættes til en FA, hvilket gøres vha. Determinisering eller delmængdekonstruktion (hvad end man har lyst til at kalde det). Vi har en NFA M = (Q, Σ, q 0, A, δ) og vil nu lave denne om til en FA M 1 = (Q 1, Σ, q 1, A 1, δ 1 ) hvor Q 1 bliver til Q 1 = 2 Q, da hver tilstand i FA en bliver en mængde af tilstande i NFA en. q 1 bliver til q 1 = {q 0 }. Accepttilstandende for FA en bliver til A 1 = {q Q 1 q A }, altså blot de q i vores nye Q hvor disse var accepttilstande i NFA en (hvilket vil sige at alle i en mængde bliver accept hvis en given q er en mængde af tilstande fra NFA en). Sidst men ikke mindst bliver transitionsfunktionen omdefineret til: δ 1 (q, a) = r q δ(r, a) Nu gælder det så at L(M 1 ) = L(M). Hele denne proces ses i eksemplet herunder: Som vi kan se bliver tilstandende i NFA en lavet om til mængder af tilstande i FA en, hvor 1 transitionerne fra q 0 bliver til mængden {3, 2}, som så bliver en accepttilstand fordi tilstand 2 var en accepttilstand i NFA en og accepttilstandende er defineret som: A 1 = {q Q 1 q A }. 28

29 Formel definition NB: Også kaldet delmængdeproduktion. Givet en NFA M definer en FA M 1 : M = (Q, Σ, q 0, A, δ) M 1 = (Q 1, Σ, q 1, A 1, δ 1 ) Q 1 = 2 Q q 1 = {q 0 } A 1 = {q Q 1 q A } δ 1 (q, a) = r q δ(r, a) Der gælder nu L(M 1 ) = L(M). Bevis. Definitionen af A 1 er sand da en streng accepteres hvis M fra q 0 ender op med en mængde tilstande hvor mindst en er et element i A. Det følger da fra nedenstående lemma at L(M) = L(M 1 ). En streng x accepteres af M 1 hvis δ 1 (q 1, x) A. Dette er sandt hvis og kun hvis δ (q 0 ), x) A 1. Fra definitionen af A 1 ser vi at dette er sand hvis og kun hvis δ (q 0, x) A. Altså accepteres x af M 1 hvis og kun hvis x accepteres af M. Lemma 2. x Σ : δ 1(q 1, x) = δ (q 0, x) Bevis. Ved induktion i strukturen af x. Basis: Hvis x = Λ, δ 1(q 1, x) = δ 1(q 1, Λ) = q 1 = {q 0 } = δ (q 0, Λ) = δ (q 0, x) Induktionsskridt: Vi antager at δ 1 (q 1, x) = δ (q 0, x) 29

30 δ1(q 1, xa) = δ 1 (δ1(q 1, x), a) = δ 1 (δ (q 0, x), a) = δ(r, a) r δ (q 0,x) = δ(δ (q 0, x), a) = δ (q 0, xa) NFA-Λ For nemt at kunne bruge Kleene 1 til at oversætte et regulært udtryk til en NFA, så har vi indført NFA-Λ, som er en særlig form for NFA der gør brug af den tomme streng til at få lidt mere generalitet. En Λ-transition i en automat læser ikke et tegn fra inputstrengen, det er blot en vej en automat kan vælge at benytte eller lade være. Eksempel på en NFA-Λ NFA-Λ en herunder gør det muligt for strengen 001 at blive godkendt: Formel definition M = (Q, Σ, q 0, A, δ) δ : Q (Σ {Λ}) 2 Q Lambda-lukningen af S, Λ(S) er den mindste mængde er opfylder flg. S Λ(S) q Λ(S) : δ(q, Λ) Λ(S) 30

31 Ud fra det defineres den udvidede transitionsfunktion: { Λ ({q}) hvis x = Λ δ (q, x) = ( ) Λ r δ (q,y) δ(r, a) hvis x = ya, hvor y Σ og a Σ Beskrivelsen af sproget L(M) er identisk med beskrivelsen hos NFA en. Oversættelse fra NFA-Λ til NFA: δ(q, Λ) =. Lambda-Lukningen Lambda-lukningen er intuitivt set blot: Hvor kan vi komme hen hvis vi følger streng y og tillader Λ undervejs, følger transition a og sidst følger eventuelle Λ-transitioner igen? Kleene 1 Kig i emne Λ-eliminering Eksempel OBS: Acceptstadier opnåelige vha Λ-transitioner skal fjernes og kilden skal gøres til accept (altså tilstanden Λ-transitionen kom fra). 31

32 Formel definition Givet en NFA-Λ M definer en NFA M 1 : M = (Q, Σ, q 0, A, δ) M 1 = (Q, Σ, q 0, A 1, δ 1 ) δ 1 (q, a) = δ (q, a) { A {q0 } hvis Λ({q A 1 = 0 } A A ellers ( ) Bemærk: δ (q, a) = Λ r=λ({q}) δ(r, a) Der gælder nu at L(M 1 ) = L(M). Bevis. Vi skal vise: x Σ : x L(M 1 ) x L(M) x = Λ: Brug definition af A 1 og Λ-lukning. x Λ: Lemma: x Σ, x Λ : δ (q 0, x) = δ 1(q 0, x) 5 Minimering af automater ( ) 5.1 Disposition 1. FA er 2. Eksempel på minimering af en FA 3. Skelnelighed 4. MyHill-Nerode/Partitionering 5.2 Noter Endelige automater Endelige automater (FA er) abstrakte maskiner designet til at teste hvorvidt en given streng er med i et sprog. 32

33 Eksempel En FA består af en endelig mængde tilstande Q og har så til format at løse membership beslutningsproblemer for regulære sprog. Et eksempel på en FA ses herunder, men alfabetet Σ = {0, 1}. Denne genkender strenge med ulige antal 1 ere: En FA er defineret som en 5-tuppel: M = (Q, Σ, q 0, A, δ), hvor Q er en endelig mængde af tilstande, Σ er et alfabet bestående af en endelig mængde symboler, q 0 er den initielle tilstand, A er et subset af Q (A Q) hvor disse tilstande er accepttilstande og δ er en transitionsfunktion på formen Q Σ Q. Sproget for en FA Sproget for en FA er et regulært sprog, da regulære sprog og FA er har samme udtrykskraft og en FA kan oversættes til et regulært udtryk (vha. Kleene s sætning del 2). Uden et sprog har en FA ingen funktion. Sproget for en FA er defineret som: L(M) = {x Σ δ (q 0, x) A} Altså indeholder sproget de strenge x for hvilket den udvidede transitionsfunktion fra initialtilstanden på strengen x går til en accepttilstand. Den udvidede transitionsfunktion For q Q og x Σ er δ : Q Σ Q defineret som { δ q hvis x = Λ (q, x) = δ(δ (q, y), a) hvis x = ya hvor y Σ og a Σ 33

34 5.2.2 Eksempel på minimering af en FA Ud fra MyHill-Nerode-sætningen kan vi udlede en algoritme der, givet en vilkårlig FA M = (Q, Σ, q 0, A, δ) finder en minimal FA M 1 hvor L(M) = L(M 1 ). Fremgansmåde Fjern uopnåelige tilstande Marker alle par af transitioner hvor en er en accepttilstand. Følg transitioner parvist Lav ny FA Som vi kan se bliver alle bortset fra 3, 4 markeret hvorved vi kan konkludere disse er i samme ækvivalensklasse og vi bør derfor fjerne den ene, hvilket vi har gjort i FA en ved siden af. 34

35 5.2.3 Skelnelighed Intuitivt set er der kun behov for at skelne mellem to strenge x og y såfremt de ender i forskellige tilstande. x og y er skelnelige mht. L hvis eller hvis L/x L/y, hvor z Σ : (xz L) (yz / L) (xz / L) (yz L). L/x = {z Σ xz L}, Uskelnelighedsrelationen I L er defineret som x I L y x og y er uskelnelige mht. L Ækvivalensrelation 35

36 Eksempel: Skelnelighed Hvis: L = {s {0, 1} s ender med 10} x = 00 y = 01 Så er x og y skelnelige mht. L, da z = 0 skelner x og y. Eksempel på at finde ækvivalensklasser Vi har et sprog L = {0, 1} {10}. Det er nu så nemt at se der skal skelnes imellem strenge der slutter med 00, strenge der slutter med 1 og strenge der slutter med 10. Derved har vi følgnede ækvivalensklasser: X : {Λ, 0} {0, 1} {00} Y : {0, 1} {1} Z : {0, 1} {10} Ækvivalensklasserne får tilmed en repræsentant som i ovenstående tilfælde er henholdsvis: [Λ], [1] og [10]. Dette leder så til en partitionering over alle strenge i alfabetet, således at en streng kun er i en specifik ækvivalensklasse: 36

37 Mindste antal tilstande Givet n skelnelige strenge mht. et sprog L, må en FA der accepterer L have mindst n tilstande. Denne sætning er vigtig ifht. udtrykskraften af regulære sprog: Der eksisterer ingen FA der kan acceptere et sprog, med hensyn til hvilket der eksisterer et uendeligt antal skelnelige strenge. Denne egenskab kan bruges til at vise at visse sprog ikke er regulære MyHill-Nerode MyHill-Nerode s første sætning siger: s Hvis I L har uendeligt mange ækvivalensklasser, så er L ikke regulært. MyHill-Nerode s anden sætning siger: Givet n skelnelige strenge mht. et sprog L, må en FA der accepterer L have mindst n tilstande. MyHill-Nerode sætningen kan bruges til at skabe minimale FA er. Den bygger på uskelnelighed ved først at finde ækvivalensklasserne i et givent regulært udtryk og derved skabe en partitionering af disse således: 37

38 Hver streng over alfabetet ligger så præcis 1 sted i denne partitionering. Vha. denne partitionering kan man så skabe en FA der er den minimale mulig, da dens tilstande består udelukkende af de ækvivalensklasser der eksisterer for sproget - hvilket er præcis hvad det minimale antal tilstande er: Givet n skelnelige strenge mht. et sprog L, må en FA der accepterer L have mindst n tilstande. Formel definition Eksempel på fremstilling af minimal FA Hvis vi antager ækvivalensklasserne for I L er: X = {x {0, 1} n 1 () i x er lige} Y = {x {0, 1} n 1 () i x er ulige} 38

39 og 111 L. Så har vi denne partitionering og minimal FA: 6 Begrænsninger af regulære sprog (5.3) 6.1 Disposition 1. Definer regulære sprog 2. Skelnelighed 3. MyHill-Nerode/Partitionering 4. Pumping lemma 6.2 Noter Definer regulære udtryk Regulære udtryk er en formalisme vi bruger til at beskrive de regulære sprog - således er de defineret. L( ) = L(Λ) = Λ L(a) = a, (a Σ) L(r 1 + r 2 ) = L(r 1 ) L(r 2 ) L(r 1 r 2 ) = L(r 1 )L(r 2 ) L(r ) = (L(r)) Et sprog S er derved kun regulært såfremt der eksisterer et regulært udtryk således at L(r) = S. 39

40 Operationer Man kan så udføre en række operationer med disse regulære sprog, heriblandt foreningsoperationer (også kaldet union): L 1 L 2 = {x Σ x L 1 x L 2 } Union forklaret: Giver et sprog der indeholder alle strenge som mindst et af sprogene indeholder. Eller konkateneringsoperationen som giver et sprog der indeholder alle strenge der består af et prefix af det ene sprog efterfulgt af en streng fra det andet sprog: L 1 L 2 = {xy Σ x L 1 y L 2 } Og så Kleenoperatoren der giver et sprog der indeholder alle strenge, der består af den tomme streng efterfulgt af et vilkårligt antal strenge: L = L i, L k = LL L, L 0 = {Λ} i=0 Præcedens: Kleene stjerne, Konkatenering, Forening Regulære udtryk er en mekanisme til at beskrive et sprog. Endelige automater tester hvorvidt en given streng er indeholdt i sproget Skelnelighed Intuitivt set er der kun behov for at skelne mellem to strenge x og y såfremt de ender i forskellige tilstande. x og y er skelnelige mht. L hvis eller hvis L/x L/y, hvor z Σ : (xz L) (yz / L) (xz / L) (yz L). L/x = {z Σ xz L}, Uskelnelighedsrelationen I L er defineret som x I L y x og y er uskelnelige mht. L 40

41 Ækvivalensrelation Eksempel: Skelnelighed Hvis: L = {s {0, 1} s ender med 10} x = 00 41

42 y = 01 Så er x og y skelnelige mht. L, da z = 0 skelner x og y. Eksempel på at finde ækvivalensklasser Vi har et sprog L = {0, 1} {10}. Det er nu så nemt at se der skal skelnes imellem strenge der slutter med 00, strenge der slutter med 1 og strenge der slutter med 10. Derved har vi følgnede ækvivalensklasser: X : {Λ, 0} {0, 1} {00} Y : {0, 1} {1} Z : {0, 1} {10} Ækvivalensklasserne får tilmed en repræsentant som i ovenstående tilfælde er henholdsvis: [Λ], [1] og [10]. Dette leder så til en partitionering over alle strenge i alfabetet, således at en streng kun er i en specifik ækvivalensklasse: Mindste antal tilstande Givet n skelnelige strenge mht. et sprog L, må en FA der accepterer L have mindst n tilstande. Denne sætning er vigtig ifht. udtrykskraften af regulære sprog: Der eksisterer ingen FA der kan acceptere et sprog, med hensyn til hvilket der eksisterer et uendeligt antal skelnelige strenge. Denne egenskab kan bruges til at vise at visse sprog ikke er regulære. 42

43 6.2.3 MyHill-Nerode MyHill-Nerode s første sætning siger: s Hvis I L har uendeligt mange ækvivalensklasser, så er L ikke regulært. MyHill-Nerode s anden sætning siger: Givet n skelnelige strenge mht. et sprog L, må en FA der accepterer L have mindst n tilstande. MyHill-Nerode sætningen kan bruges til at skabe minimale FA er. Den bygger på uskelnelighed ved først at finde ækvivalensklasserne i et givent regulært udtryk og derved skabe en partitionering af disse således: Hver streng over alfabetet ligger så præcis 1 sted i denne partitionering. Vha. denne partitionering kan man så skabe en FA der er den minimale mulig, da dens tilstande består udelukkende af de ækvivalensklasser der eksisterer for sproget - hvilket er præcis hvad det minimale antal tilstande er: Givet n skelnelige strenge mht. et sprog L, må en FA der accepterer L have mindst n tilstande. Formel definition 43

44 Eksempel på fremstilling af minimal FA Hvis vi antager ækvivalensklasserne for I L er: X = {x {0, 1} n 1 () i x er lige} Y = {x {0, 1} n 1 () i x er ulige} og 111 L. Så har vi denne partitionering og minimal FA: Pumping lemmaet for regulære sprog Hvis vi forestiller os vi har en FA M = (Q, Σ, q 0, A, δ), så har denne et sprog med en given mængde strenge. Hvis vi så forestiller os M har n tilstande, så for en streng x n hvor x L så vil der igennem genkendelsen af denne streng nød til at være en loop, altså en transition fra en given tilstand der placerer os i samme tilstand igen. Hvis vi ser på denne streng x som bestående af 3 delstrenge u, v og w, så kan situationen illustreres således: 44

45 Altså vil det sige, at en arbitrær streng x L vil, antaget den er tilstrækkelig lang, få en midt substring v pumped up og derved introducere adskillige nye elementer af L. Disse nye elementer skal så overholde en række bestemmelser efter denne pumping for at sproget virkelig er regulært. Dette bringer os så til definitionen: Pumping -lemmaet. Hvis L er et regulært sprog så gælder flg.: n > 0 : x L hvor x n : u, v, w Σ : x = uvw uv n v > 0 m 0 : uv m w L Det vil altså sige, at hvis vi skal modbevise at et givent sprog er regulært, så skal vi vise at det pågældende sprog ikke overholder de regler beskrevet i definitionen ovenfor. Dette gør vi ved at antage reglerne er overholdt og så finde frem til en modsigelse. Udtryksformen ovenfor lyder Der findes et n som for ethvert x L med x n..., så vi antager derfor vi har et sådant n, selvom vi ikke selv ved hvad det er, og vi prøver så at finde en streng x med x n sådan at udsagene om x i teoremet leder til en modsigelse. Derfor må vi sige at for ethvert n, kan vi finde et x L med x n sådan at udsagnene om x i teoremet leder til en modsigelse. Vi kan frit vælge x, så længe x n, men siden vi ikke ved hvad n er, så må valget af x involverer n. Når vi har valgt x kan vi ikke frit vælge u, v og w, som teoremet siger x bliver opdelt i. Vi ved blot at der er en eller anden måde at opdele x i 45

46 strengene u, v og w sådan at reglerne er sande. Siden vi skal bevise sproget IKKE er regulært, må vi vise at for ethvert valg af u, v og w der overholder reglerne, så kan vi finde en modsigelse. Skrevet fint og matematisk bliver dette: Pumping -lemmaet - Modbevis. Hvis n > 0 : Så er L IKKE regulært. x L hvor x n : u, v, w Σ : x = uvw uv n v > 0 m 0 : uv m w / L Eksempel Lad L = {0 i 1 i i 0}. Vi vil nu vha. pumping-lemmaet vise at L ikke er regulært. Vi vil benytte os af kvantor-spil tankegangen: Fjenden vælger et n > 0 Vi vælger x = 0 n 1 n som opfylder x L og som klart opfylder x n Fjenden vælger så u, v og w, så x = uvw hvor uv n og v > 0 Vi vælger herefter antal loops, altså m til 2 - m = 2. Da x = uvw = 0 n 1 n, hvor uv n og v > 0 så gælder der at v = 0 k for et k > 0. Da uv n ved vi at v kun kan bestå af 0 er, da vi allerede ved 0 n delen af x har længden n. Det vil altså sige at uv m w = uv 2 w = 0 n+k 1 n / L. Altså er L ikke regulært. 7 Kontekstfri grammatikker (6-8) 7.1 Disposition 1. CFG 46

47 2. Derivationer 3. Tvetydighed 4. Lukkethed 5. Pumping lemma 7.2 Noter Kontekstfrie grammatiker Ligesom et regulært udtryk beskriver et givent regulært sprog, så genererer en kontekstfri grammatik (CFG) et kontekstfrit sprog (CFL). En kontekstfri grammatik er derved en udtryksmekanisme ligesom FA er, RegExp er osv., men blot med lidt andre muligheder. Desuden skal det siges at alle regulære udtryk rent faktisk er indeholdt i de kontekstfrie sprog, sådan at ethvert regulært udtryk rent faktisk kan oversættes til et kontekstfrit sprog - men mere om det senere. En kontekstfri grammatik er defineret som en 4-tuple: G = {V, Σ, S, P } Hvor V er en endelig mængde af nonterminal-symboler, Σ er et alfabet af terminal-symboler (hvor V Σ = ), S V er et start-symbol og en del af nonterminalerne og sidst men ikke mindst P er en endelig mængde af produktioner på form A α hvor A V og α (V Σ). Kontekstfrie grammatikker bruges bl.a. til beskrivelse af syntaks for programmeringssprog og er en af hjørnestenene i compilers (specifikt til parsing af kode). 47

48 Derivationer En derivation er en erstatning af et nonterminal-symbol ifølge en given produktion P. Et derivationstrin skrives som og er en relation over mængden (V Σ). Hvis a 1, a 2 (V Σ) og (A γ) P, så gælder der: a 1 Aa 2 a 1 γa 2 Relationen defineres så som den refleksive transititve luking af, hvor α β hvis og kun hvis α β (altså at α går til β ved 0 eller flere derivationstrin). Hvorfor navnet kontekstfrit så? Fordi man kan substituere nonterminalen A for γ uafhængigt af konteksten. Eksempel: algebraiske udtryk algebraiske udtryk, således at: Vi har en CFG G = (V, Σ, S, P ) for V = {S} Σ = {+,,, /, (, ), x, y, z} P = S S + S S S S S S/S (S) x y z Vi vil nu vise at strengen x y + z er i L(G), hvilket vi gør ved at følge en sekvens af derivationer S... x y + z. Vi har 3 derivationer af strengen x y + z: 1) S S + S S S + S x S + S x y + S x y + z 2) S S + S S + z S S + z S y + z x y + z 3) S S S S S + S x S + S x y + S x y + z Vi har altså 3 måder at nå frem til strengen på. Når en given CFG har dette siges det at den er tvetydig: En CFG G er tvetydig hvis der eksisterer en streng x L(G) med mere end et derivationstræ. 48

49 Derivationstræer Et derivationstræ er blot en måde at strukturere forskellige derivationer på. Vores algebraiske udtryk har f.eks. derivationstræerne: En parser bruger netop disse typer derivationstræer når den læser en given streng. Sproget for en CFG Sproget for en CFG er et kontekstfrit sprog hvis og kun hvis der findes en CFG G hvor L(G) = L, hvor L Σ. L er således defineret som: L(G) = {x Σ S x} Altså hvis man igennem at bruge produktionerne i CFG en kan finde x, så er x i sproget. Eksempel på en CFG Vi har en CFG G = (V, Σ, S, P ) der beskriver sproget A = {a n b n n 0}. G har således: V = {S} Σ = {a, b} P = {S asb, S λ} OBS: P kan også skrives som P = {S asb λ} 49

50 CFG en for Palindromer Sproget pal = {x {0, 1} x = reverse(x)} kan beskrives af en CFG G = (V, Σ, S, P ) hvor: V = {S} Σ = {0, 1} P = {S λ, S 0, S 1, S 0S0, S 1S1} Så er pal kontekstfrit, men ikke regulært. OBS: Igen kan P i stedet skrives som P = {S λ 0 1 OS0 1S1}. Højrelineære CFG er En CFG siges at være højrelineær, hvis alle dens produktioner er på formen: A ab.. eller A λ Hvor A, B V og a Σ. Eksempler kunne være: S 0S 1A A 0A 1S λ At CFG en G gør den nemmere at arbejde med, da det betyder L(G) faktisk er regulært, hvorved det eksempelvis kan oversættes til en NFA-Λ vha. Kleene 1. Dette faktum betyder også, at ethvert regulært sprog L kan laves om til en højre-lineær grammatik G så L(G) = L. OBS: L(G) kan godt være regulært uden at CFG en er højre-lineær.. det er blot altid regulært hvis CFG en ER højre-lineær. Bevis. Strukturel induktion i r Basis: r = vlg V = {S}, P = r = λ vlg V = {S}, P = {S λ} r = a Σ vlg V = {S}, P = {S a} 50

51 Induktionsskridt: r = r 1 + r 2 : Vi har en induktionshypotese der giver os: G 1 = (V 1, Σ, S 1, P 1 ), L(G 1 ) = L(r 1 ) G 2 = (V 2, Σ, S 2, P 2 ), L(G 2 ) = L(r 2 ) Vi omdøber lige nonterminalsymbolerne således at V 1 V 2 =, hvorefter vi vælger: V = V 1 V 2 {S} S / V 1 V 2 P = P 1 P 2 {S S 1, S S 2 } r = r 1 r 2 : Som vi havde det ved r = r 1 + r 2, men: P = P 1 P 2 {S S 1 S 2 } r = r 1 : igen som ved r = r 1 + r 2, men: V = V 1 {S} P = P 1 {S S 1 S, S λ} Oversættelse fra RegExp til CFG Ethvert regulært udtryk r over et alfabet Σ kan oversættes til en CFG G = {V, Σ, S, P } hvor L(G) = L(r). Fremgansmåde: 1. Start med at Eksempel på oversættelse af RegExp til CFG Hvis vi har det regulære udtryk r = a + b, så oversættes det til en CFG således: 51

52 7.2.2 Lukkethedsegenskaber Regulære sprog har en række pæne egenskaber, heriblandt at de er lukkede under en mængde operationer såsom: forening, snit og differens (produktkonstruktionen) komplement: konkatenering og kleene L 1 = Σ, L 2 = R R = L 1 L 2 Eksempel: Vis produktkonstruktion og argumenter for sproget er korrekt. Kontraponering Lukkethedsegenskaber bruges bl.a. til at vise at et givent sprog ikke er regulært. Eksempelvis, så hvis vi antager vi allerede har bevist at S ikke er regulært, så hvis: S = P R og R er regulær, så kan P ikke være regulær. Homomorfi Homorforfi består i al sin enkelhed i at man tager alfabetet fra den ene og ændrer konsistent til den andens alfabet. F.eks. hvis man ville ændre Σ = [a z] til Σ = [A Z]. Regulære sprog er lukkede under homomorfi. g : Σ 1 Σ 2 { Λ hvis x = Λ h(x) = h(y)g(a) hvis x = ya, y Σ 1, a Σ 1 hvis L er regulært, er h(l) = {h(x) x L} det også. (eks. palindromer) Bevis. Strukturel induktion i regulære udtryk, erstat hver a Σ 1 i udtrykket med h(a). Omvendt: Bevis. Givet M definer M 1. M = (Q, Σ 2, q 0, A, δ) M 1 = (Q, Σ 1, q 0, A, δ 1 ), hvor δ 1 (q, a) = δ (q, h(a)) Påstand: L(M 1 ) = h 1 (L) (bevises ved induktion) 52

53 Lukkethed for CFG er Hvor regulære udtryk er lukket under stortset hvad som helst, så er CFG er knap så tilgivende. Lukket for forening, konkatenering og kleene, men ikke for snit (eks.) og komplement (modstrid: (L 1 L 2 ) = L 1 L 2 ). CFG er snit Hvordan ses det så CFG er ikke er lukket for snit? Hvis vi antager CFG er er lukket under snit, så gælder det blot om at finde et modstridende eksempel, så vi ser på følgende sprog L: L = {a i b j c k i < j i < k} L er ikke kontekstfrit! Hvis vi så kigger på sprogene: L 1 = {a i b j c k i < j} L 2 = {a i b j c k i < k} Så er disse faktisk kontekstfrie. Hvis vi så forsøger at lave snittet af disse, så viser det sig: L = L 1 L 2 Altså at snittet af L 1 og L 2 faktisk er lig L, som vi jo ved ikke er kontekstfri. Altså er klassen af kontekstfrie sprog ikke lukket under snit. 53

54 CFG er komplement At CFG er ikke er lukket under komplement ses nemt, da vi blot kan finde et eksempel som dette: (L 1 L 2) = L 1 L 2 Altså hvor komplementet af L 1 s komplement forenet med L 2 s komplement resulterer i snittet mellem L 1 og L 2. Og siden vi allerede har bevist CFG er ikke er lukket under snit, så er de logisk nok heller ikke lukket under komplement Pumping Lemma for CFL Pumping -lemmaet for CFG er. Hvis L er et kontekstfrit sprog så gælder flg.: n > 0 : u L hvor u n : v, w, x, y, z Σ : u = vwxyz wxy n wy > 0 m 0 : vw m xy m z L Bevis. Vælg n = 2 p+1, hvor p = V, udnyt egenskab... For at vise et givent sprog ikke er kontekstfrit skal vi i stedet finde for ethvert n > 0 et u L, hvor u n, hvor for alle valg af v, w, x, y, z Σ der eksisterer et m 0 for hvilket vw m xy m </ L. Pumping -lemmaet for CFG er - Modbevis. Hvis: n > 0 : u L hvor u n : v, w, x, y, z Σ : u = vwxyz wxy n wy > 0 m 0 : vw m xy m z / L Så er L ikke et kontekstfrit sprog. 54

Regularitet og Automater. Tobias Brixen Q4-2012

Regularitet og Automater. Tobias Brixen Q4-2012 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.................................

Læs mere

Ja! det beviste vi uge 16+17

Ja! det beviste vi uge 16+17 Ugens emner Lukketheds- og afgørlighedsegenskaber [5.3-5.5] lukkethed under,,,, * lukkethed under homomorfi og invers homomorfi pumping -lemmaet beslutningsproblemer: membership, emptiness, finiteness

Læs mere

Regulære udtryk og endelige automater. Ugens emner

Regulære udtryk og endelige automater. Ugens emner Ugens emner Endelige automater [Martin, kap. 3.2-3.5] endelige automater og deres sprog skelnelighed produktkonstruktionen Java: dregaut.fa klassen automater til modellering og verifikation Regulære udtryk

Læs mere

Noter til DM517 Beregnelighed

Noter til DM517 Beregnelighed Noter til DM517 Beregnelighed Jonas Nyrup 23. oktober 2011 Indhold 1 Et par noter 2 2 Regulære sprog 2 2.1 DFA................................. 2 2.1.1 Eksempler.......................... 3 2.2 NFA.................................

Læs mere

Regulære udtryk og endelige automater

Regulære udtryk og endelige automater Regulære udtryk og endelige automater Regulære udtryk: deklarative dvs. ofte velegnede til at specificere regulære sprog Endelige automater: operationelle dvs. bedre egnet til at afgøre om en given streng

Læs mere

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

En karakteristik af de regulære sprog. Ugens emner. FA minimering [5.1-5.2] MyHill-Nerode-sætningen en algoritme til minimering af FA er Ugens emner FA minimering [.-.] MyHill-Nerode-sætningen en algoritme til minimering af FA er En karakteristik af de regulære sprog Et sprog L er regulært hvis og kun hvis L beskrives af et regulært udtryk

Læs mere

1. Seminar EVU RegAut

1. Seminar EVU RegAut 1. Seminar EVU RegAut Sigurd Meldgaard Datalogisk Institut Århus Universitet stm@cs.au.dk 27/08 2010 S. Meldgaard (AU) 1. Seminar EVU RegAut 27/08 2010 1 / 105 Plan Introduktion Hvad er Regularitet og

Læs mere

Regularitet og Automater

Regularitet og Automater Plan dregaut 2007 Regularitet og Automater Hvad er Regularitet og Automater? Praktiske oplysninger om kurset Ugens emner Introduktion til ugens opgaver 2 Regularitet og Automater Formål med kurset: at

Læs mere

Skriftlig Eksamen Beregnelighed (DM517)

Skriftlig Eksamen Beregnelighed (DM517) Skriftlig Eksamen Beregnelighed (DM517) Institut for Matematik & Datalogi Syddansk Universitet Torsdag den 1 November 212, kl. 1 14 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug af computer

Læs mere

Seminar 1 Regularitet og Automater 28/1-2012

Seminar 1 Regularitet og Automater 28/1-2012 Seminar 1 Regularitet og Automater 28/1-2012 Jesper Gulmann Henriksen jgh@wincubate.net Agenda Introduktion Hvad er Regularitet og Automater? Praktiske Oplysninger om Kurset Regulære Udtryk + Øvelser Induktion

Læs mere

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!

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! 1 Beregnelighed 1.1 Disposition Def. TM Def. RE/R Def. 5 egenskaber for RE/R Def. NSA Bevis. NSA!RE Def. SA Bevis. SA!R Bevis. SA RE Def. Beslutningsproblem Arg. Self-Accepting er uløselig 1.2 Præsentation

Læs mere

1. Seminar EVU RegAut

1. Seminar EVU RegAut 1. Seminar EVU RegAut Sigurd Meldgaard Datalogisk Institut Århus Universitet stm@cs.au.dk 27/08 2010 S. Meldgaard (AU) 1. Seminar EVU RegAut 27/08 2010 1 / 105 Plan Introduktion Hvad er Regularitet og

Læs mere

Ugens emner. Regulære sprog og digitale billeder. Adressering af områder. Et alfabet. Dette billede: kan repræsenteres af en FA med 832 tilstande

Ugens emner. Regulære sprog og digitale billeder. Adressering af områder. Et alfabet. Dette billede: kan repræsenteres af en FA med 832 tilstande Ugens emner Regulære sprog og digitale billeder Digitale billeder og regulære sprog Regulære udtryk i Java og Unix Dette billede: Turing-maskiner [uddrag af Martin kap. 9-0] Church-Turing tesen, beregnelighed

Læs mere

Eksamensopgaver i DM17, Januar 2003

Eksamensopgaver i DM17, Januar 2003 Eksamensopgaver i DM17, Januar 2003 Skriftlig Eksamen Automatteori og Beregnelighed (DM17) Institut for Matematik & Datalogi Syddansk Universitet Odense Universitet Lørdag, den 18. Januar 2003 Alle sædvanlige

Læs mere

DM517:Supplerende noter om uafgørlighedsbeviser:

DM517:Supplerende noter om uafgørlighedsbeviser: DM517:Supplerende noter om uafgørlighedsbeviser: Jørgen Bang-Jensen October 9, 2013 Abstract Formålet med denne note er at give en form for kogebogsopskrift på, hvorledes man bygger et uafgørlighedsbevis

Læs mere

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

Bevisteknikker. Bevisteknikker (relevant både ved design og verifikation) Matematisk induktion. Matematisk induktion uformel beskrivelse Bevisteknikker Bevisteknikker (relevant både ved design og verifikation) Bevisførelse ved modstrid (indirekte bevis) Antag, at det givne teorem er falsk Konkluder, at dette vil føre til en modstrid Teorem:

Læs mere

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 24. januar 2007 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

It og informationssøgning Forelæsning november 2006 Nils Andersen. Regulære udtryk og formelle sprog

It og informationssøgning Forelæsning november 2006 Nils Andersen. Regulære udtryk og formelle sprog It og informationssøgning Forelæsning 11 22. november 2006 Nils Andersen Regulære udtryk og formelle sprog Regulært udtryk Forening, sammenstilling og Kleene-gentagelse Andre notationer og operatorer Modulet

Læs mere

Bevisteknikker (relevant både ved design og verifikation)

Bevisteknikker (relevant både ved design og verifikation) Bevisteknikker 1 Bevisteknikker (relevant både ved design og verifikation) Bevisførelse ved modstrid (indirekte bevis) Antag, at det givne teorem er falsk Konkluder, at dette vil føre til en modstrid Teorem:

Læs mere

Matematisk induktion

Matematisk induktion Induktionsbeviser MT01.0.07 1 1 Induktionsbeviser Matematisk induktion Sætninger der udtaler sig om hvad der gælder for alle naturlige tal n N, kan undertiden bevises ved matematisk induktion. Idéen bag

Læs mere

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

GEOMETRI-TØ, UGE 8. X = U xi = {x i } = {x 1,..., x n }, U α, U α = α. (X \ U α ) GEOMETRI-TØ, UGE 8 Hvis I falder over tryk- eller regne-fejl i nedenstående, må I meget gerne sende rettelser til fuglede@imf.au.dk. Opvarmningsopgave 1. Lad X være en mængde og T familien af alle delmængder

Læs mere

Oversættere, ugeopgave 3

Oversættere, ugeopgave 3 Oversættere, ugeopgave 3 Anders jerg Pedersen (andersbp@me.com) 29. november 2009 Opgave 1 Vi konsrer først NFA er for grammatikken fra opgave 3.22 med produktionen tilføjet: Produktion NFA 0 A 1 C D 2

Læs mere

01017 Diskret Matematik E12 Alle bokse fra logikdelens slides

01017 Diskret Matematik E12 Alle bokse fra logikdelens slides 01017 Diskret Matematik E12 Alle bokse fra logikdelens slides Thomas Bolander 1 Udsagnslogik 1.1 Formler og sandhedstildelinger symbol står for ikke eller og ( A And) hvis... så... hvis og kun hvis...

Læs mere

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

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved

Læs mere

Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 24. januar 2007

Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 24. januar 2007 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 24. januar 2007 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen fredag den 7. juni 2002 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse bedømmes som en helhed.

Læs mere

Nogle grundlæggende begreber

Nogle grundlæggende begreber BE2-kursus 2010 Jørgen Larsen 5. februar 2010 Nogle grundlæggende begreber Lidt simpel mængdelære Mængder består af elementer; mængden bestående af ingen elementer er, den tomme mængde. At x er element

Læs mere

Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik

Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik Datalogi C, RUC Forelæsning 22. november 2004 Henning Christiansen Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik Dagens program Hvad

Læs mere

1 Opsumering fra tidligere. 2 Dagsorden 3 BIMS. 4 Programtilstande. Statements/kommandoer (Stm) i bims. 3.1 Abstrakt syntaks for bims

1 Opsumering fra tidligere. 2 Dagsorden 3 BIMS. 4 Programtilstande. Statements/kommandoer (Stm) i bims. 3.1 Abstrakt syntaks for bims 1 Opsumering fra tidligere Hvis A er kontekstfrit, S er der et p > 0 s Alle s A hvor s p kan splittes op som s = uvxyz så argument 1-3 holder A er ikke kontekstfrit, hvis for ethvert bud på p kan findes

Læs mere

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

Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet Hans Hüttel 27. oktober 2004 Mathematics, you see, is not a spectator sport. To understand mathematics means to be able to do mathematics.

Læs mere

Skriftlig Eksamen Automatteori og Beregnelighed (DM17)

Skriftlig Eksamen Automatteori og Beregnelighed (DM17) Skriftlig Eksamen Automatteori og Beregnelighed (DM17) Institut for Matematik & Datalogi Syddansk Universitet Odense Campus Lørdag, den 15. Januar 2005 Alle sædvanlige hjælpemidler (lærebøger, notater

Læs mere

Dat 2/F6S: Syntaks og semantik 2005 Centrale emner og eksamenspensum

Dat 2/F6S: Syntaks og semantik 2005 Centrale emner og eksamenspensum Dat 2/F6S: Syntaks og semantik 2005 Centrale emner og eksamenspensum Hans Hüttel 14. juni 2005 Indhold 1 Centrale emner 1 2 Fuldt pensum 2 3 Reduceret pensum 3 3.1 Hvad er fjernet her?........................

Læs mere

Matematiske metoder - Opgavesæt

Matematiske metoder - Opgavesæt Matematiske metoder - Opgavesæt Anders Friis, Anne Ryelund, Mads Friis, Signe Baggesen 24. maj 208 Beskrivelse af opgavesættet I dette opgavesæt vil du støde på opgaver, der er markeret med enten 0, eller

Læs mere

83 - Karakterisation af intervaller

83 - Karakterisation af intervaller 83 - Karakterisation af intervaller I denne opgave skal du bevise, at hvis A er en delmængde af R med følgende egenskab: x, y, z R : x, y A og x < z < y z A (1) så er A enten et interval eller en mængde

Læs mere

Oversættere Skriftlig eksamen onsdag d. 20. april 2005

Oversættere Skriftlig eksamen onsdag d. 20. april 2005 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 20. april 2005 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

Introduktion til prædikatlogik

Introduktion til prædikatlogik Introduktion til prædikatlogik Torben Braüner Datalogisk Afdeling Roskilde Universitetscenter 1 Plan Symbolisering af sætninger Syntaks Semantik 2 Udsagnslogik Sætningen er den mindste syntaktiske enhed

Læs mere

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2 Affine rum I denne note behandles kun rum over R. Alt kan imidlertid gennemføres på samme måde over C eller ethvert andet legeme. Et underrum U R n er karakteriseret ved at det er en delmængde som er lukket

Læs mere

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

= λ([ x, y)) + λ((y, x]) = ( y ( x)) + (x y) = 2(x y). Analyse 2 Øvelser Rasmus Sylvester Bryder 17. og 20. september 2013 Supplerende opgave 1 Lad λ være Lebesgue-målet på R og lad A B(R). Definér en funktion f : [0, ) R ved f(x) = λ(a [ x, x]). Vis, at f(x)

Læs mere

Primtal - hvor mange, hvordan og hvorfor?

Primtal - hvor mange, hvordan og hvorfor? Johan P. Hansen 1 1 Institut for Matematiske Fag, Aarhus Universitet Gult foredrag, EULERs Venner, oktober 2009 Disposition 1 EUKLIDs sætning. Der er uendelig mange primtal! EUKLIDs bevis Bevis baseret

Læs mere

Archimedes Princip. Frank Nasser. 12. april 2011

Archimedes Princip. Frank Nasser. 12. april 2011 Archimedes Princip Frank Nasser 12. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette er

Læs mere

K 7 - og K 4,4 -minors i grafer

K 7 - og K 4,4 -minors i grafer Aalborg Universitet Det Teknisk-Naturvidenskabelige Fakultet Institut for Matematiske Fag K 7 - og K 4,4 -minors i grafer Aalborg Universitet Det Teknisk-Naturvidenskabelige Fakultet Institut for Matematiske

Læs mere

Noter til Perspektiver i Matematikken

Noter til Perspektiver i Matematikken Noter til Perspektiver i Matematikken Henrik Stetkær 25. august 2003 1 Indledning I dette kursus (Perspektiver i Matematikken) skal vi studere de hele tal og deres egenskaber. Vi lader Z betegne mængden

Læs mere

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

Kalkulus 2 - Grænseovergange, Kontinuitet og Følger Kalkulus - Grænseovergange, Kontinuitet og Følger Mads Friis 8. januar 05 Indhold Grundlæggende uligheder Grænseovergange 3 3 Kontinuitet 9 4 Følger 0 5 Perspektivering 4 Grundlæggende uligheder Sætning

Læs mere

Skriftlig Eksamen Beregnelighed (DM517)

Skriftlig Eksamen Beregnelighed (DM517) Skriftlig Eksamen Beregnelighed (DM517) Institut for Matematik & Datalogi Syddansk Universitet Mandag den 31 Oktober 2011, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug af lommeregner

Læs mere

6.1 Reelle Indre Produkter

6.1 Reelle Indre Produkter SEKTION 6.1 REELLE INDRE PRODUKTER 6.1 Reelle Indre Produkter Definition 6.1.1 Et indre produkt på et reelt vektorrum V er en funktion, : V V R således at, for alle x, y V, I x, x 0 med lighed x = 0, II

Læs mere

Oversættere Skriftlig eksamen onsdag d. 19. april 2006

Oversættere Skriftlig eksamen onsdag d. 19. april 2006 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 19. april 2006 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

Implikationer og Negationer

Implikationer og Negationer Implikationer og Negationer Frank Villa 5. april 2014 Dette dokument er en del af MatBog.dk 2008-2012. IT Teaching Tools. ISBN-13: 978-87-92775-00-9. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Chomsky hierarkiet af sprogklasser

Chomsky hierarkiet af sprogklasser Chomsky hierarkiet af sprogklasser Torben Mogensen Juli 2001 I oversætterbogen [Mog01] beskrives to klasser af sprog: De regulære sprog, beskrevet med regulære udtryk og endelige automater samt de kontekstfri

Læs mere

Gult Foredrag Om Net

Gult Foredrag Om Net Gult Foredrag Om Net University of Aarhus Århus 8 th March, 2010 Introduktion I: Fra Metriske til Topologiske Rum Et metrisk rum er en mængde udstyret med en afstandsfunktion. Afstandsfunktionen bruges

Læs mere

Vinkelrette linjer. Frank Villa. 4. november 2014

Vinkelrette linjer. Frank Villa. 4. november 2014 Vinkelrette linjer Frank Villa 4. november 2014 Dette dokument er en del af MatBog.dk 2008-2012. IT Teaching Tools. ISBN-13: 978-87-92775-00-9. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Elementær Matematik. Mængder og udsagn

Elementær Matematik. Mængder og udsagn Elementær Matematik Mængder og udsagn Ole Witt-Hansen 2011 Indhold 1. Mængder...1 1.1 Intervaller...4 2. Matematisk Logik. Udsagnslogik...5 3. Åbne udsagn...9 Mængder og Udsagn 1 1. Mængder En mængde er

Læs mere

GEOMETRI-TØ, UGE 6. . x 1 x 1. = x 1 x 2. x 2. k f

GEOMETRI-TØ, UGE 6. . x 1 x 1. = x 1 x 2. x 2. k f GEOMETRI-TØ, UGE 6 Hvis I falder over tryk- eller regne-fejl i nedenstående, må I meget gerne sende rettelser til fuglede@imfaudk Opvarmningsopgave 1 Lad f : R 2 R være tre gange kontinuert differentierbar

Læs mere

Polynomiumsbrøker og asymptoter

Polynomiumsbrøker og asymptoter Polynomiumsbrøker og asymptoter Frank Villa 9. marts 2012 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold

Læs mere

Sammenhængskomponenter i grafer

Sammenhængskomponenter i grafer Sammenhængskomponenter i grafer Ækvivalensrelationer Repetition: En relation R på en mængde S er en delmængde af S S. Når (x, y) R siges x at stå i relation til y. Ofte skrives x y, og relationen selv

Læs mere

Banach-Tarski Paradokset

Banach-Tarski Paradokset 32 Artikeltype Banach-Tarski Paradokset Uden appelsiner Andreas Hallbäck Langt de fleste af os har nok hørt om Banach og Tarskis såkaldte paradoks fra 1924. Vi har hørt diverse poppede formuleringer af

Læs mere

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

GEOMETRI-TØ, UGE 12. A σ (R) = A f σ (f(r)) GEOMETRI-TØ, UGE 12 Hvis I falder over tryk- eller regne-fejl i nedenstående, må I meget gerne sende rettelser til fuglede@imfaudk Opvarmningsopgave 1, [P] 632 Vis at Ennepers flade σ(u, v) = ( u u 3 /3

Læs mere

8 Regulære flader i R 3

8 Regulære flader i R 3 8 Regulære flader i R 3 Vi skal betragte særligt pæne delmængder S R 3 kaldet flader. I det følgende opfattes S som et topologisk rum i sportopologien, se Definition 5.9. En åben omegn U af p S er således

Læs mere

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

Vi indleder med at minde om at ( a) = a gælder i enhver gruppe. 0.1: Ringe 1. Definition: Ring En algebraisk struktur (R, +,, 0,, 1) kaldes en ring hvis (R, +,, 0) er en kommutativ gruppe og (R,, 1) er en monoide og hvis er såvel venstre som højredistributiv mht +.

Læs mere

Eksempel på den aksiomatisk deduktive metode

Eksempel på den aksiomatisk deduktive metode Eksempel på den aksiomatisk deduktive metode Et rigtig godt eksempel på et aksiomatisk deduktivt system er Euklids Elementer. Euklid var græker og skrev Elemeterne omkring 300 f.kr. Værket består af 13

Læs mere

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Opbyg løsningen skridt for skridt ved hele tiden af vælge lige

Læs mere

Baggrundsnote om logiske operatorer

Baggrundsnote om logiske operatorer Baggrundsnote om logiske operatorer Man kan regne på udsagn ligesom man kan regne på tal. Regneoperationerne kaldes da logiske operatorer. De tre vigtigste logiske operatorer er NOT, AND og. Den første

Læs mere

Fejlkorligerende køder Fejlkorrigerende koder

Fejlkorligerende køder Fejlkorrigerende koder Fejlkorligerende køder Fejlkorrigerende koder Olav Geil Skal man sende en fødselsdagsgave til fætter Børge, så pakker man den godt ind i håb om, at kun indpakningen er beskadiget ved modtagelsen. Noget

Læs mere

Taylors formel. Kapitel Klassiske sætninger i en dimension

Taylors formel. Kapitel Klassiske sætninger i en dimension Kapitel 3 Taylors formel 3.1 Klassiske sætninger i en dimension Sætning 3.1 (Rolles sætning) Lad f : [a, b] R være kontinuert, og antag at f er differentiabel i det åbne interval (a, b). Hvis f (a) = f

Læs mere

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk Philip Bille Orienteret graf (directed graph). Mængde af knuder forbundet parvis med orienterede kanter. Vejnetværk Knude = vejkryds, kant = ensrettet vej. deg + (6) =, deg - (6) = sti fra til 6 8 7 9

Læs mere

Ordbog over Symboler

Ordbog over Symboler Ordbog over Symboler Frank Nasser 20. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette

Læs mere

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer Philip Bille Orienteret graf. Mængde af knuder forbundet parvis med orienterede kanter. deg + (7) =, deg - (7) = Lemma. v V deg - (v) = v V deg + (v) = m. Bevis. Hver kant har netop en startknude og slutknude.

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer (af samme type). 2. Løs delproblemerne ved rekursion (dvs. kald algoritmen

Læs mere

1 Sætninger om hovedidealområder (PID) og faktorielle

1 Sætninger om hovedidealområder (PID) og faktorielle 1 Sætninger om hovedidealområder (PID) og faktorielle ringe (UFD) 1. Introducér ideal, hovedideal 2. I kommutativt integritetsområde R introduceres primelement, irreducibelt element, association 3. Begrebet

Læs mere

De rigtige reelle tal

De rigtige reelle tal De rigtige reelle tal Frank Villa 17. januar 2014 Dette dokument er en del af MatBog.dk 2008-2012. IT Teaching Tools. ISBN-13: 978-87-92775-00-9. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere

Henrik Bulskov Styltsvig

Henrik Bulskov Styltsvig Matematisk logik Henrik Bulskov Styltsvig Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk Disposition

Læs mere

3 Algebraisk Specifikation af Abstrakte Datatyper.

3 Algebraisk Specifikation af Abstrakte Datatyper. 3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.

Læs mere

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

Analyse 2. Gennemgå bevis for Sætning Supplerende opgave 1. Øvelser. Sætning 1. For alle mængder X gælder #X < #P(X). Analyse 2 Øvelser Rasmus Sylvester Bryder 3. og 6. september 2013 Gennemgå bevis for Sætning 2.10 Sætning 1. For alle mængder X gælder #X < #P(X). Bevis. Der findes en injektion X P(X), fx givet ved x

Læs mere

Omskrivningsregler. Frank Nasser. 10. december 2011

Omskrivningsregler. Frank Nasser. 10. december 2011 Omskrivningsregler Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Algebra - Teori og problemløsning

Algebra - Teori og problemløsning Algebra - Teori og problemløsning, januar 05, Kirsten Rosenkilde. Algebra - Teori og problemløsning Kapitel -3 giver en grundlæggende introduktion til at omskrive udtryk, faktorisere og løse ligningssystemer.

Læs mere

Grundlæggende Matematik

Grundlæggende Matematik Grundlæggende Matematik Hayati Balo, AAMS August 2012 1. Matematiske symboler For at udtrykke de verbale udsagn matematisk korrekt, så det bliver lettere og hurtigere at skrive, indføres en række matematiske

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer. Orienterede grafer Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer Philip Bille Orienterede grafer Introduktion Repræsentation Søgning Topologisk

Læs mere

t a l e n t c a m p d k Talteori Anne Ryelund Anders Friis 16. juli 2014 Slide 1/36

t a l e n t c a m p d k Talteori Anne Ryelund Anders Friis 16. juli 2014 Slide 1/36 Slide 1/36 sfaktorisering Indhold 1 2 sfaktorisering 3 4 5 Slide 2/36 sfaktorisering Indhold 1 2 sfaktorisering 3 4 5 Slide 3/36 1) Hvad er Taleteori? sfaktorisering Slide 4/36 sfaktorisering 1) Hvad er

Læs mere

16. december. Resume sidste gang

16. december. Resume sidste gang 16. december Resume sidste gang Abstrakt problem, konkret instans, afgørlighedsproblem Effektiv kodning (pol. relateret til binær kodning) Sprog L : mængden af instanser for et afgørlighedsproblem hvor

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning) Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning) Datalogisk Institut Aarhus Universitet Fredag den 28. maj 2004, kl. 9.00 13.00 Opgave 1 (20%) En (r, k) kryds-graf er en orienteret graf

Læs mere

Polynomier. Indhold. Georg Mohr-Konkurrencen. 1 Polynomier 2. 2 Polynomiumsdivision 4. 3 Algebraens fundamentalsætning og rødder 6

Polynomier. Indhold. Georg Mohr-Konkurrencen. 1 Polynomier 2. 2 Polynomiumsdivision 4. 3 Algebraens fundamentalsætning og rødder 6 Indhold 1 Polynomier 2 Polynomier 2 Polynomiumsdivision 4 3 Algebraens fundamentalsætning og rødder 6 4 Koefficienter 8 5 Polynomier med heltallige koefficienter 9 6 Mere om polynomier med heltallige koefficienter

Læs mere

DM13-1. Obligatorisk opgave E.05. Jacob Aae Mikkelsen

DM13-1. Obligatorisk opgave E.05. Jacob Aae Mikkelsen DM13-1. Obligatorisk opgave E.05 Jacob Aae Mikkelsen - 191076 26. september 2005 Indhold Analyse af problemstillingen........................ 2 Spørgsmål 1................................. 3 Spørgsmål

Læs mere

Normale tal. Outline. Hvad er tilfældighed? Uafhængighed. Matematiklærerdag Simon Kristensen. Aarhus Universitet, 24/03/2017

Normale tal. Outline. Hvad er tilfældighed? Uafhængighed. Matematiklærerdag Simon Kristensen. Aarhus Universitet, 24/03/2017 Matematiklærerdag 2017 Institut for Matematik Aarhus Universitet Aarhus Universitet, 24/03/2017 Outline 1 2 3 Hvad er tilfældighed? I statistik, sandsynlighedsteori og ikke mindst i programmering er det

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

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

Momenter som deskriptive størrelser. Hvad vi mangler fra onsdag. Momenter for sandsynlighedsmål Hvad vi mangler fra onsdag Momenter som deskriptive størrelser Sandsynlighedsmål er komplicerede objekter de tildeler numeriske værdier til alle hændelser i en σ-algebra. Vi har behov for simplere, deskriptive

Læs mere

Hvad vi mangler fra onsdag. Vi starter med at gennemgå slides fra onsdag.

Hvad vi mangler fra onsdag. Vi starter med at gennemgå slides fra onsdag. Hvad vi mangler fra onsdag Vi starter med at gennemgå slides 34-38 fra onsdag. Slide 1/17 Niels Richard Hansen MI forelæsninger 6. December, 2013 Momenter som deskriptive størrelser Sandsynlighedsmål er

Læs mere

Skriftlig eksamen, Programmer som Data Onsdag 6. januar Spørgsmål 1 (20 %): Regulære udtryk og automater

Skriftlig eksamen, Programmer som Data Onsdag 6. januar Spørgsmål 1 (20 %): Regulære udtryk og automater Skriftlig eksamen, Programmer som Data Onsdag 6. januar 2010 Dette eksamenssæt har 5 sider. Tjek med det samme at du har alle siderne. Eksamens varighed er 4 timer. Der er fire spørgmål. For at få fuldt

Læs mere

Spilstrategier. 1 Vindermængde og tabermængde

Spilstrategier. 1 Vindermængde og tabermængde Spilstrategier De spiltyper vi skal se på her, er primært spil af følgende type: Spil der spilles af to spillere A og B som skiftes til at trække, A starter, og hvis man ikke kan trække har man tabt. Der

Læs mere

t a l e n t c a m p d k Matematiske Metoder Anders Friis Anne Ryelund 25. oktober 2014 Slide 1/42

t a l e n t c a m p d k Matematiske Metoder Anders Friis Anne Ryelund 25. oktober 2014 Slide 1/42 Slide 1/42 Hvad er matematik? 1) Den matematiske metode 2) Hvad vil det sige at bevise noget? 3) Hvor begynder det hele? 4) Hvordan vælger man et sæt aksiomer? Slide 2/42 Indhold 1 2 3 4 Slide 3/42 Mængder

Læs mere

Udvalgsaksiomet. Onsdag den 18. november 2009

Udvalgsaksiomet. Onsdag den 18. november 2009 Udvalgsaksiomet Onsdag den 18. november 2009 Eksempler Fourier udvikling af f(x)=x 4 3 5 10 2 1 1 2 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 1 2 3 4

Læs mere

Jeg foretager her en kort indføring af polynomier over såvel de reelle som

Jeg foretager her en kort indføring af polynomier over såvel de reelle som Polynomier, rødder og division Sebastian Ørsted 20. november 2016 Jeg foretager her en kort indføring af polynomier over såvel de reelle som de komplekse tal, hvor fokus er på at opbygge værktøjer til

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere

13.1 Matrixpotenser og den spektrale radius

13.1 Matrixpotenser og den spektrale radius SEKTION 3 MATRIXPOTENSER OG DEN SPEKTRALE RADIUS 3 Matrixpotenser og den spektrale radius Cayley-Hamilton-sætningen kan anvendes til at beregne matrixpotenser: Proposition 3 (Lasalles algoritme) Lad A

Læs mere

Tal. Vi mener, vi kender og kan bruge følgende talmængder: N : de positive hele tal, Z : de hele tal, Q: de rationale tal.

Tal. Vi mener, vi kender og kan bruge følgende talmængder: N : de positive hele tal, Z : de hele tal, Q: de rationale tal. 1 Tal Tal kan forekomme os nærmest at være selvfølgelige, umiddelbare og naturgivne. Men det er kun, fordi vi har vænnet os til dem. Som det vil fremgå af vores timer, har de mange overraskende egenskaber

Læs mere

Oversættere Skriftlig eksamen onsdag d. 25. januar 2006

Oversættere Skriftlig eksamen onsdag d. 25. januar 2006 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 25. januar 2006 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

Hjerner i et kar - Hilary Putnam. noter af Mogens Lilleør, 1996

Hjerner i et kar - Hilary Putnam. noter af Mogens Lilleør, 1996 Hjerner i et kar - Hilary Putnam noter af Mogens Lilleør, 1996 Historien om 'hjerner i et kar' tjener til: 1) at rejse det klassiske, skepticistiske problem om den ydre verden og 2) at diskutere forholdet

Læs mere