Regularitet & Automater Eksamensnotater
|
|
- Finn Jørgensen
- 7 år siden
- Visninger:
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 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 mereJa! 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 mereRegulæ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 mereNoter 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 mereRegulæ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 mereEn 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 mere1. 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 mereRegularitet 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 mereSkriftlig 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 mereSeminar 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 mere1 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 mere1. 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 mereUgens 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 mereEksamensopgaver 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 mereDM517: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 mereBevisteknikker. 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 mereOversæ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 mereIt 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 mereBevisteknikker (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 mereMatematisk 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 mereGEOMETRI-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 mereOversæ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 mere01017 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 mereOversæ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 mereOversæ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 mereGrå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 mereDATALOGI 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 mereNogle 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 mereSyntaks 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 mere1 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 mereOm 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 mereSkriftlig 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 mereDat 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 mereMatematiske 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 mere83 - 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 mereOversæ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 mereIntroduktion 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 mereAffine 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).
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 merePrimtal - 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 mereArchimedes 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 mereK 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 mereNoter 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 mereKalkulus 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 mereSkriftlig 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 mere6.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 mereOversæ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 mereImplikationer 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 mereChomsky 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 mereGult 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 mereVinkelrette 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 mereElementæ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 mereGEOMETRI-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 merePolynomiumsbrø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 mereSammenhæ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 mereBanach-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 mereGEOMETRI-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 mere8 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 mereVi 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 mereEksempel 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 mereEt 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 mereBaggrundsnote 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 mereFejlkorligerende 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 mereTaylors 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 mereOrienterede 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 mereOrdbog 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 mereOrienterede 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 mereDivide-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 mere1 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 mereDe 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 mereDivide-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 mereHenrik 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 mere3 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 mereAnalyse 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 mereOmskrivningsregler. 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 mereAlgebra - 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 mereGrundlæ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 mereGrafer 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 mereOrienterede 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 meret 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 mere16. 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 mereSkriftlig 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 merePolynomier. 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 mereDM13-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 mereNormale 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 mereGrafer 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 mereGrafer 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 mereMomenter 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 mereHvad 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 mereSkriftlig 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 mereSpilstrategier. 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 meret 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 mereUdvalgsaksiomet. 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 mereJeg 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 mereDivide-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 mere13.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 mereTal. 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 mereOversæ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 mereHjerner 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