Ja! det beviste vi uge 16+17

Relaterede dokumenter
Regularitet & Automater Eksamensnotater

Regulære udtryk og endelige automater. Ugens emner

Regularitet og Automater. Tobias Brixen Q4-2012

Regulære udtryk og endelige automater

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

Noter til DM517 Beregnelighed

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

1. Seminar EVU RegAut

DM517:Supplerende noter om uafgørlighedsbeviser:

Eksamensopgaver i DM17, Januar 2003

Skriftlig Eksamen Beregnelighed (DM517)

Regularitet og Automater

Seminar 1 Regularitet og Automater 28/1-2012

1. Seminar EVU RegAut

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

Skriftlig Eksamen Automatteori og Beregnelighed (DM17)

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!

Skriftlig Eksamen Beregnelighed (DM517)

Skriftlig Eksamen Beregnelighed (DM517)

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

Oversættere, ugeopgave 3

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

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

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

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

Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed

Bevisteknikker (relevant både ved design og verifikation)

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

83 - Karakterisation af intervaller

Reeksamen i Diskret Matematik

Matematiske metoder - Opgavesæt

Kursusgang Rekursive definitioner. 14. april Mystiske eksempler. Hvad er en rekursiv definition egentlig? Partielle ordninger

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

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

Statistik og Sandsynlighedsregning 2

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

Grundlæggende køretidsanalyse af algoritmer

Indhold 1 Compilerens opbygning 2 Leksikalsk analyse 3 Grammatikker 4 LL-parsing 5 LR-parsing 6 Det abstrakte syntaks-træ 7 Attribut-grammatikker

Eksamen i Diskret Matematik

Eksamen i Diskret Matematik

8 Regulære flader i R 3

Note om endelige legemer

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

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

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

Chomsky hierarkiet af sprogklasser

Datastrukturer (recap)

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)}

1 Program for forelæsningen

Undervisningsbeskrivelse

Danmarks Tekniske Universitet

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

26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.

DM507 Algoritmer og datastrukturer

Matematisk Metode Notesamling

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Nogle grundlæggende begreber

01017 Diskret Matematik E12 Alle bokse fra logikdelens slides

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Taylors formel. Kapitel Klassiske sætninger i en dimension

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Danmarks Tekniske Universitet

Archimedes Princip. Frank Nasser. 12. april 2011

Mordell s Sætning. Henrik Christensen og Michael Pedersen. 17. december 2003

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Skriftlig Eksamen Diskret Matematik (DM528)

Gult Foredrag Om Net

Matematisk induktion

BRP Kursusintroduktion og Java-oversigt

Eksamen i Diskret Matematik

Fordybelsesprojekt Matematik 2, forår 2005 Potensrækker

Sammenhængskomponenter i grafer

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

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

Reeksamen i Diskret Matematik

Datastrukturer (recap)

Danmarks Tekniske Universitet

Noter om primtal. Erik Olsen

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.

Strings and Sets: set complement, union, intersection, etc. set concatenation AB, power of set A n, A, A +

Datastrukturer (recap) Datastruktur = data + operationer herpå

Klasserne af problemer, der kan løses i deterministisk og i ikke-deterministisk polynomiel tid; polynomiel reduktion; N P-fuldstændighed

Introduktion til prædikatlogik

Tirsdag 12. december David Pisinger

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

14 Algoritmeanalyse. Noter. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. Køretid for forskellige kontrolstrukturer.

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

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

Ensidet eller tosidet alternativ. Hypoteser. tosidet alternativ. nul hypotese testes mod en alternativ hypotese

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

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

Netværksalgoritmer 1

Danmarks Tekniske Universitet

Transkript:

Ugens emner Lukketheds- og afgørlighedsegenskaber [5.3-5.5] lukkethed under,,,, * lukkethed under homomorfi og invers homomorfi pumping -lemmaet beslutningsproblemer: membership, emptiness, finiteness subset, equality beslutningsprocedurer i Java-pakken Kontekstfri grammatikker [6.1-6.2] definition af kontekstfri sprog eksempler Lukkethedsegenskaber Givet to regulære sprog, L 1 og L 2, er L 1 L 2 regulært? er L 1 L 2 regulært? er L 1 regulært? er L 1 L 2 regulært? er L 1 * regulært? Ja! det beviste vi uge 16+17 betyder komplement som i bogen... 1 2 En kontraponering Homomorfier [Martin, opg.4.46] Lukkethedsegenskaber kan bl.a. bruges til at vise, at visse sprog er ikke-regulære Eksempel: Klassen af regulære sprog er lukket under Antag vi har bevist, at sproget S ikke er regulært Hvis S = P R og R er regulært, så kan P ikke være regulært Antag g: Σ 1 Σ 2 * hvor Σ 1 og Σ 2 er alfabeter Definer h: Σ 1 * Σ 2 *ved Λ hvis x=λ h(x) = h(y)g(a) hvis x=ya, y Σ 1 *, a Σ 1 h opfylder at h(xy)=h(x)h(y) og kaldes en homomorfi Definer h(l) = { h(x) x L } for alle L Σ 1 * og h -1 (L) = { x h(x) L } for alle L Σ 2 * 3 4

