Seminar 1 Regularitet og Automater 28/1-2012

Størrelse: px
Starte visningen fra side:

Download "Seminar 1 Regularitet og Automater 28/1-2012"

Transkript

1 Seminar 1 Regularitet og Automater 28/ Jesper Gulmann Henriksen

2 Agenda Introduktion Hvad er Regularitet og Automater? Praktiske Oplysninger om Kurset Regulære Udtryk + Øvelser Induktion og Beviser Frokost Endelige Automater + Øvelser Skelnelighed og Produktkonstruktion + Øvelser dregaut-pakken Case Study: Modellering og Verifikation

3 3 Regularitet og Automater Formål med kurset: 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 Beregnelighed og Logik, Oversættelse, Statisk Analyse, Software Verifikation, Kombinatorisk Søgning, Concurrency,...

4 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 4

5 HTML-formularer HTML formularer indeholder input-felter, hvor brugeren kan indtaste tekststrenge Eks.: datoer telefonnumre CPR-numre adresser URL er... 5

6 6 HTML input-validering Brugeren må ikke indtaste ugyldige strenge Den traditionelle løsning: Programmér 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...

7 Den datalogiske løsning 1. Analysér problemområdet 2. Design et domæne-specifikt højniveau sprog 3. Lav en oversætter, der genererer JavaScript- og Javakoden fra højniveau-specifikationer Sproget PowerForms er udviklet efter denne metode input-felter beskrives med regulære udtryk, der oversættes til endelige automater 7

8 Regulære udtryk Et alfabet er en endelig mængde af tegn En streng er en endelig sekvens af tegn fra alfabetet Et sprog er en mængde af strenge Et regulært udtryk beskriver et (potentielt uendeligt) sprog: Ø 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 8 r 1 +r 2 de strenge der beskrives af r 1 eller r 2 r 1 r 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

9 Eksempler på regulære udtryk Gyldige datoer, telefonnumre, CPR-numre, adresser, URL er,... Strenge over alfabetet ={0,1} af lige længde: 9 ( )* eller: ((0+1)(0+1))* Strenge over alfabetet ={0,1} med ulige antal 1 er: 0*10*(10*10*)* eller: 0*1(0*10*1)*0* eller:...

10 Et mere realistisk eksempel Floating-point tal (i Pascal): alfabet: ={0,1,2,3,4,5,6,7,8,9,+,-,.,E} eksempler på gyldige strenge: E forkortelser: d d + d*d s +++- samlet udtryk: sd + (.d + +.d + Esd + + Esd + ) 10

11 Genkendelse af strenge Givet et regulært udtryk r og en streng x, hvordan undersøger vi om x matcher r? Den naive løsning: Vi prøver os frem, afhængigt af strukturen af r Ø matcher intet matcher kun den tomme streng a matcher kun strengen a r 1 +r 2 matcher x hvis r 1 eller r 2 matcher x r 1 r 2 opdel x så x=x 1 x 2 på alle mulige måder, check om der eksisterer en opdeling så r 1 matcher x 1 og r 2 matcher x 2 r* opdel x så x=x 1 x 2...x n på alle mulige måder, check om der eksisterer en opdeling så r matcher x i for alle i=1...n Det virker! men er håbløst ineffektivt... 11

12 Endelige automater En endelig automat, der genkender strenge over alfabetet ={0,1} med ulige antal 1 er: Automaten læser strengen ét tegn ad gangen, fra venstre mod højre Hver tilstand repræsenterer en viden om den læste delstreng Hvis automaten ender i en accept-tilstand, så accepteres(=genkendes) strengen 12 1

13 Kleenes sætning Regulære udtryk og endelige automater har samme udtrykskraft Konstruktive beviser: ethvert regulært udtryk kan oversættes til en ækvivalent endelig automat enhver endelig automat kan oversættes til et ækvivalent regulært udtryk Formelle beviser kræver formelle definitioner 13

14 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 14

15 PowerForms-eksempel 29/02 29/ /date.html 15

16 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 16

17 Verifikation En endelig automat, der modellerer en togsimulator (fra VisualSTATE): 1421 del-automater transitioner 2981 inputs 2667 outputs 3204 lokale tilstande ialt antal tilstande: Virker toget? 17

18 Beregnelighed Input PROGRAM Output Input og Output er strenge PROGRAM er en algoritme, der kører på en maskine Eks.: Givet et naturligt tal N som input, maskinen beregner N 2 som output 18

19 Beslutningsproblemer Input PROGRAM ja/nej Hvis vi ignorerer effektivitet, så kan ethvert beregningsproblem omformuleres som et beslutningsproblem Eks.: Givet to naturlige tal N og M som input, maskinen svarer ja hvis og kun hvis M=N 2 19

20 Beslutningsproblemer og sprog Ethvert beslutningsproblem P er et sprog: L = { de strenge x, hvor svaret på P er ja } Ethvert sprog L er et beslutningsproblem: P: er input x i L? 20

