1. Seminar EVU RegAut
|
|
- Thomas Østergaard
- 7 år siden
- Visninger:
Transkript
1 1. Seminar EVU RegAut Sigurd Meldgaard Datalogisk Institut Århus Universitet 27/ S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
2 Plan Introduktion Hvad er Regularitet og Automater Praktiske oplysninger om kurset Regulære udtryk Induktionsbevis Frokost Endelige automater Skelnelighed, Produktkonstruktion Præsentation af Java projekt Eksempel: Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
3 Plan Introduktion Hvad er Regularitet og Automater Praktiske oplysninger om kurset Regulære udtryk Induktionsbevis Frokost Endelige automater Skelnelighed, Produktkonstruktion Præsentation af Java projekt Eksempel: Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
4 Plan Introduktion Hvad er Regularitet og Automater Praktiske oplysninger om kurset Regulære udtryk Induktionsbevis Frokost Endelige automater Skelnelighed, Produktkonstruktion Præsentation af Java projekt Eksempel: Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
5 Plan Introduktion Hvad er Regularitet og Automater Praktiske oplysninger om kurset Regulære udtryk Induktionsbevis Frokost Endelige automater Skelnelighed, Produktkonstruktion Præsentation af Java projekt Eksempel: Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
6 Plan Introduktion Hvad er Regularitet og Automater Praktiske oplysninger om kurset Regulære udtryk Induktionsbevis Frokost Endelige automater Skelnelighed, Produktkonstruktion Præsentation af Java projekt Eksempel: Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
7 Plan Introduktion Hvad er Regularitet og Automater Praktiske oplysninger om kurset Regulære udtryk Induktionsbevis Frokost Endelige automater Skelnelighed, Produktkonstruktion Præsentation af Java projekt Eksempel: Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
8 Plan Introduktion Hvad er Regularitet og Automater Praktiske oplysninger om kurset Regulære udtryk Induktionsbevis Frokost Endelige automater Skelnelighed, Produktkonstruktion Præsentation af Java projekt Eksempel: Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
9 Plan Introduktion Hvad er Regularitet og Automater Praktiske oplysninger om kurset Regulære udtryk Induktionsbevis Frokost Endelige automater Skelnelighed, Produktkonstruktion Præsentation af Java projekt Eksempel: Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
10 Plan Introduktion Hvad er Regularitet og Automater Praktiske oplysninger om kurset Regulære udtryk Induktionsbevis Frokost Endelige automater Skelnelighed, Produktkonstruktion Præsentation af Java projekt Eksempel: Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
11 Plan Introduktion Hvad er Regularitet og Automater Praktiske oplysninger om kurset Regulære udtryk Induktionsbevis Frokost Endelige automater Skelnelighed, Produktkonstruktion Præsentation af Java projekt Eksempel: Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
12 Introduktion Plan Introduktion Hvad er regularitet og Automater Praktiske oplysninger Regulære udtryk Induktionsbevis Endelige automater Skelnelighed, produktkonstruktion dregaut pakken Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
13 Introduktion Hvad er formålet med Regularitet og Automater? At præsentere matematiske teknikker og centrale begreber, der anvendes i datalogi Rekursive definitioner, induktionsbeviser Formelle sprog Modeller for beregnelighed Regularitet ( egenskaber som generelt kendetegner beregningsprocesser i it-systemer med begrænset mange tilstande ) Fundament for andre kurser Logik og Beregnelighed Oversættelse, Sprog og Semantik Søgning og Optimering,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
14 Introduktion Hvad er formålet med Regularitet og Automater? At præsentere matematiske teknikker og centrale begreber, der anvendes i datalogi Rekursive definitioner, induktionsbeviser Formelle sprog Modeller for beregnelighed Regularitet ( egenskaber som generelt kendetegner beregningsprocesser i it-systemer med begrænset mange tilstande ) Fundament for andre kurser Logik og Beregnelighed Oversættelse, Sprog og Semantik Søgning og Optimering,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
15 Introduktion Hvad er formålet med Regularitet og Automater? At præsentere matematiske teknikker og centrale begreber, der anvendes i datalogi Rekursive definitioner, induktionsbeviser Formelle sprog Modeller for beregnelighed Regularitet ( egenskaber som generelt kendetegner beregningsprocesser i it-systemer med begrænset mange tilstande ) Fundament for andre kurser Logik og Beregnelighed Oversættelse, Sprog og Semantik Søgning og Optimering,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
16 Introduktion Hvad er formålet med Regularitet og Automater? At præsentere matematiske teknikker og centrale begreber, der anvendes i datalogi Rekursive definitioner, induktionsbeviser Formelle sprog Modeller for beregnelighed Regularitet ( egenskaber som generelt kendetegner beregningsprocesser i it-systemer med begrænset mange tilstande ) Fundament for andre kurser Logik og Beregnelighed Oversættelse, Sprog og Semantik Søgning og Optimering,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
17 Introduktion Hvad er formålet med Regularitet og Automater? At præsentere matematiske teknikker og centrale begreber, der anvendes i datalogi Rekursive definitioner, induktionsbeviser Formelle sprog Modeller for beregnelighed Regularitet ( egenskaber som generelt kendetegner beregningsprocesser i it-systemer med begrænset mange tilstande ) Fundament for andre kurser Logik og Beregnelighed Oversættelse, Sprog og Semantik Søgning og Optimering,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
18 Introduktion Hvad er formålet med Regularitet og Automater? At præsentere matematiske teknikker og centrale begreber, der anvendes i datalogi Rekursive definitioner, induktionsbeviser Formelle sprog Modeller for beregnelighed Regularitet ( egenskaber som generelt kendetegner beregningsprocesser i it-systemer med begrænset mange tilstande ) Fundament for andre kurser Logik og Beregnelighed Oversættelse, Sprog og Semantik Søgning og Optimering,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
19 Introduktion Hvad er formålet med Regularitet og Automater? At præsentere matematiske teknikker og centrale begreber, der anvendes i datalogi Rekursive definitioner, induktionsbeviser Formelle sprog Modeller for beregnelighed Regularitet ( egenskaber som generelt kendetegner beregningsprocesser i it-systemer med begrænset mange tilstande ) Fundament for andre kurser Logik og Beregnelighed Oversættelse, Sprog og Semantik Søgning og Optimering,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
20 Introduktion Hvad er formålet med Regularitet og Automater? At præsentere matematiske teknikker og centrale begreber, der anvendes i datalogi Rekursive definitioner, induktionsbeviser Formelle sprog Modeller for beregnelighed Regularitet ( egenskaber som generelt kendetegner beregningsprocesser i it-systemer med begrænset mange tilstande ) Fundament for andre kurser Logik og Beregnelighed Oversættelse, Sprog og Semantik Søgning og Optimering,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
21 Introduktion Hvad er formålet med Regularitet og Automater? At præsentere matematiske teknikker og centrale begreber, der anvendes i datalogi Rekursive definitioner, induktionsbeviser Formelle sprog Modeller for beregnelighed Regularitet ( egenskaber som generelt kendetegner beregningsprocesser i it-systemer med begrænset mange tilstande ) Fundament for andre kurser Logik og Beregnelighed Oversættelse, Sprog og Semantik Søgning og Optimering,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
22 Introduktion Hvad er formålet med Regularitet og Automater? At præsentere matematiske teknikker og centrale begreber, der anvendes i datalogi Rekursive definitioner, induktionsbeviser Formelle sprog Modeller for beregnelighed Regularitet ( egenskaber som generelt kendetegner beregningsprocesser i it-systemer med begrænset mange tilstande ) Fundament for andre kurser Logik og Beregnelighed Oversættelse, Sprog og Semantik Søgning og Optimering,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
23 Introduktion Tekstgenkendelse Specificere og genkende tekststrenge søgning i tekster (Unix grep) leksikalsk analyse i oversættere (flex) HTML input validering (PowerForms)... Konkret anvendelse af regulære udtryk og endelige automater S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
24 Introduktion Eksempel... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
25 Introduktion Eks. HTML formularer HTML formularer indeholder input-felter, hvor brugeren kan indtaste tekststrenge. For eksempel datoer telefonnumre CPR-numre adresser URL er... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
26 Introduktion HTML input valdidering Brugeren må ikke indtaste ugyldige strenge Den traditionelle løsning: Programmer input validering i JavaScript (til browseren så input valideres løbende mens formularen udfyldes), og Java (til serveren for det tilfælde at browseren ikke udfører JavaScript-koden) Problemer: Det er svært at programmere JavaScript, der virker på alle (nyere) browsere Vi skal skrive den samme kode i to forskellige sprog Store dele af koden skal skrives igen og igen... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
27 Introduktion HTML input valdidering Brugeren må ikke indtaste ugyldige strenge Den traditionelle løsning: Programmer input validering i JavaScript (til browseren så input valideres løbende mens formularen udfyldes), og Java (til serveren for det tilfælde at browseren ikke udfører JavaScript-koden) Problemer: Det er svært at programmere JavaScript, der virker på alle (nyere) browsere Vi skal skrive den samme kode i to forskellige sprog Store dele af koden skal skrives igen og igen... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
28 Introduktion HTML input valdidering Brugeren må ikke indtaste ugyldige strenge Den traditionelle løsning: Programmer input validering i JavaScript (til browseren så input valideres løbende mens formularen udfyldes), og Java (til serveren for det tilfælde at browseren ikke udfører JavaScript-koden) Problemer: Det er svært at programmere JavaScript, der virker på alle (nyere) browsere Vi skal skrive den samme kode i to forskellige sprog Store dele af koden skal skrives igen og igen... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
29 Introduktion HTML input valdidering Brugeren må ikke indtaste ugyldige strenge Den traditionelle løsning: Programmer input validering i JavaScript (til browseren så input valideres løbende mens formularen udfyldes), og Java (til serveren for det tilfælde at browseren ikke udfører JavaScript-koden) Problemer: Det er svært at programmere JavaScript, der virker på alle (nyere) browsere Vi skal skrive den samme kode i to forskellige sprog Store dele af koden skal skrives igen og igen... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
30 Introduktion HTML input valdidering Brugeren må ikke indtaste ugyldige strenge Den traditionelle løsning: Programmer input validering i JavaScript (til browseren så input valideres løbende mens formularen udfyldes), og Java (til serveren for det tilfælde at browseren ikke udfører JavaScript-koden) Problemer: Det er svært at programmere JavaScript, der virker på alle (nyere) browsere Vi skal skrive den samme kode i to forskellige sprog Store dele af koden skal skrives igen og igen... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
31 Introduktion HTML input valdidering Brugeren må ikke indtaste ugyldige strenge Den traditionelle løsning: Programmer input validering i JavaScript (til browseren så input valideres løbende mens formularen udfyldes), og Java (til serveren for det tilfælde at browseren ikke udfører JavaScript-koden) Problemer: Det er svært at programmere JavaScript, der virker på alle (nyere) browsere Vi skal skrive den samme kode i to forskellige sprog Store dele af koden skal skrives igen og igen... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
32 Introduktion Den datalogiske løsning Analysér problemområdet Design et domæne-specifikt højniveau sprog Lav en oversætter, der genererer JavaScript- og Java-koden fra højniveau specifikationer Sproget PowerForms er udviklet efter denne metode Input-felter beskrives med regulære udtryk, der oversættes til endelige automater S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
33 Introduktion Den datalogiske løsning Analysér problemområdet Design et domæne-specifikt højniveau sprog Lav en oversætter, der genererer JavaScript- og Java-koden fra højniveau specifikationer Sproget PowerForms er udviklet efter denne metode Input-felter beskrives med regulære udtryk, der oversættes til endelige automater S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
34 Introduktion Den datalogiske løsning Analysér problemområdet Design et domæne-specifikt højniveau sprog Lav en oversætter, der genererer JavaScript- og Java-koden fra højniveau specifikationer Sproget PowerForms er udviklet efter denne metode Input-felter beskrives med regulære udtryk, der oversættes til endelige automater S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
35 Hvad er regularitet og Automater Plan Introduktion Hvad er regularitet og Automater Praktiske oplysninger Regulære udtryk Induktionsbevis Endelige automater Skelnelighed, produktkonstruktion dregaut pakken Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
36 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
37 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
38 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
39 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
40 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
41 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
42 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
43 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
44 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
45 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
46 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
47 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
48 Hvad er regularitet og Automater Grundliggende begreber Vi starter med nogle matematiske definitioner Et alfabet er en endelig mængde af tegn Ex. {a, b, c,...z} Ex. ASCII, Unicode Ex. {0, 1} En streng er en endelig sekvens af tegn fra alfabetet Ex. "onkel sune drejer den usle kno" Ex. "10110" Ex. " " (Den tomme streng. Skrives også Λ (andre steder ε)). Et sprog er en mængde af strenge Ex. {"hans", "ole"} Ex. {Λ, a, aa, aaa, aaaa,...} Ex. {} (Det tomme sprog) Ex. Alle korrekte danske sætninger S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
49 Hvad er regularitet og Automater Regulære udtryk Et regulært udtryk beskriver et sprog Regulære udtryk findes på 6 former 3 basis-tilfælde: den tomme mængde af strenge Λ mængden bestående af den tomme streng a Σ mængden bestående af en enkelt streng, som er det ene tegn a fra alfabetet Σ Og 3 Sammensatte tilfælde (rekursive tilfælde): r 1 + r 2 de strenge der beskrives af r 1 eller r 2 r 1 ṙ 2 de strenge der kan opdeles i to dele, så venstre del beskrives af r 1 og højre del af r 2 r de strenge der kan opdeles i et antal dele, der hver beskrives af r S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
50 Hvad er regularitet og Automater Eksempler på regulære udtryk Strenge over alfabetet {0, 1} med et lige antal tegn: ( ) eller ((0 + 1)(0 + 1)) Strenge over alfabetet {0, 1} med et ulige antal 1 er: 0 1(0 10 1) 0 eller 0 10 (10 10 ) Gyldige datoer, telefonnumre, CPR-numre, adresser, URL er,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
51 Hvad er regularitet og Automater Eksempler på regulære udtryk Strenge over alfabetet {0, 1} med et lige antal tegn: ( ) eller ((0 + 1)(0 + 1)) Strenge over alfabetet {0, 1} med et ulige antal 1 er: 0 1(0 10 1) 0 eller 0 10 (10 10 ) Gyldige datoer, telefonnumre, CPR-numre, adresser, URL er,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
52 Hvad er regularitet og Automater Eksempler på regulære udtryk Strenge over alfabetet {0, 1} med et lige antal tegn: ( ) eller ((0 + 1)(0 + 1)) Strenge over alfabetet {0, 1} med et ulige antal 1 er: 0 1(0 10 1) 0 eller 0 10 (10 10 ) Gyldige datoer, telefonnumre, CPR-numre, adresser, URL er,... S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
53 Hvad er regularitet og Automater Et mere realistisk eksempel Floating point tal i Pascal Eksempler på gyldige strenge: E Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,., +,, E} Forkortelser: d = r + = rr (mindst én af r) s = Λ Samlet udtryk: sd + (.d + +.d + Esd + + Esd + + Λ) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
54 Hvad er regularitet og Automater Et mere realistisk eksempel Floating point tal i Pascal Eksempler på gyldige strenge: E Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,., +,, E} Forkortelser: d = r + = rr (mindst én af r) s = Λ Samlet udtryk: sd + (.d + +.d + Esd + + Esd + + Λ) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
55 Hvad er regularitet og Automater Et mere realistisk eksempel Floating point tal i Pascal Eksempler på gyldige strenge: E Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,., +,, E} Forkortelser: d = r + = rr (mindst én af r) s = Λ Samlet udtryk: sd + (.d + +.d + Esd + + Esd + + Λ) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
56 Hvad er regularitet og Automater Et mere realistisk eksempel Floating point tal i Pascal Eksempler på gyldige strenge: E Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,., +,, E} Forkortelser: d = r + = rr (mindst én af r) s = Λ Samlet udtryk: sd + (.d + +.d + Esd + + Esd + + Λ) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
57 Hvad er regularitet og Automater Et mere realistisk eksempel Floating point tal i Pascal Eksempler på gyldige strenge: E Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,., +,, E} Forkortelser: d = r + = rr (mindst én af r) s = Λ Samlet udtryk: sd + (.d + +.d + Esd + + Esd + + Λ) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
58 Hvad er regularitet og Automater Et mere realistisk eksempel Floating point tal i Pascal Eksempler på gyldige strenge: E Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,., +,, E} Forkortelser: d = r + = rr (mindst én af r) s = Λ Samlet udtryk: sd + (.d + +.d + Esd + + Esd + + Λ) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
59 Hvad er regularitet og Automater Et mere realistisk eksempel Floating point tal i Pascal Eksempler på gyldige strenge: E Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,., +,, E} Forkortelser: d = r + = rr (mindst én af r) s = Λ Samlet udtryk: sd + (.d + +.d + Esd + + Esd + + Λ) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
60 Hvad er regularitet og Automater Genkendelse af strenge Givet en streng x, og et regulært udtryk r, hvordan ved vi om r matcher x Den naive metode: vi prøver os frem: matcher intet Λ matcher kun den tomme streng. a Σ matcher kun strengen bestående af den ene karakter a r 1 + r 2 matcher hvis r 1 matcher, eller r 2 matcher r 1 r 2 Opdel x så x = x 1 x 2 på alle mulige måder Og prøv om r 1 matcher x 1 og r 2 matcher x 2 r 1 Opdel x så x = x 1 x 2... x n på alle mulige måder. Og se om r 1 matcher alle x i for alle i = 1,..., n Det virker! Men det er håbløst ineffektivt. S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
61 Hvad er regularitet og Automater Genkendelse af strenge Givet en streng x, og et regulært udtryk r, hvordan ved vi om r matcher x Den naive metode: vi prøver os frem: matcher intet Λ matcher kun den tomme streng. a Σ matcher kun strengen bestående af den ene karakter a r 1 + r 2 matcher hvis r 1 matcher, eller r 2 matcher r 1 r 2 Opdel x så x = x 1 x 2 på alle mulige måder Og prøv om r 1 matcher x 1 og r 2 matcher x 2 r 1 Opdel x så x = x 1 x 2... x n på alle mulige måder. Og se om r 1 matcher alle x i for alle i = 1,..., n Det virker! Men det er håbløst ineffektivt. S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
62 Hvad er regularitet og Automater Genkendelse af strenge Givet en streng x, og et regulært udtryk r, hvordan ved vi om r matcher x Den naive metode: vi prøver os frem: matcher intet Λ matcher kun den tomme streng. a Σ matcher kun strengen bestående af den ene karakter a r 1 + r 2 matcher hvis r 1 matcher, eller r 2 matcher r 1 r 2 Opdel x så x = x 1 x 2 på alle mulige måder Og prøv om r 1 matcher x 1 og r 2 matcher x 2 r 1 Opdel x så x = x 1 x 2... x n på alle mulige måder. Og se om r 1 matcher alle x i for alle i = 1,..., n Det virker! Men det er håbløst ineffektivt. S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
63 Hvad er regularitet og Automater Genkendelse af strenge Givet en streng x, og et regulært udtryk r, hvordan ved vi om r matcher x Den naive metode: vi prøver os frem: matcher intet Λ matcher kun den tomme streng. a Σ matcher kun strengen bestående af den ene karakter a r 1 + r 2 matcher hvis r 1 matcher, eller r 2 matcher r 1 r 2 Opdel x så x = x 1 x 2 på alle mulige måder Og prøv om r 1 matcher x 1 og r 2 matcher x 2 r 1 Opdel x så x = x 1 x 2... x n på alle mulige måder. Og se om r 1 matcher alle x i for alle i = 1,..., n Det virker! Men det er håbløst ineffektivt. S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
64 Hvad er regularitet og Automater Genkendelse af strenge Givet en streng x, og et regulært udtryk r, hvordan ved vi om r matcher x Den naive metode: vi prøver os frem: matcher intet Λ matcher kun den tomme streng. a Σ matcher kun strengen bestående af den ene karakter a r 1 + r 2 matcher hvis r 1 matcher, eller r 2 matcher r 1 r 2 Opdel x så x = x 1 x 2 på alle mulige måder Og prøv om r 1 matcher x 1 og r 2 matcher x 2 r 1 Opdel x så x = x 1 x 2... x n på alle mulige måder. Og se om r 1 matcher alle x i for alle i = 1,..., n Det virker! Men det er håbløst ineffektivt. S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
65 Hvad er regularitet og Automater Genkendelse af strenge Givet en streng x, og et regulært udtryk r, hvordan ved vi om r matcher x Den naive metode: vi prøver os frem: matcher intet Λ matcher kun den tomme streng. a Σ matcher kun strengen bestående af den ene karakter a r 1 + r 2 matcher hvis r 1 matcher, eller r 2 matcher r 1 r 2 Opdel x så x = x 1 x 2 på alle mulige måder Og prøv om r 1 matcher x 1 og r 2 matcher x 2 r 1 Opdel x så x = x 1 x 2... x n på alle mulige måder. Og se om r 1 matcher alle x i for alle i = 1,..., n Det virker! Men det er håbløst ineffektivt. S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
66 Hvad er regularitet og Automater Genkendelse af strenge Givet en streng x, og et regulært udtryk r, hvordan ved vi om r matcher x Den naive metode: vi prøver os frem: matcher intet Λ matcher kun den tomme streng. a Σ matcher kun strengen bestående af den ene karakter a r 1 + r 2 matcher hvis r 1 matcher, eller r 2 matcher r 1 r 2 Opdel x så x = x 1 x 2 på alle mulige måder Og prøv om r 1 matcher x 1 og r 2 matcher x 2 r 1 Opdel x så x = x 1 x 2... x n på alle mulige måder. Og se om r 1 matcher alle x i for alle i = 1,..., n Det virker! Men det er håbløst ineffektivt. S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
67 Hvad er regularitet og Automater Genkendelse af strenge Givet en streng x, og et regulært udtryk r, hvordan ved vi om r matcher x Den naive metode: vi prøver os frem: matcher intet Λ matcher kun den tomme streng. a Σ matcher kun strengen bestående af den ene karakter a r 1 + r 2 matcher hvis r 1 matcher, eller r 2 matcher r 1 r 2 Opdel x så x = x 1 x 2 på alle mulige måder Og prøv om r 1 matcher x 1 og r 2 matcher x 2 r 1 Opdel x så x = x 1 x 2... x n på alle mulige måder. Og se om r 1 matcher alle x i for alle i = 1,..., n Det virker! Men det er håbløst ineffektivt. S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
68 Hvad er regularitet og Automater Endelige Automater (forsmag) En endelig automat der genkender strenge over alfabetet Σ = {0, 1} med et lige antal 0 er Automaten starter i den tilstand der er markeret med pilen Den spiser et tegn af gangen af strengen fra venstre mod højre Hvis den ender i tilstanden med dobbelt-cirkel, så accepterer den S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
69 Hvad er regularitet og Automater Kleenes sætning Regulære udtryk og endelige automater har samme udtrykskraft Konstruktivt bevis: For ethvert regulært udtryk findes en ækvivalent endelig automat For enhver endelig automat findes et ækvivalent regulært udtryk S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
70 Hvad er regularitet og Automater Powerforms eksempel Lad R være et regulært udtryk, der svarer til gyldige datoer på form dd/mm-åååå Oversæt R til en ækvivalent endelig automat F Repræsenter F som et JavaScript-program, der kan svare på om en streng x er: accepteret ikke accepteret, men der er en sti til accept ikke accepteret og ingen sti til accept S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
71 Hvad er regularitet og Automater Endelige automater til modellering af systemer Endelige automater er også nyttige uden regulære udtryk Endelige automater kan modellere systemer og egenskaber De teoretiske resultater om endelige automater kan bruges til at kombinere modeller og verificere om et givet system har en given egenskab S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
72 Hvad er regularitet og Automater En endelig automat, der modellerer en togsimulator (fra VisualSTATE) 1421 del-automater transitioner 2981 inputs 2667 outputs 3204 lokale tilstande Antal tilstande ialt: Virker toget? S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
73 Hvad er regularitet og Automater Beregnelighed input Program output Input og Output er strenge Program er en algoritme som kører på en maskine Eksempel: Givet et naturligt tal N i binær repræsentation som Input, beregn N 2 som output. S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
74 Hvad er regularitet og Automater Beslutningsproblemer input Program ja/nej Hvis vi ignorerer effektivitet, så kan alle beregningsproblemer omformuleres til beslutningsproblemer. Eksempel: Givet to naturlige tal N, M i binær repræsentation som Input, svar ja hvis og kun hvis N 2 = M S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
75 Hvad er regularitet og Automater Beslutningsproblemer som sprog Ethvert beslutningsproblem er et sprog (en mængde af strenge) L = {x P(X) = ja} Ethvert sprog L er også et beslutningsproblem: { ja hvis x L P(x) = nej ellers S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
76 Hvad er regularitet og Automater Beslutningsproblemer som sprog Ethvert beslutningsproblem er et sprog (en mængde af strenge) L = {x P(X) = ja} Ethvert sprog L er også et beslutningsproblem: { ja hvis x L P(x) = nej ellers S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
77 Hvad er regularitet og Automater Beslutningsproblemer som sprog Ethvert beslutningsproblem er et sprog (en mængde af strenge) L = {x P(X) = ja} Ethvert sprog L er også et beslutningsproblem: { ja hvis x L P(x) = nej ellers S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
78 Hvad er regularitet og Automater Eksempler på beslutningsproblemer Givet en streng x, er den en gyldig dato på form dd/mm-åååå? er den et syntaktisk korrekt Java program? er den et primtal? er den en konfiguration i skak hvor det er muligt for hvid at vinde? er den et semantisk korrekt Java-program? er den en syntaktisk korrekt sætning i dansk? er den en litterær klassiker? vi vil kun se på formelle sprog og veldefinerede problemer S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
79 Hvad er regularitet og Automater Endelige automater som model for beregnelighed Vi vil studere følgende emne: Hvilke problemer kan afgøres af en maskine med endeligt meget hukommelse? Med andre ord: Hvilke sprog kan genkendes af endelige automater? S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
80 Hvad er regularitet og Automater Mere generelle modeller for beregnelighed Pushdown-automater: endelige automater med adgang til en vilkårligt stor stak (last-in-first-out) anvendes ofte i parsere i oversættere svarer til kontekstfri grammatikker Turing-maskiner: ligesom endelige automater med adgang til en uendeligt stor notesblok kan udføre vilkårlige algoritmer (Church-Turing-tesen) svarer til uindskrænkede grammatikker (hvor endelige automater svarer til regulære grammatikker) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
81 Hvad er regularitet og Automater Klasser af formelle sprog Alle sprog (over et givet alfabet) Rekursivt enumerable sprog (svarer til Turing-maskiner) Kontekstfrie sprog Regulære sprog Endelige sprog S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
82 Hvad er regularitet og Automater Klasser af formelle sprog Alle sprog (over et givet alfabet) Rekursivt enumerable sprog (svarer til Turing-maskiner) Kontekstfrie sprog Regulære sprog Endelige sprog Picture from S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
83 Hvad er regularitet og Automater Hvorfor så nøjes med regulære sprog Klassen af regulære sprog har mange pæne egenskaber: afgørlighed (f.eks, givet en FA M, accepterer den nogen strenge overhovedet? ) lukkethed (snit, forening,...) Til sammenligning: Ved Turing-maskiner er næsten alt uafgørligt (Rices sætning: alt interessant vedrørende sproget for en Turing-maskine er uafgørligt ) Pushdown-automater / kontekstfri grammatikker: en mellemting, både med hensyn til udtrykskraft og afgørlighedsegenskaber S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
84 Hvad er regularitet og Automater Uafgørlighed while (x 1) { if (even(x)) x = x/2; else x = 3 x+1; } Terminerer dette program på alle input x? Ja eller nej? Tilsyneladende ja, men ingen har endnu bevist det! Men vi kan bevise, at der ikke findes et program (=en Turing-maskine), der kan afgøre det generelle problem givet et program P, terminerer P på alle input? S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
85 Praktiske oplysninger Plan Introduktion Hvad er regularitet og Automater Praktiske oplysninger Regulære udtryk Induktionsbevis Endelige automater Skelnelighed, produktkonstruktion dregaut pakken Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
86 Praktiske oplysninger Praktiske oplysninger om kurset Hjemmeside: Seminarer: 27/ Fredag / Fredag / Fredag 9-16 S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
87 Praktiske oplysninger Materiale John Martin Introduction to Languages and the Theory of Computation 3. udgave, McGraw-Hill, 2002 ISBN: eller Opgaver på ugesedlerne S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
88 Praktiske oplysninger Aktivitetsniveau Forventet aktivitet per uge ~ 15 timer 6 uger 15 timer/uge = 90 timer Seminarer: 21 timer Mellem seminarer: 69 Forventet hjemmearbejde ca. 11 timer per uge Det forventes at man: Læser de relevante kapitler i bogen Løser opgaverne Laver programmeringsprojektet S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
89 Praktiske oplysninger Opgaver Teoretiske opgaver udfordrer forståelsen af det gennemgåede materiale øvelse i typisk datalogisk matematik Programmeringsprojekt (dregaut Java-pakken) implementation af de gennemgåede algoritmer, der udledes af konstruktive beviser Øvelse i at implementere formelle specifikationer i Java. S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
90 Praktiske oplysninger Eksamen Mundtlig, ekstern censur, 7-skalaen 20 min. per person, uden forberedelsestid For at kunne indstilles til eksamen skal man have godkendt besvarelser af de obligatoriske opgaver S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
91 Regulære udtryk Plan Introduktion Hvad er regularitet og Automater Praktiske oplysninger Regulære udtryk Induktionsbevis Endelige automater Skelnelighed, produktkonstruktion dregaut pakken Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
92 Regulære udtryk Alfabeter, strenge og sprog Et alfabet Σ er en endelig mængde (af tegn/symboler) eks.: Σ = {a, b, c} En streng x er en endelig sekvens af tegn fra alfabetet eks.: x = abba Λ repræsenterer den tomme streng (strengen af længde 0), Λ / Σ Et sprog L er en (vilkårlig) mængde af strenge eks.: L = {Λ, cab, abba} Σ er mængden af alle strenge over Σ dvs. L Σ hvis L er et sprog over Σ eks.: hvis Σ = {a, b, c} så er Σ = {Λ, a, b, c, aa, ab, ac, aaa, aab,...} S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
93 Regulære udtryk Konkatenering af strenge Hvis x, y Σ, så er x y (konkateneringen af x og y) den streng, der fremkommer ved at sætte tegnene i x før tegnene i y Eks.: hvis x = abb og y = a, så er x y = abba y x = aabb Bemærk: x Λ = Λ x = x for alle x x y skrives ofte xy (uden ) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
94 Regulære udtryk Konkatenering af sprog Hvis L 1, L 2 Σ, så er L 1 L 2 (konkateneringen af L 1 og L 2 ) defineret ved L 1 L 2 = {x y x L 1 y L 2 } Eks.: Hvis Σ = {0, 1, 2, a, b, c} og L 1 = {Λ, 10, 212}, L 2 = {cab, abba} så er: L1 L2 = {cab, 10cab, 212cab, abba, 10abba, 212abba} Bemærk: L {Λ} = {Λ} L = L for alle L L = L = for alle L L 1 L 2 skrives ofte L 1 L 2 (uden ) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
95 Regulære udtryk Kleene stjerne Kleene stjerne er en måde at udtrykke 0 eller flere forekomster L k = LL }{{ L} (konkatenering af k forekomster af L) k gange L 0 = {Λ} (0 forekomster af L) L = i=0 Li (Kleene stjerne af L) L + = L L (1 eller flere forekomster) Eks.: Hvis L = {aa, b} så er L = {Λ, aa, b, aaaa, aab, baa, bb, aaaaaa,...} S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
96 Regulære udtryk Rekursive definitioner En definition er rekursiv, hvis den refererer til sig selv Eks.: Fibonacci f : N N { 1, hvis n = 1 n = 0 f (n) = f (n 1) + f (n 2), ellers Enhver selv-reference skal referere til noget mindre og dermed føre til endeligt mange selv-referencer S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
97 Regulære udtryk Rekursiv definition af strenge x er en streng over alfabetet Σ, dvs. x Σ hvis: x = Λ, eller x = y a hvor y Σ og a Σ (underforstået Σ er den mindste mænge der opfylder dette) Eksempel: abc = (((Λ a) b) c) Σ, (hvor Σ = {a, b, c, d}) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
98 Regulære udtryk Syntax af regulære udtryk Mængden R af regulære udtryk over Σ er den mindste mængde, der indeholder følgende: Λ a for hver a Σ (r 1 + r 2 ) hvor r 1, r 2 R (r 1 r 2 ) hvor r 1, r 2 R (r ) hvor r R S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
99 Regulære udtryk Semantik af regulære udtryk Sproget L(r) for r R er defineret rekursivt i strukturen af R L( ) = L(Λ) = {Λ} L(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)) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
100 Regulære udtryk Regulære sprog Definition: Et sprog S er regulært hvis og kun hvis der eksisterer et regulært udtryk r hvor L(r) = S S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
101 Regulære udtryk Paranteser i regulære udtryk Forening og konkatenering er associative, så vi vælger at tillade f.eks. at (a + (b + c)) kan skrives a + b + c at (a(bc)) kan skrives abc Vi definerer præcedens for operatorerne: binder stærkest konkatenering binder middel + binder svagest Eks.: (a + ((b )c)) kan skrives a + b c S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
102 Regulære udtryk Paranteser i regulære udtryk Forening og konkatenering er associative, så vi vælger at tillade f.eks. at (a + (b + c)) kan skrives a + b + c at (a(bc)) kan skrives abc Vi definerer præcedens for operatorerne: binder stærkest konkatenering binder middel + binder svagest Eks.: (a + ((b )c)) kan skrives a + b c S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
103 Regulære udtryk Paranteser i regulære udtryk Forening og konkatenering er associative, så vi vælger at tillade f.eks. at (a + (b + c)) kan skrives a + b + c at (a(bc)) kan skrives abc Vi definerer præcedens for operatorerne: binder stærkest konkatenering binder middel + binder svagest Eks.: (a + ((b )c)) kan skrives a + b c S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
104 Regulære udtryk Paranteser i regulære udtryk Forening og konkatenering er associative, så vi vælger at tillade f.eks. at (a + (b + c)) kan skrives a + b + c at (a(bc)) kan skrives abc Vi definerer præcedens for operatorerne: binder stærkest konkatenering binder middel + binder svagest Eks.: (a + ((b )c)) kan skrives a + b c S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
105 Regulære udtryk Paranteser i regulære udtryk Forening og konkatenering er associative, så vi vælger at tillade f.eks. at (a + (b + c)) kan skrives a + b + c at (a(bc)) kan skrives abc Vi definerer præcedens for operatorerne: binder stærkest konkatenering binder middel + binder svagest Eks.: (a + ((b )c)) kan skrives a + b c S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
106 Regulære udtryk Paranteser i regulære udtryk Forening og konkatenering er associative, så vi vælger at tillade f.eks. at (a + (b + c)) kan skrives a + b + c at (a(bc)) kan skrives abc Vi definerer præcedens for operatorerne: binder stærkest konkatenering binder middel + binder svagest Eks.: (a + ((b )c)) kan skrives a + b c S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
107 Regulære udtryk Paranteser i regulære udtryk Forening og konkatenering er associative, så vi vælger at tillade f.eks. at (a + (b + c)) kan skrives a + b + c at (a(bc)) kan skrives abc Vi definerer præcedens for operatorerne: binder stærkest konkatenering binder middel + binder svagest Eks.: (a + ((b )c)) kan skrives a + b c S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
108 Regulære udtryk Paranteser i regulære udtryk Forening og konkatenering er associative, så vi vælger at tillade f.eks. at (a + (b + c)) kan skrives a + b + c at (a(bc)) kan skrives abc Vi definerer præcedens for operatorerne: binder stærkest konkatenering binder middel + binder svagest Eks.: (a + ((b )c)) kan skrives a + b c S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
109 Regulære udtryk Eksempel Betragt følgende regulære udtryk r over alfabetet {0, 1}: r = (1 + Λ)001 På grund af parentesreglerne er dette det samme som r = ((((1 + Λ)0)0)1) Så sproget for r er L(r) = ((({1} {Λ}){0}){0}){1}) = {1001, 001} S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
110 Regulære udtryk Eksempel Betragt følgende regulære udtryk r over alfabetet {0, 1}: r = (1 + Λ)001 På grund af parentesreglerne er dette det samme som r = ((((1 + Λ)0)0)1) Så sproget for r er L(r) = ((({1} {Λ}){0}){0}){1}) = {1001, 001} S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
111 Regulære udtryk Eksempel Betragt følgende regulære udtryk r over alfabetet {0, 1}: r = (1 + Λ)001 På grund af parentesreglerne er dette det samme som r = ((((1 + Λ)0)0)1) Så sproget for r er L(r) = ((({1} {Λ}){0}){0}){1}) = {1001, 001} S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
112 Regulære udtryk Quiz 1 Hvad betyder {a, bc}? 2 Hvad er betingelsen for at et sprog S er regulært? S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
113 Regulære udtryk Øvelser [Martin] Opg. 3.2 [Martin] Opg. 3.9 (a-e) [Martin] Opg (a-b) S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
114 Induktionsbevis Plan Introduktion Hvad er regularitet og Automater Praktiske oplysninger Regulære udtryk Induktionsbevis Endelige automater Skelnelighed, produktkonstruktion dregaut pakken Automater til modellering og verifikation S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
115 Induktionsbevis Reverse-operatoren Givet en streng x Σ, definer reverse(x) rekursivt i strukturen af x: reverse(λ) = Λ reverse(ya) = a(reverse(y)), hvor y Σ, a Σ Eksempel: reverse(123) = 3 reverse(12) =... = 321 reverse(λ) = 321 S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
116 Induktionsbevis Reverse på et sprog Givet et sprog L Σ*, definer reverse(l) = {reverse(x) x L} Eksempel: Hvis L={Λ,123,abc} så er reverse(l) = {Λ, 321, cba} S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
117 Induktionsbevis Rekursion og induktionsbeviser Rekursive definitioner giver ofte anledning til induktionsbeviser Hvis vi skal bevise noget på form for alle X gælder P(X), hvor mængden af X er er defineret rekursivt, så kan vi prøve bevisteknikken induktion i strukturen af X S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
118 Induktionsbevis Rekursion og induktionsbeviser Rekursive definitioner giver ofte anledning til induktionsbeviser Hvis vi skal bevise noget på form for alle X gælder P(X), hvor mængden af X er er defineret rekursivt, så kan vi prøve bevisteknikken induktion i strukturen af X S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
119 Induktionsbevis Eksempel på et induktionsbevis (1/3) Påstand: Hvis S er et regulært sprog, så er reverse(s) også regulært (dvs. de regulære sprog er lukkede under Reverse) Bevis: S er regulært, så der eksisterer et regulært udtryk r så L(r) = S Vi vil vise ved induktion i strukturen af r, at der eksisterer et regulært udtryk r hvor L(r ) = reverse(l(r)), hvilket medfører, at reverse(s) er regulært S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
120 Induktionsbevis Eksempel på et induktionsbevis (1/3) Påstand: Hvis S er et regulært sprog, så er reverse(s) også regulært (dvs. de regulære sprog er lukkede under Reverse) Bevis: S er regulært, så der eksisterer et regulært udtryk r så L(r) = S Vi vil vise ved induktion i strukturen af r, at der eksisterer et regulært udtryk r hvor L(r ) = reverse(l(r)), hvilket medfører, at reverse(s) er regulært S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
121 Induktionsbevis Eksempel på et induktionsbevis (2/3) Basis r = : r = L( ) = = reverse( ) = reverse(l( )) r = Λ: r = Λ r = a: r = a S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
122 Induktionsbevis Eksempel på et induktionsbevis (3/3) Induktionsskridtet For alle deludtryk s af r kan vi udnytte induktionshypotesen: Der eksisterer et regulært udtryk s hvor L(s ) = Reverse(L(s)) r = r 1 + r 2 hvor r 1, r 2 R: vælg r = r 1 + r 2 hvor r 1 of r 2 er givet i induktionshypotesen. r = r 1 r 2 hvor r 1, r 2 R: vælg r = r 2 r 1 r = r 1 hvor r 1 R: vælg r = (r 1 ) Lemma 1: x, y Σ : reverse(xy) = reverse(y)reverse(x) Bevis: induktion i strukturen (eller længden) af y Lemma 2: i 0, E Σ : reverse(e i ) = (reverse(e)) i Bevis: induktion i i S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
123 Induktionsbevis Eksempel på et induktionsbevis (3/3) Induktionsskridtet For alle deludtryk s af r kan vi udnytte induktionshypotesen: Der eksisterer et regulært udtryk s hvor L(s ) = Reverse(L(s)) r = r 1 + r 2 hvor r 1, r 2 R: vælg r = r 1 + r 2 hvor r 1 of r 2 er givet i induktionshypotesen. r = r 1 r 2 hvor r 1, r 2 R: vælg r = r 2 r 1 r = r 1 hvor r 1 R: vælg r = (r 1 ) Lemma 1: x, y Σ : reverse(xy) = reverse(y)reverse(x) Bevis: induktion i strukturen (eller længden) af y Lemma 2: i 0, E Σ : reverse(e i ) = (reverse(e)) i Bevis: induktion i i S. Meldgaard (AU) 1. Seminar EVU RegAut 27/ / 105
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 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 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 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 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 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 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 mereRegularitet & Automater Eksamensnotater
Regularitet & Automater Eksamensnotater Michael Lind Mortensen, 20071202, DAT4 10. juni 2008 Indhold 1 Regulære udtryk (1.5 & 3.1) 4 1.1 Disposition............................ 4 1.2 Noter...............................
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 mereRegularitet 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 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 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 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 mereDat 2/BAIT6/SW4: Syntaks og semantik En manual for studerende
Dat 2/BAIT6/SW4: Syntaks og semantik En manual for studerende Hans Hüttel Foråret 2011 Indhold Indhold 1 1 Kurset er lavet om! 1 2 Kursets indhold 2 2.1 Kursets emner................................ 2
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 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 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 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 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 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 (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 mereStudieordning for diplomuddannelsen i informationsteknologi
Studieordning for diplomuddannelsen i informationsteknologi April 2007 [v3] 1 Introduktion... 2 2 Formål... 2 3 Indhold... 2 4 Adgangskrav... 3 5 Eksaminer... 3 6 Studieplan... 3 6.1 Formelle modeller
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 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 mereDat 2/F6S/SW4: Syntaks og semantik En manual for studerende
Dat 2/F6S/SW4: Syntaks og semantik En manual for studerende Hans Hüttel Foråret 2010 Indhold Indhold 1 1 Om denne manual 1 2 Om kursets indhold 2 2.1 Hvilke emner rummer kurset?.................. 2 2.2
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 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 mereRolf Fagerberg. Forår 2013
Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,
Læs mereRolf Fagerberg. Forår 2012
Forår 2012 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM502 og DM503 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM502 og DM503 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,
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 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 mereAlgoritmer og Datastrukturer 1. Gerth Stølting Brodal Aarhus Universitet
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet Kursusbeskrivelsen Kursusbeskrivelsen: Algoritmer og datastrukturer 1 Formål Deltagerne vil efter kurset have indsigt i algoritmer
Læs mereGrundlæggende Algoritmer og Datastrukturer
Grundlæggende Algoritmer og Datastrukturer Om kurset Grundlæggende Algoritmer og Datastrukturer Undervisningsformer Forelæsninger: 4 timer/uge (2+2). Øvelser: 3 timer/uge. Café. Obligatorisk program 13
Læs mereAlgoritmer og Datastrukturer 1. Gerth Stølting Brodal
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Kursusbeskrivelsen Kursusbeskrivelsen: Algoritmer og datastrukturer 1 Formål Deltagerne vil efter kurset have indsigt i algoritmer som model for sekventielle
Læs mereAlgoritmer og Datastrukturer 1. Gerth Stølting Brodal
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Kursusbeskrivelsen Kursusbeskrivelsen: Algoritmer og datastrukturer 1 Formål Deltagerne vil efter kurset have indsigt i algoritmer som model for sekventielle
Læs mereDynamisk programmering
Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer
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 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 mereSkriftlig Eksamen Algoritmer og Datastrukturer (DM507)
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Fredag den 25. juni 200, kl. 9.00-.00
Læs mereInvarianter og kombinatoriske beviser
Invarianter og kombinatoriske beviser Anders Nedergaard Jensen Institut for Matematik, Aarhus Universitet Matematiklærerdag, Aarhus, 24. Marts 2017 En invariant er en værdi/udsagn der forbliver konstant
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 mereDynamisk programmering
Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur blandt mange mulige. Dynamisk programmering Optimeringsproblem: man ønsker at finde
Læs mere26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.
26 Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler. Hvad er programverifikation? Bevisregel for 'tom kommando'. Bevisregel for assignment. Bevisregler for selektive
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereDynamisk programmering
Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler:
Læs mereIntroduktion til DM507
Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA
Læs mereRolf Fagerberg. Forår 2015
Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software
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 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 mereDATALOGISK INSTITUT, AARHUS UNIVERSITET
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Onsdag den 11. august 2004, kl.
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
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 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 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 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 mereDATALOGI 1E. Skriftlig eksamen fredag d. 16. januar 2004
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen fredag d. 16. januar 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes
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 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 mereDanmarks Tekniske Universitet
Eksamen 005, F0 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 00. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.
Læs mereKnudeteori. Introduktion Isotopi-begrebet Trefarvning af knuder Primknuder og knudeklassifikation Jones-polynomiet Flere invarianter Nogle anvendelser
Knudeteori Introduktion Isotopi-begrebet Trefarvning af knuder Primknuder og knudeklassifikation Jones-polynomiet Flere invarianter Nogle anvendelser 1 Reklame Kenneth Hansen Knudeteori Forlaget Systime
Læs mereGrundlæggende Matematik
Grundlæggende Matematik Hayati Balo, AAMS Juli 2013 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 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 mereRolf Fagerberg. Forår 2015
Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software Engineering BA i Matematik-Økonomi BA i Anvendt Matematik BA
Læs mereSproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract
Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget
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 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 mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer (DM507)
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)
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 mereDefinition multiplikation En m n-matrix og en n p-matrix kan multipliceres (ganges sammen) til en m p-matrix.
Oversigt [LA] 3, 4, 5 Nøgleord og begreber Matrix multiplikation Identitetsmatricen Transponering Fra matrix til afbildning Fra afbildning til matrix Test matrix-afbildning Inverse matricer Test invers
Læs mereNøgleord og begreber. Definition multiplikation En m n-matrix og en n p-matrix kan multipliceres (ganges sammen) til en m p-matrix.
Oversigt [LA] 3, 4, 5 Matrix multiplikation Nøgleord og begreber Matrix multiplikation Identitetsmatricen Transponering Fra matrix til afbildning Fra afbildning til matrix Test matrix-afbildning Inverse
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 mereRolf Fagerberg. Forår 2014
Forår 2014 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: Format: Programmering og Diskret matematik I (forelæsninger), TE (øvelser), S (arbejde selv og i studiegrupper) Eksamenform: Skriftlig
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 1 (tretten) Eksamensdag: Tirsdag den 8. april 2008,
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 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 merePerspektiverende Datalogikursus Uge 1 - Algoritmer og kompleksitet
Perspektiverende Datalogikursus Uge 1 - Algoritmer og kompleksitet Gerth Stølting Brodal 30. august 2006 ½ Perspektiverende kursus Formål: Vise bredden af Datalogi. Vise fagets anvendelighed. Vise konkrete
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereSkriftlig Eksamen Algoritmer og sandsynlighed (DM538)
Skriftlig Eksamen Algoritmer og sandsynlighed (DM538) Institut for Matematik & Datalogi Syddansk Universitet Fredag den 9 Januar 2015, kl. 10 14 Alle sædvanlige hjælpemidler(lærebøger, notater etc.) samt
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 mereProgrammering og Problemløsning, 2017
Programmering og Problemløsning, 2017 Rekursion Towers of Hanoi og Liniegrafik Martin Elsman Datalogisk Institut Københavns Universitet DIKU 13. Oktober, 2017 Martin Elsman (DIKU) Programmering og Problemløsning,
Læs mereProjekt 1.4 De reelle tal og 2. hovedsætning om kontinuitet
Projekt 1.4 De reelle tal og 2. hovedsætning om kontinuitet Mens den 1. hovedsætning om kontinuerte funktioner kom forholdsvis smertefrit ud af intervalrusebetragtninger, så er 2. hovedsætning betydeligt
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
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 mereSkriftlig Eksamen Diskret Matematik (DM528)
Skriftlig Eksamen Diskret Matematik (DM528) Institut for Matematik & Datalogi Syddansk Universitet Tirsdag den 20 Januar 2009, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug
Læs mereOversigt [LA] 3, 4, 5
Oversigt [LA] 3, 4, 5 Nøgleord og begreber Matrix multiplikation Identitetsmatricen Transponering Fra matrix til afbildning Fra afbildning til matrix Test matrix-afbildning Inverse matricer Test invers
Læs mereRekursion og dynamisk programmering
Rekursion og dynamisk programmering Datastrukturer & Algoritmer, Dat C Forelæsning 12/10-2004 Henning Christiansen Rekursion: at en procedure kalder sig selv eller et antal metoder kalder hinanden gensidigt.
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 mereINSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 16. august 2013,
Læs mereSkriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)
Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528) Institut for Matematik & Datalogi Syddansk Universitet Mandag den 3 Januar 2011, kl. 9 13 Alle sædvanlige hjælpemidler
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 mereP (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.
P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2. Bevis ved stærk induktion. Basisskridt: P (2) er sand og P (3) er sand. Induktionsskridt: Lad k 2 og antag P
Læs mere6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur
6. december Talteoretiske algoritmer, RSA kryptosystemet, Primtalstest Motivation Definitioner Euclids algoritme Udvidet Euclid RSA kryptosystemet Randominserede algoritmer Rabin-Miller primtalstest Svært
Læs merePerspektiverende Datalogikursus
Perspektiverende Datalogikursus Uge 1 - Algoritmer og kompleksitet Gerth Stølting Brodal 25. august 2004 1 Perspektiverende kursus Formål: Vise fagets bredde. Vise fagets anvendelighed. Vise konkrete eksempler
Læs mereDM02 opgaver ugeseddel 2
DM0 opgaver ugeseddel af Fiona Nielsen 16. september 003 Øvelsesopgaver 9/9, 10/9 og 11/9 1. Vis, at 1 3 + 3 3 + 5 3 +... + (n 1) 3 = n 4 n. Omskriver til summationsformel: (i 1) 3 = n 4 n Bevis ved induktion
Læs mereProgrammering, algoritmik og matematik en nødvendig sammenblanding?
Programmering, algoritmik og matematik en nødvendig sammenblanding? Oplæg til IDA møde, 29. november 2004 Martin Zachariasen DIKU 1 Egen baggrund B.Sc. i datalogi 1989; Kandidat i datalogi 1995; Ph.D.
Læs mereOversigt [LA] 1, 2, 3, [S] 9.1-3
Oversigt [LA], 2, 3, [S] 9.-3 Nøgleord og begreber Koordinatvektorer, talpar, taltripler og n-tupler Linearkombination Underrum og Span Test linearkombination Lineær uafhængighed Standard vektorer Basis
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 mere