Eksempel Regulære sprog og homomorfier Σ 1 ={0,1}, Σ 2 ={a,b} Lad g: Σ 1 Σ 2 * være defineret ved g(0)=ab g(1)=λ Lad h: Σ 1 * Σ 2 * være homomorfien defineret fra g Der gælder f.eks.: h(0011) = ababλλ = abab h({1}{0}*{1}) = {Λ}{ab}*{Λ} = {ab}* h -1 ({ab}*) = {0,1}* Hvis h: Σ 1 * Σ 2 * er en homomorfi og L Σ 1 * er et regulært sprog, så er h(l) også regulært Hvis h: Σ 1 * Σ 2 * er en homomorfi og L Σ 2 * er et regulært sprog, så er h -1 (L) også regulært Dvs. klassen af regulære sprog er lukket under både homomorfi og invers homomorfi 5 6 Eksempel på anvendelse Er følgende sprog over alfabetet Σ={0,1,2} regulært? L = { x2y y=reverse(x), x,y {0,1}* } Vi ved (fra uge 15) at sproget pal = { x {0,1}* x=reverse(x) } ikke er regulært En (utilstrækkelig) intuition: L minder om pal, men måske symbolet 2, der markerer midten af strengen, gør, at vi kan lave en FA for L? Eksempel, fortsat Definer tre funktioner g 1,g 2,g 3 : {0,1,2} {0,1}* ved g 1 (0)=0 g 2 (0)=0 g 3 (0)=0 g 1 (1)=1 g 2 (1)=1 g 3 (1)=1 g 1 (2)=Λ g 2 (2)=0 g 3 (2)=1 og lad h 1,h 2,h 3 være de tilhørende homomorfier h 1 (L) h 2 (L) h 3 (L) = pal så L er ikke regulært, idet pal ikke er regulært og klassen af regulære sprog er lukket under forening og homomorfi 7 8

Bevis, del 1 Bevis, del 2 Hvis h: Σ 1 * Σ 2 * er en homomorfi og L Σ 1 * er et regulært sprog, så er h(l) også regulært Hvis h: Σ 1 * Σ 2 * er en homomorfi og L Σ 2 * er et regulært sprog, så er h -1 (L) også regulært Bevis: strukturel induktion i regulære udtryk... (erstat hver a Σ 1 i udtrykket med h(a)) Bevis: Givet en FA M=(Q, Σ 2, q 0, A, δ) hvor L(M)=L, definer en ny FA M =(Q, Σ 1, q 0, A, δ ) ved δ (q, a) = δ*(q, h(a)) Påstand: L(M ) = h -1 (L) (bevises ved induktion) 9 10 Endnu en egenskab ved regulære sprog Pumping -lemmaet for regulære sprog Antag M=(Q, Σ, q 0, A, δ) er en FA og x L(M): x Q Ved en kørsel af x på M vil mindst én af tilstandene blive besøgt mere end én gang q 0 u v Hvis vi betragter den første af disse tilstande kan vi konkludere: u,v,w Σ*: x=uvw uv Q v >0 δ*(q 0, u)=δ*(q 0, uv) w x = uvw 11 Hvis L er et regulært sprog, så gælder flg.: n>0: x L hvor x n: u,v,w Σ*: x=uvw uv n v >0 m 0: uv m w L Bevis: vælg n som antal tilstande i en FA, der genkender L, og kør m gange rundt i løkken... 12

Pumping-lemmaet og ikke-regulære sprog Hvis n>0: x L hvor x n: u,v,w Σ* hvor x=uvw, uv n og v >0: m 0: uv m w L så er L ikke regulært Bevis: kontraponering af pumping-lemmaet Pumping-lemmaet som kvantor-spil Antag vi prøver at vise, at L er ikke-regulært Vi skal vise noget på form n...: x...: u,v,w...: m...:... Fjenden vil prøve at modarbejde os 1. Fjenden vælger n 2. Vi vælger x (efter reglerne, dvs. så x L og x n) 3. Fjenden vælger u,v,w (efter reglerne...) 4. Vi vælger m Hvis vi uanset fjendens valg kan opnå at uv m w L, så har vi vundet, dvs. bevist at L er ikke-regulært 13 14 Eksempel 1 Eksempel 2 Lad L = { 0 i 1 i i 0 } Vi vil vise vha. pumping-lemmaet at L ikke er regulært Fjenden vælger et n>0 Vi vælger x=0 n 1 n som opfylder x L og x n Fjenden vælger u,v,w så x=uvw, uv n og v >0 Vi vælger m=2 Da x=uvw=0 n 1 n, uv n og v >0sågælder at v=0 k for et k>0 dvs. uv m w = uv 2 w = 0 n+k 1 n L så L er ikke regulært Lad pal = { x {0,1}* x=reverse(x) } (som uge 15) Vi vil vise vha. pumping-lemmaet at pal ikke er regulært Fjenden vælger et n>0 Vi vælger x=0 n 10 n som opfylder x pal og x n Fjenden vælger u,v,w så x=uvw, uv n og v >0 Vi vælger m=2 Da x=uvw=0 n 10 n, uv n og v >0 så gælder at v=0 k for et k>0 dvs. uv m w = uv 2 w = 0 n+k 10 n pal så pal er ikke regulært 15 16