21 Eksempler på beslutningsproblemer Givet en streng, 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 21

22 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? 22

23 Mere generelle modeller for beregnelighed Turing-maskiner: endelige automater med adgang til en uendeligt stor notesblok kan udføre vilkårlige algoritmer (Church-Turing-tesen) formel udtrykskraft som f.eks. Java og C Pushdown-automater: endelige automater med adgang til en vilkårligt stor stak (last-in-first-out) anvendes ofte i parsere i oversættere udtrykskraft imellem endelige automater og Turingmaskiner 23

24 Klasser af formelle sprog klassen af alle sprog (over et givet alfabet) de rekursivt enumerable sprog (svarer til Turing-maskiner) de regulære sprog de endelige sprog 24 de kontekstfri sprog (pushdown-automater)

25 Hvorfor nøjes med endelige automater? Klassen af regulære sprog har mange pæne egenskaber: afgørlighed (f.eks, givet en endelig automat M, accepterer M nogen strenge overhovedet? ) lukkethed (fællesmængde, forening,...) Til sammenligning: Ved Turing-maskiner er næsten alt uafgørligt Pushdown-automater / kontekstfri grammatikker: en mellemting, både med udtrykskraft og afgørlighedsegenskaber 25

26 26 Uafgørlighed Her er et lille program: while (x 1) { if (even(x)) x = x/2; else x = 3*x+1; } Terminerer programmet for alle input x>0? Ja eller nej? Tilsyneladende ja, men ingen har endnu bevist det! Men vi kan bevise, at der ikke findes et program (=en Turingmaskine), der kan afgøre det generelle problem givet et program P, terminerer P på alle input?

27 Agenda Introduktion Hvad er Regularitet og Automater? Praktiske Oplysninger om Kurset Regulære Udtryk + Øvelser Induktion og Beviser Frokost Endelige Automater + Øvelser Skelnelighed og Produktkonstruktion + Øvelser dregaut-pakken Case Study: Modellering og Verifikation

28 Praktiske oplysninger om kurset Kursushjemmeside gautevu12 Seminarer Lørdag d. 28. januar Nygaard-192 Lørdag d. 11. februar Nygaard-192 Lørdag d. 3. marts Nygaard-192 Underviser 28 Jesper Gulmann Henriksen

29 Materiale John Martin Introduction to Languages and the Theory of Computation 4. udgave, McGraw-Hill, supplerende materiale på kursets hjemmeside 29

30 Aktivitet Forventet aktivitet pr. uge = 15 timer 3 x 7 timers seminarer = 21 timer i alt 6 uger á 15 timer pr. uge = 90 timer i alt Tid mellem seminarer = 69 timer i alt Forventet hjemmearbejde 11 timers hjemmearbejde pr. uge Der forventes, at man Læser de angivne kapitler i bogen Løser opgaverne Afleverer de 3 obligatoriske opgaver 30

31 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 Supplement til teoretiske opgaver Øvelse i Java-programmering 31

32 Eksamen Onsdag d. 21. marts 2012 Mundtlig, ekstern censur, 7-trinsskalaen 20 min. per person, uden forberedelsestid For at kunne indstilles til eksamen skal man have godkendt besvarelser af de obligatoriske opgaver Eksamenspørgsmålene er på hjemmesiden 32

33 Eksamen Formålet med kurset er at den studerende skal opnå følgende kompetencer: definere den basale terminologi (strenge, sprog, klasser af sprog, samt basale operationer på disse). beskrive basale abstrakte sprogformalismer (regulære udtryk, endelige automater, regulære grammatikker, kontekstfri grammatikker) - fra intuitivt niveau og konkrete eksempler til formel notation og generelle definitioner. beskrive egenskaber ved formalismerne, bl.a. ækvivalens, begrænsninger og beslutningsprocedurer. forklare og udføre algoritmer, der oversætter mellem formalismerne eller afgør beslutningsproblemer - fra konkrete eksempler til generelle og formelle beskrivelser. bevise og analysere egenskaber ved formalismerne (ved hjælp af konstruktive beviser og induktionsbeviser) - fra intuitivt niveau til formelle detaljer. Eksamen vil vurdere i hvor høj grad kursisten besidder disse kompetencer 33

34 Agenda Introduktion Hvad er Regularitet og Automater? Praktiske Oplysninger om Kurset Regulære Udtryk + Øvelser Induktion og Beviser Frokost Endelige Automater + Øvelser Skelnelighed og Produktkonstruktion + Øvelser dregaut-pakken Case Study: Modellering og Verifikation

35 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 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,...} 35

36 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 ) 36

37 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 L 1 L 2 ={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 ) 37

38 Kleene stjerne L k = LL L konkatenering af k forekomster af L L 0 = { } L* = U i=0... L i (Kleene stjerne af L) L + = L*L 38