Eksempel 3 Lad L = { 0 i i er et primtal } Vi vil vise vha. pumping-lemmaet at L ikke er regulært Mere om pumping-lemmaet Pumping-lemmaet kan ikke bruges til at vise, at et givet regulært sprog er regulært Fjenden vælger et n>0 Vi vælger x = 0 p hvor p er et primtal større end n+1 Fjenden vælger u,v,w så x=uvw, uv n og v >0 Vi vælger m=p-k hvor k= v uv m w = uv p-k w = uw + (p-k) v = p-k + (p-k) k = (k+1) (p-k) og begge disse led er >1, dvs. uv m w er ikke et primtal så L er ikke regulært Eksempel: L = { a i b j c j i 1 og j 0 } { b j c k j,k 0 } L er ikke regulært, men L har pumping-egenskaben (dvs. n...: x...: u,v,w...: m 0: uv m w L) 17 18 Beslutningsproblemer Membership-problemet Membership: Givet en FA M og en streng x, tilhører x sproget af M? Emptiness: Givet en FA M, er sproget for M tomt? Finiteness: Givet en FA M, er sproget for M endeligt? Subset: Givet to FA er, M 1 og M 2, er sproget for M 1 en delmængde af sproget for M 2? Givet en FA M og en streng x, tilhører x sproget af M? (Dvs. er x L(M)?) Algoritme: Kør x på M, startende i starttilstanden, og se om den ender i en accepttilstand Equality: Givet to FA er, M 1 og M 2, er sprogene for M 1 og M 2 ens? alle disse problemer er afgørlige! 19 20

Emptiness-problemet Givet en FA M, er sproget for M tomt? (Dvs. er L(M)=Ø?) Algoritme 1: Afprøv for alle x Σ* om x L(M) ved hjælp af algoritmen fra membership-problemet Algoritme 1: Afprøv for alle x hvor x < Q om x L(M) ved hjælp af algoritmen fra membership-problemet en reduktion til membership-problemet Algoritme 2: Undersøg om der findes en accepttilstand (se uge 17) Algoritme 2: Undersøg om der findes en accepttilstand, som er opnåelig fra starttilstanden (se uge 17) 21 Finiteness-problemet Givet en FA M, er sproget for M endeligt? (Dvs. er L(M) en endelig mængde?) Algoritme 1: Afprøv for alle x hvor Q x < 2 Q om x L(M) ved hjælp af algoritmen fra membership-problemet L(M) er endeligt hvis og kun hvis der ikke eksisterer en sådan streng (Bevis for korrekthed: se bogen...) Algoritme 2: Ide: Udnyt at L(M) er uendeligt hvis og kun hvis der i M eksisterer en cykel, der kan nås fra starttilstanden, og som kan nå til en accepttilstand 22 Subset-problemet Givet to FA er, M 1 og M 2, er sproget for M 1 en delmængde af sproget for M 2? (Dvs. er L(M 1 ) L(M 2 )?) Equality-problemet Givet to FA er, M 1 og M 2, er sprogene for M 1 og M 2 ens? (Dvs. er L(M 1 )=L(M 2 )?) Algoritme: Lav med produktkonstruktionen en FA M 3 som opfylder L(M 3 ) = L(M 1 ) - L(M 2 ) og afgør med en algoritme til emptiness-problemet om L(M 3 )=Ø Algoritme: Afgør med algoritmen til subset-problemet om L(M 1 ) L(M 2 ) og L(M 2 ) L(M 1 ) (Bevis for korrekthed: L(M 1 ) L(M 2 ) L(M 1 ) - L(M 2 ) = Ø) 23 24