39 Rekursive definitioner En definition er rekursiv, hvis den refererer til sig selv Eks.: Fibonacci f: 1 hvis n=0 eller n=1 f(n) = f(n-1)+f(n-2) ellers Enhver selv-reference skal referere til noget mindre og føre til endeligt mange selv-referencer 39

40 En 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ængde, der opfylder dette) Eksempel: abc = ((( a) b) c) * (hvor ={a,b,c,d}) 40

41 Syntaks 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 41

42 Rekursive strukturer Tænk på en rekursiv struktur (f.eks. et regulært udtryk eller en streng) som en træ-struktur Eksempel: Det regulære udtryk (a+((b*)c)) svarer til: a + * c b Eksempel: Strengen baa svarer til: a a 42 b

43 43 Semantik af regulære udtryk Sproget L(r) af et regulært udtryk r defineres 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))* L( ) = L((Ø*)), så vi kan opfatte som en forkortelse for (Ø*)

44 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 44

45 Parenteser 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 45

46 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} 46

47 Quiz! 1. Hvad er et sprog? 2. Hvad betyder {a,bc}*? 3. Hvad er betingelsen for at et sprog S er regulært? 47

48 Øvelser Regulære udtryk [Martin, Opg. 3.2] [Martin, Opg. 3.7 a) e)] Opg. S1.1 (på hjemmesiden)

49 Agenda Introduktion Hvad er Regularitet og Automater? Praktiske Oplysninger om Kurset Regulære Udtryk + Øvelser Induktion og Beviser Frokost Endelige Automater + Øvelser Skelnelighed og Produktkonstruktion dregaut-pakken Case Study: Modellering og Verifikation

50 Reverse-operatoren Givet en streng x *, definer reverse(x) i strukturen af x: reverse( ) = reverse(ya) = a(reverse(y)) hvor y *, a Eksempel: reverse(123) =... =

51 Reverse på sprog Givet et sprog L *, definer Reverse(L) = { reverse(x) x L } Eksempel: Hvis L={,123,abc} så er Reverse(L)={,321,cba} 51

52 Rekursive definitioner 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 52

53 Strukturel induktion Vi skal bevise noget på form for alle X gælder P(X), hvor mængden af X er er defineret rekursivt Enhver af X erne er opbygget ved et endeligt antal anvendelser af reglerne fra den rekursive definition nogle X er er atomare resten er sammensatte af mindre X er Induktionsprincippet: Bevis at 1. hvis X er atomar, så gælder P(X) basis 2. hvis X er sammensat af X 1,,X n, induktions-skridtet så gælder P(X) under antagelse af, induktionsat P(X 1 ),,P(X n ) gælder hypotesen Hvis begge dele kan bevises, så gælder P(X) for alle X 53

54 Et induktionsbevis 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 54

55 Basis r = Ø: vælg r = Ø L(r ) = Ø = Reverse(Ø) = Reverse(L(r)) r = a hvor a : vælg r = a... 55

56 Induktionsskridt 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 og r 2 er givet af i.h.... 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

57 Konstruktive beviser Bemærk at dette induktionsbevis indeholder en algoritme til givet et regulært udtryk for S at konstruere et regulært udtryk for Reverse(S) Sådanne beviser kaldes konstruktive Husk altid både konstruktionen og beviset for dens korrekthed 57

58 Algoritme Input: et regulært udtryk r Definer en rekursiv funktion REV ved: REV(Ø) = Ø REV(a) = a, hvor a REV(r 1 +r 2 ) = REV(r 1 ) + REV(r 2 ) REV(r 1 r 2 ) = REV(r 2 ) REV(r 1 ) REV(r 1 *) = (REV(r 1 ))* Output: det regulære udtryk REV(r) 58

59 Agenda Introduktion Hvad er Regularitet og Automater? Praktiske Oplysninger om Kurset Regulære Udtryk + Øvelser Induktion og Beviser Frokost Endelige Automater + Øvelser Skelnelighed og Produktkonstruktion dregaut-pakken Case Study: Modellering og Verifikation

60 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 er i sproget Ethvert regulært udtryk kan oversættes til en endelig automat og omvendt (bevises ved Seminar 2...) 60

61 En endelig automat En endelig automat, der genkender strenge over alfabetet ={0,1} med ulige antal 1 er: Automaten læser strengen ét tegn ad gangen, fra venstre mod højre Hvis automaten ender i en accept-tilstand, så accepteres(=genkendes) strengen 1 61

62 At køre en streng på en automat Eksempel: vi vil vide om strengen 1010 accepteres Vi starter i starttilstanden og læser strengen Vi ender i en ikke-accept tilstand, så strengen accepteres ikke 62

63 Hvad repræsenterer tilstandene? Hver tilstand repræsenterer en viden om den hidtil læste delstreng Eksempel: X Y 1 X: der er læst et lige antal 1 er Y: der er læst et ulige antal 1 er 63

64 Formel definition af endelige automater En endelig automat (finite automaton/fa) er et 5-tupel (Q,, q 0, A, ) hvor Q er en endelig mængde af tilstande er et alfabet q 0 Q er en starttilstand A Q er accepttilstande : Q Q er en transitionsfunktion 64

65 Eksempel Denne grafiske repræsentation af en automat: X Y 1 svarer til 5-tuplet (Q,, q 0, A, ), hvor Q = {X,Y} = {0,1} q 0 = X A = {Y} : Q Q er denne funktion: tilstand input 0 1 X X Y Y Y X 65

66 Hvorfor en formel definition? Den formelle definition viser kort og præcist hvad en FA er For eksempel, en FA har endeligt mange tilstande den har præcis én starttilstand en vilkårlig delmængde af tilstandene kan være accepttilstande for enhver tilstand q og alfabetsymbol a er der én udgående transition (til tilstanden (q,a)) der er ikke noget krav om, at alle tilstande kan nås fra starttilstanden 66

67 Sproget af en automat 5-tupel-definitionen fortæller hvad en FA er Vi vil nu definere hvad en FA kan: En FA accepterer en streng, hvis dens kørsel fra starttilstanden ender i en accepttilstand Sproget L(M) af en FA M er mængden af strenge, den accepterer M genkender sproget L(M) 67

68 Formel definition af L(M) Givet en FA M=(Q,, q 0, A, ), definer den udvidede transitionsfunktion *: Q * Q ved *(q, x) = q ( *(q, y), a) hvis x= hvis x=ya hvor y * og a x * accepteres af M hvis og kun hvis *(q 0, x) A Definer L(M) = { x * x accepteres af M } 68

69 Quiz! Lad ={a,b}. Tegn en FA M så L(M) = * a,b 2. L(M) = Ø a,b a 3. L(M) = {a} b a,b a,b a b L(M) = { x * n a (x) lige og n b (x) ulige } n a (x): ad hoc notation for antal a er i strengen x b a b b a a

70 Øvelser Endelige automater [Martin, Opg. 2.2 e)] [Martin, Opg. 2.3 a) b)] [Martin, Opg. 2.1 a) c)]

71 Agenda Introduktion Hvad er Regularitet og Automater? Praktiske Oplysninger om Kurset Regulære Udtryk + Øvelser Induktion og Beviser Frokost Endelige Automater + Øvelser Skelnelighed og Produktkonstruktion + Øvelser dregaut-pakken Case Study: Modellering og Verifikation

72 Skelnelighed Givet et sprog L, hvor mange tilstande er nødvendige i en FA M hvis L(M)=L? To strenge, x og y, skal ende i forskellige tilstande, hvis der er behov for at kunne skelne dem dvs. z *: (xz L yz L) (xz L yz L) *(q 0, x) *(q 0, y) 72

73 73 Definition af skelnelighed Lad L * og x,y * x og y er skelnelige mht. L hvis z *: (xz L yz L) (xz L yz L) Alternativ definition (som i bogen): Kvotientsproget L/x defineres som L/x = { z * xz L } dvs., x og y er skelnelige mht. L hvis L/x L/y z skelner x og y mht. L hvis z L/x - L/y eller z L/y - L/x

74 Eksempel Hvis L = { s {0,1}* s ender med 10 } x = 00 y = 01 så er x og y skelnelige mht. L Bevis: z = 0 skelner x og y dvs. hvis (Q,, q 0, A, ) genkender L så er *(q 0, x) *(q 0, y) 74

75 Nødvendigt antal tilstande i en FA Antag x 1, x 2,..., x n * og for ethvert par x i,x j, i j er x i og x j skelnelige mht. L Enhver FA der genkender L har mindst n tilstande Bevis (skitse): antag FA en har færre end n tilstande det medfører at i j: *(q 0, x i )= *(q 0, x j ) modstrid med at x i og x j er skelnelige mht. L 75

76 Eksempel 1: En stor automat Lad L 42 = { x {0,1}* x 42 og det 42. symbol fra højre i x er et 1 } Lad x 1, x 2,..., x 2 42 være alle strenge af længde 42 over alfabetet {0,1} Disse strenge er alle parvist skelnelige mht. L 42 En automat der genkender L 42 har derfor mindst 2 42 tilstande (...hvis den overhovedet findes) 76

77 Eksempel 2: palindromer Lad pal = { x {0,1}* x=reverse(x) } Lad x og y være to vilkårlige forskellige strenge over {0,1} x og y er skelnelige mht. pal (bevis: se bogen...) Vi kan altså finde en vilkårligt stor mængde parvist skelnelige strenge, så pal er ikke regulært 77

78 Forening af regulære sprog Givet to regulære sprog, L 1 og L 2 er L 1 L 2 også regulært? Ja! (dvs. klassen af regulære sprog er lukket under forening) 78

79 M 1 : (strenge med lige antal 0 er) Eksempel 1 X Y M 2 : A 1 (strenge der ender med 0) 1 0 B M: L(M) = L(M 1 ) L(M 2 ) 79 1 XA XB YA YB 1