dregaut Java-pakken FA.accepts(String) FA.isEmpty() FA.isFinite() FA.subsetOf(FA) FA.equals(FA) beslutningsprocedurer for de nævnte beslutningsproblemer FA.getAShortestExample() finder en korteste sti fra starttilstanden til en accepttilstand (hvis sproget er ikke-tomt) 25 getashortestexample String getashortestexample() { pending = [ q 0 ] // queue of states that need to be visited paths = [ ] // paths[i ] is a shortest path from q 0 to pending[i ] visited = { q 0 } // set of states that have been visited while pending Ø do q = pending.removefirst() bredde-først gennemløb af automaten path = paths.removefirst() if q A then return path else for each c Σ do p = δ(q, c) if p visited pending.addtoend(p) paths.addtoend(path++c) visited = visited {p} return null // return null if no accept state is found } 26 Status Regulære udtryk og endelige automater Kontekstfri grammatikker Eksempel: Kontekstfri grammatikker sentence subject verb object subject person person Morten Ole Henrik verb spurgte sparkede object thing person thing fodbolden computeren [Chomsky, 1956] 27 Nonterminal-symboler: sentence, subject, person, verb, object, thing Terminal-symboler: Morten, Ole, Henrik, spurgte, sparkede, fodbolden, computeren Start-symbol: sentence Eksempel på derivation: sentence subject verb object... Ole spurgte computeren 28

Formel definition af CFG er En kontekstfri grammatik (CFG) er et 4-tupel G = (V, Σ, S, P) hvor V er en endelig mængde af nonterminal-symboler Σ er et alfabet af terminal-symboler og V Σ= Ø S V er et start-symbol P er en endelig mængde af produktioner på form A α hvor A V og α (V Σ)* Derivationer repræsenterer ét derivations-trin, hvor en nonterminal erstattes ifølge en produktion dvs. er en relation over mængden (V Σ)* Hvis α 1,α 2 (V Σ)* og (A γ) P (dvs. grammatikken indeholder produktionen A γ) så gælder α 1 Aα 2 α 1 γα 2 ( er i denne sammenhæng ikke et logisk medfører tegn) 29 30 Sproget af en kontekstfri grammatik Definer relationen * som den refleksive transitive lukning af, dvs. α * β hvis og kun hvis α...... β Sproget af G defineres som L(G) = { x Σ* S * x } 0 eller flere derivationstrin Eksempel 1 Sproget A = { a n b n n 0 } kan beskrives af en CFG G=(V,Σ,S,P) hvor V = {S} Σ = {a,b} P = {S asb, S Λ} alternativ notation: S asb Λ Et sprog L Σ* er kontekstfrit hvis og kun hvis der findes en CFG G hvor L(G)=L 31 dvs. L(G) = A (bevis følger...) 32

Bevis for korrekthed Påstand: L(G) = A Bevisskitse: (udnyt at x L(G) S * x) L(G) A: givet x hvor x L(G), lav induktion i antal derivationsskridt i S * x A L(G): givet x hvor x A, lav induktion i længden af x Eksempel 2 Sproget pal = { x {0,1}* x=reverse(x) } kan beskrives af en CFG G=(V,Σ,S,P) hvor V = {S} Σ = {0,1} P = {S Λ, S 0, S 1, S 0S0, S 1S1} alternativ notation: S Λ 0 1 0S0 1S1 33 34 Hvorfor navnet kontekstfri? Anvendelser af kontekstfri grammatikker α 1 Aα 2 α 1 γα 2 hvis grammatikken indeholder produktionen A γ dvs. γ kan substituere A uafhængigt af konteksten (α 1 og α 2 ) Praktisk: til beskrivelse af syntaks for programmeringssprog (ofte med BNF-notationen) Teoretisk: som karakteristik af en vigtig klasse af formelle sprog 35 36

En kontekstfri grammatik for Java Klasser af formelle sprog klassen af alle sprog (over et givet alfabet) de rekursivt numerable sprog (svarer til Turing-maskiner) http://www.daimi.au.dk/dregaut/javabnf.html de regulære sprog En tekst er et syntaktisk korrekt Java-program hvis den kan deriveres af denne grammatik de endelige sprog de kontekstfri sprog 37 38 Resume Opgaver Regulære sprog: lukkethed under,,,, *, homomorfi og invers homomorfi pumping -lemmaet beslutningsproblemer: membership, emptiness, finiteness, subset, equality Kontekstfri grammatikker: definition af kontekstfri grammatikker og sprog 39 [Martin]: Anvend pumping-lemmaet Lukkethedsegenskaber Flere beslutningsproblemer Kontekstfri grammatikker Java: Studér udleverede programdele: isfinite, equals Implementér FA metoder: isempty,subsetof, getashortestexample Oversæt regulært udtryk til automat, tilbage til regulært udtryk, tilbage til automat, og sammenlign de to automater Gæt-et-regulært-udtryk spillet Pumping-spillet Ugens finurlige opgave: Endelige automater og multiplikation af binære tal Afleveringsopgave: Anvend pumping-lemmaet 40