80 Produktkonstruktionen Antag vi har to FA er: M 1 = (Q 1,, q 1, A 1, 1 ) M 2 = (Q 2,, q 2, A 2, 2 ) Definer en ny FA: M = (Q,, q 0, A, ) hvor 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)) Der gælder nu: L(M) = L(M 1 ) L(M 2 ) 80 produktmængden af tilstande

81 Konstruktivt bevis for korrekthed Lemma: x *: *((p, q), x) = ( 1 *(p, x), 2 *(q, x)) (Bevis: opgave 2.11, induktion i x) Brug lemmaet samt definitionerne af M og L( ) 81

82 Nøjes med opnåelige tilstande Produktkonstruktionen bruger Q = Q 1 Q 2 I praksis er hele tilstandsrummet sjældent nødvendigt Eksempel: 1 0 M X Y 1 : M 2 : A B M: L(M) = L(M 1 ) L(M 2 ) XA 1 XB YA 1 YB Kun tilstande, der er opnåelige fra starttilstanden er relevante for sproget! (Bevis: opg.) 82

83 Fællesmængde og differens Givet to regulære sprog, L 1 og L 2 1. er L 1 L 2 også regulært? 2. er L 1 -L 2 også regulært? Ja! (dvs. klassen af regulære sprog er lukket under fællesmængde og differens) Bevis: produktkonstruktion som ved men for, vælg A = { (p, q) p A 1 q A 2 } for -, vælg A = { (p, q) p A 1 q A 2 } 83

84 Givet et regulære sprog R Komplement er R (Rs komplement) også regulært? Ja! (dvs. klassen af regulære sprog er lukket under komplement) Bevis 1: Vælg L 1 = * og L 2 = R, hvorved R = L 1 -L 2 Bevis 2: Givet en FA M = (Q,, q 0, A, ) hvor L(M)=R Definer M = (Q,, q 0, Q-A, ) Derved gælder at L(M )=R (hvorfor?) 84

85 Eksempel M: 1 XA YA (strenge med lige antal 0 er eller ender med 0) 1 XB 0 0 YB M : L(M ) = (L(M)) (strenge med ulige antal 0 er og ender ikke med 0) 1 XA XB YA YB 1 85

86 Øvelser Produktkonstruktion [Martin, Opg. 2.10]

87 Agenda Introduktion Hvad er Regularitet og Automater? Praktiske Oplysninger om Kurset Regulære Udtryk + Øvelser Induktion og Beviser Frokost Endelige Automater + Øvelser Skelnelighed og Produktkonstruktion + Øvelser dregaut-pakken Case Study: Modellering og Verifikation

88 dregaut.regexp Java-repræsentation af regulære udtryk Speciel syntaks: # betyder Ø % betyder Alfabetet angives som en mængde af Unicode-tegn Eksempel: ((a+ )cbc)* skrives som ((a+%)cbc)* 88

89 dregaut Java-pakken Udleverede programdele: FA.java: repræsentation af FA er Alphabet.java State.java StateSymbolPair.java AutomatonNotWellDefinedException.java: hjælpeklasser til FA.java 89

90 FA.java public class FA { public Set<State> states; public Alphabet alphabet; public State initial; public Set<State> accept; public Map<StateSymbolPair,State> transitions; }... // Q // // q 0 Q // A Q // : Q Q et Alphabet objekt indeholder mængde af Character objekter et StateSymbolPair objekt består af et State objekt og et Character objekt 90

91 Nyttige metoder i FA.java FA() - konstruerer uinitialiseret FA objekt FA(Alphabet a) - konstruerer FA for det tomme sprog clone() - kloner et FA objekt checkwelldefined() - undersøger om FA objektet repræsenterer en veldefineret FA getnumberofstates() - returnerer størrelsen af states settransition(state q, char c, State p) - tilføjer en c transition fra q til p todot() - konverterer FA objekt til Graphviz dot input (til grafisk repræsentation) 91

92 Obligatorisk Opgave 1 Detaljer kan ses på hjemmesiden Studér de udleverede programdele Repræsentation af FA er Yderligere udleverede metoder: delta(), deltastar(), complement() Implementér FA-metoder accepts(), intersection(), union(), minus() Opbyg en FA og eksporter den grafisk

93 Agenda Introduktion Hvad er Regularitet og Automater? Praktiske Oplysninger om Kurset Regulære Udtryk + Øvelser Induktion og Beviser Frokost Endelige Automater + Øvelser Skelnelighed og Produktkonstruktion + Øvelser dregaut-pakken Case Study: Modellering og Verifikation

94 Automater til modellering og verifikation Eksempel: en jernbaneoverskæring Tre komponenter: et tog krydser vejen kommunikerer med kontrolsystemet et kontrolsystem styrer bommen en bom Sikkerhedsegenskab: bommen er altid nede, når toget krydser vejen 94

95 Modellering af systemet TOG approach KONTROLSYSTEM approach BOM lower exit cross raise lower raise down exit up 95 Begivenheder: approach: toget nærmer sig cross: toget krydser vejen exit: toget forlader området lower: besked til bommen om at gå ned raise: besked til bommen om at gå op down: bommen går ned up: bommen går op

96 Modellering som FA er Eksempel: lower, raise, down, up approach lower, raise, down, up M TOG = cross, exit exit cross lower, raise, down, up, approach, cross, exit approach, cross lower, raise, down, up approach, exit definer accepttilstande tilføj loop-transitioner så komponenterne får samme alfabet tilføj crash-tilstand og ekstra transitioner så transitionsfunktionen bliver total 96

97 Kombination af komponenterne Vi er interesseret i de sekvenser af begivenheder, der opfylder alle komponenterne Produktkonstruktion: L(M) = L(M TOG ) L(M KONTROL ) L(M BOM ) 97

98 Modellering af sikkerhedsegenskaben bommen er altid nede, når toget krydser vejen up, approach, exit, lower, raise down cross, down, approach, exit, lower, raise S = cross up cross, down, up, approach, exit, lower, raise 98

99 Verifikation Korrekthed: L(M) (L(S)) = Ø dvs. vi skal bruge produktkonstruktion (igen) komplement algoritme til at afgøre om sproget for en given FA er tomt (Seminar 3) hvis L(M) (L(S)) Ø: enhver streng i L(M) (L(S)) svarer til 99 et modeksempel (algoritme: Seminar 3)

100 Verifikation med dregaut-pakken Opbyg FA-objekter svarende til M TOG, M KONTROL, M BOM, og S Kombiner med FA.intersection() og FA.complement() Brug FA.isEmpty() og FA.getAShortestExample() Resultat: modeksempel: approach lower down up cross 100

101 Resumé Introduktion Hvad er Regularitet og Automater? Praktiske Oplysninger om Kurset Regulære Udtryk + Øvelser Induktion og Beviser Frokost Endelige Automater + Øvelser Skelnelighed og Produktkonstruktion dregaut-pakken Case Study: Modellering og Verifikation

102 Løsninger på udvalgte øvelser Martin, Opg. 2.2 e) Sproget bestående af strenge, der udgøres af konkatenationer af delstrengene ab eller ba, dvs. (ab + ba)^*

103 Løsninger på udvalgte øvelser Martin, Opg. 2.3 a) Det kræver 6 tilstande b) Det kræver n+2 tilstande Hvert præfiks af x og en streng af længde n+1 er alle indbyrdes skelnelige

104 Løsninger på udvalgte øvelser Martin, Opg. 3.2 a) aa b) ab c) a d) aba

105 Løsninger på udvalgte øvelser Martin, Opg. 3.7 a) b*ab*ab* b) (a + b)*a(a + b)*a(a + b)* c) + a + b + (a + b)*(aa + ba + bb) d) (aa + bb)(a + b)* + (a + b)*(aa + bb) e) (b + ab)*( + a)

106 Løsninger på udvalgte øvelser Opg. S1.1 a) Sproget bestående af alle strenge med et ulige antal b er b) Sproget bestående af alle strenge af længde 3n eller 3n+1 for et naturligt tal n

107 Løsninger på udvalgte øvelser Opg. S1.2 De 2 første er lovlige. Den sidste har et '%' for meget til sidst. Opg. S1.3 Alle 3 strenge er lovlige (nr. 3 dog kun hvis man ignorerer referencerne til RFC2821 om lovlige domain-navne).

Regulære udtryk og endelige automater

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

Læs mere

Regularitet og Automater

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

Læs mere

1. Seminar EVU RegAut

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

Læs mere

1. Seminar EVU RegAut

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

Læs mere

Regularitet & Automater Eksamensnotater

Regularitet & 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 mere

Regularitet og Automater. Tobias Brixen Q4-2012

Regularitet og Automater. Tobias Brixen Q4-2012 Regularitet og Automater Tobias Brixen Q4-2012 1 Noterne er skrevet med inspiration fra http://cs.au.dk/ illio/courses/dregaut/dregautnoter.pdf Contents 1 Regulære udtryk 3 1.1 RegEx.................................

Læs mere

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

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

Læs mere

Ja! det beviste vi uge 16+17

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

Læs mere

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

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

Læs mere

Skriftlig Eksamen Beregnelighed (DM517)

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

Læs mere

Matematisk induktion

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

Læs mere

Studieordning for diplomuddannelsen i informationsteknologi

Studieordning 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 mere

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

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

Læs mere

Dat 2/BAIT6/SW4: Syntaks og semantik En manual for studerende

Dat 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 mere

01017 Diskret Matematik E12 Alle bokse fra logikdelens slides

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

Læs mere

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

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

Læs mere

Grundlæggende Matematik

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

Læs mere

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

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

Læs mere

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

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

Læs mere

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

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

Læs mere

Bevisteknikker (relevant både ved design og verifikation)

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

Læs mere

Rolf Fagerberg. Forår 2012

Rolf 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 mere

Introduktion til prædikatlogik

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

Læs mere

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

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

Læs mere

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

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

Læs mere

Grundlæggende Matematik

Grundlæ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 mere

Dat 2/F6S/SW4: Syntaks og semantik En manual for studerende

Dat 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 mere

Rolf Fagerberg. Forår 2015

Rolf 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 mere

Introduktion til DM507

Introduktion 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 mere

Nogle grundlæggende begreber

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

Læs mere

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

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

Læs mere

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

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

Læs mere

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

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

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK 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 mere

Ordbog over Symboler

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

Læs mere

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal Aarhus Universitet

Algoritmer 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 mere

Grafer og graf-gennemløb

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

Læs mere

Rolf Fagerberg. Forår 2015

Rolf 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 mere

Baggrundsnote om logiske operatorer

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

Læs mere

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

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

Læs mere

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Algoritmer 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 mere

Dynamisk programmering

Dynamisk 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 mere

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

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

Læs mere

Rolf Fagerberg. Forår 2014

Rolf 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 mere

Diskrete Matematiske Metoder. Jesper Lützen

Diskrete Matematiske Metoder. Jesper Lützen Diskrete Matematiske Metoder Jesper Lützen Juni 2013 ii Indhold Introduktion. ix 0.1 Den aksiomatisk-deduktive metode................. ix 0.2 Diskret matematik; hvad er det?.................. x 1 Tal,

Læs mere

Sproget 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 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 mere

Eksempel på den aksiomatisk deduktive metode

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

Læs mere

Sammenhængskomponenter i grafer

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

Læs mere

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

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

Læs mere

Grafer og graf-gennemløb

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

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2

Læs mere

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528) Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM58) Institut for Matematik & Datalogi Syddansk Universitet Torsdag den 7 Januar 010, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger,

Læs mere

Danmarks Tekniske Universitet

Danmarks 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 mere

Aalborg University. Synopsis. Titel: Traveling Salesman Problem

Aalborg University. Synopsis. Titel: Traveling Salesman Problem Aalborg University Department of Computer Science. Fredrik Bajers Vej 7E, 9220 Aalborg Ø. Titel: Traveling Salesman Problem Projektperiode: 16. maj 2003 til 20. juni 2003 Semester: BOS03 Gruppebetegnelse:

Læs mere

DM02 opgaver ugeseddel 2

DM02 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 mere

3 Algebraisk Specifikation af Abstrakte Datatyper.

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

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Figur: Terminologi: n = V, m = E (eller V og E (mis)bruges som V og E ).

Læs mere

Skriftlig Eksamen Automatteori og Beregnelighed (DM17)

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

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK 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 mere

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

Projekt 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 mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig 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 mere

Funktionel afhængighed

Funktionel afhængighed Databaser, efterår 2002 Funktionel afhængighed Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Oversættere, ugeopgave 3

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

Læs mere

ER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002

ER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002 Databaser, efterår 2002 ER-modellen Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Matematik. 1 Matematiske symboler. Hayati Balo,AAMS. August, 2014

Matematik. 1 Matematiske symboler. Hayati Balo,AAMS. August, 2014 Matematik Hayati Balo,AAMS August, 2014 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 symboler.

Læs mere

Kombinatoriske Spil. Noter til QGM Math Club af Tobias Kildetoft

Kombinatoriske Spil. Noter til QGM Math Club af Tobias Kildetoft Kombinatoriske Spil Noter til QGM Math Club af Tobias Kildetoft 1 Forord Disse noter er i stor grad baseret på bogen Lessons in Play af Michael H. Albert, Richard J. Nowakowski og David Wolfe (fra nu af

Læs mere

6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur

6. 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 mere

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

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

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DTLOS NSTTUT, RUS UNVERSTET Det Naturvidenskabelige akultet ESMEN rundkurser i Datalogi ntal sider i opgavesættet (incl. forsiden): 7 (syv) Eksamensdag: Torsdag den 14. juni 007, kl. 9.00-1.00 Eksamenslokale:

Læs mere

Fejlkorligerende køder Fejlkorrigerende koder

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

Læs mere

Funktionsterminologi

Funktionsterminologi Funktionsterminologi 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

Læs mere

Introduktion. Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3. Philip Bille

Introduktion. Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3. Philip Bille Introduktion Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Philip Bille Introduktion Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Algoritmer

Læs mere

Primtal - hvor mange, hvordan og hvorfor?

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

Læs mere

STUDIEORDNING for Diplomuddannelsen i informationsteknologi under IT-Vest-samarbejdet

STUDIEORDNING for Diplomuddannelsen i informationsteknologi under IT-Vest-samarbejdet STUDIEORDNING for Diplomuddannelsen i informationsteknologi under IT-Vest-samarbejdet Revideret 16.05.2011 Indholdsfortegnelse 1. Indledning 2. Uddannelsens formål 3. Uddannelsens varighed 4. Uddannelsens

Læs mere

Induktive og rekursive definitioner

Induktive og rekursive definitioner Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal

Læs mere

Introduktion. Philip Bille

Introduktion. Philip Bille Introduktion Philip Bille Plan Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Algoritmer og datastrukturer Hvad er det? Algoritmisk problem: præcist defineret relation mellem

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig 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 mere

π er irrationel Frank Nasser 10. december 2011

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

Læs mere

Logik. Helge Elbrønd Jensen og Tom Høholdt Fortolket af Michael Elmegård og Øistein Wind-Willassen.

Logik. Helge Elbrønd Jensen og Tom Høholdt Fortolket af Michael Elmegård og Øistein Wind-Willassen. Logik Helge Elbrønd Jensen og Tom Høholdt Fortolket af Michael Elmegård og Øistein Wind-Willassen. 25. juni 2014 2 Indhold 1 Matematisk Logik 5 1.1 Udsagnslogik.................................... 5 1.2

Læs mere

Martin Geisler. Uge 49, 2001

Martin Geisler. Uge 49, 2001 Min dintprog-browser Martin Geisler Uge 49, 2001 Resumé Dette dokument beskriver tankerne bag min dintprog-browser, en browser skrevet i Java der skal kunne fortolke en mindre delmængde af HTML 4, kaldet

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Tirsdag den 24. juni 2014, kl. 10:00 14:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Italien spørgeskema til seminarielærere / sprog - dataanalyse

Italien spørgeskema til seminarielærere / sprog - dataanalyse Italien spørgeskema til seminarielærere / sprog - dataanalyse Om dig 1. 7 seminarielærere, der under viser i sprog, har besvaret spørgeskemaet 2. 6 undervisere taler engelsk, 6 fransk, 3 spansk, 2 tysk

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

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

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

Læs mere

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave

Læs mere

Ufuldstændighed, mængdelære og beregnelighed

Ufuldstændighed, mængdelære og beregnelighed Ufuldstændighed, mængdelære og beregnelighed Thomas Bolander, DTU Informatik Matematik: Videnskaben om det uendelige Folkeuniversitetet i København, efteråret 2009 Thomas Bolander, FUKBH 09 s. 1/27 Sidste

Læs mere

Hvad er et tal? Dan Saattrup Nielsen

Hvad er et tal? Dan Saattrup Nielsen 12 Det filosofiske hjørne Hvad er et tal? Dan Saattrup Nielsen Det virker måske som et spøjst spørgsmål, men ved nærmere eftertanke virker det som om, at alle vores definitioner af tal refererer til andre

Læs mere

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

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

Læs mere

DATALOGI 1E. Skriftlig eksamen fredag d. 16. januar 2004

DATALOGI 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 mere

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er en unik simpel vej mellem ethvert par af punkter i

Læs mere

Introduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal

Introduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal Philip Bille Algoritmer og datastrukturer Algoritmisk problem. Præcist defineret relation mellem input og output. Algoritme. Metode til at løse et algoritmisk problem. Beskrevet i diskrete og entydige

Læs mere

Noget om en symmetrisk random walks tilbagevenden til udgangspunktet

Noget om en symmetrisk random walks tilbagevenden til udgangspunktet Random Walk-kursus 2014 Jørgen Larsen 14. oktober 2014 Noget om en symmetrisk random walks tilbagevenden til udgangspunktet Dette notat giver et bevis for at en symmetrisk random walk på Z eller Z 2 og

Læs mere

Kommentarer til matematik B-projektet 2015

Kommentarer til matematik B-projektet 2015 Kommentarer til matematik B-projektet 2015 Mandag d. 13/4 udleveres årets eksamensprojekt i matematik B. Dette brev er tænkt som en hjælp til vejledningsprocessen for de lærere, der har elever, som laver

Læs mere

Sproget Rascal (v. 2)

Sproget Rascal (v. 2) Sproget Rascal (v. 2) Til brug i K1 på kurset Oversættere Opdateret 29/11 2004 Abstract Rascal er et simpelt Pascal-lignende imperativt sprog. Dette dokument beskriver uformelt Rascals syntaks og semantik

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Datamatiker Datalog. For studerende startet 2015

Datamatiker Datalog. For studerende startet 2015 Datamatiker Datalog For studerende startet 2015 http://studerende.au.dk/studier/fagportaler/datalogi/studiemiljoe/inf ormationsmoeder/studieorientering-f2015/ 14-08-2015 Datamatiker 2015 1 Datamatiker

Læs mere

Spilstrategier. 1 Vindermængde og tabermængde

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

Læs mere

Basale forudsætninger. Sortering ved fletning med tre bånd, i to faser.

Basale forudsætninger. Sortering ved fletning med tre bånd, i to faser. 25 Sortering III. Basale forudsætninger. Sortering ved fletning med tre bånd, i to faser. Sortering ved fletning, med fire bånd, i én fase (balanceret fletning). Polyfase fletning med tre bånd. Generaliseret

Læs mere

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!

Læs mere