Föreläsning 2 5/6/08. Reguljära uttryck 1. Reguljära uttryck. Konkatenering och Kleene star. Några operationer på språk

Relevanta dokument
Alfabeten, strängar och språk. String

Idag: Reguljära språk Beskrivs av Reguljära uttryck DFA Grammatik

10. Mängder och språk

DAB760: Språk och logik

b) S Ø aa, A Ø aa» bb, B Ø aa» bc, C Ø ac» bc» 2. Låt L vara språket över 8a< som nedanstående NFA accepterar.

Föreläsning 7: Syntaxanalys

Reguljära uttryck Grammatiker Rekursiv nedåkning Allmänna kontextfria grammatiker. Syntaxanalys. Douglas Wikström KTH Stockholm

Definition. Mängden av reguljära uttryck på alfabetet Σ definieras av. om α och β är reguljära uttryck så är (α β) ett reguljärt uttryck

Grundläggande textanalys, VT2012

Automater. Matematik för språkteknologer. Mattias Nilsson

11. Reguljära uttryck och grammatiker

Programmering för språkteknologer II. OH-serie: Ändliga automater. reguljära uttryck i Java. Deterministiska ändliga automater

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin

PROV I MATEMATIK Automatateori och formella språk DV1 4p

MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP

Labb 1 - Textbearbetning med reguljära uttryck. Formella språk. Definitioner. Chomskyhierarkin. Formella språk. Formella språk

Begreppen "mängd" och "element" är grundläggande begrepp i matematiken.

Matematik för språkteknologer


TDDD02 Föreläsning 2 HT Reguljära uttryck och reguljära språk Lars Ahrenberg

11. Reguljära uttryck och grammatiker

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin

729G09 Språkvetenskaplig databehandling

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Mängder och kardinalitet

PCP-satsen på kombinatoriskt manér

Datorlingvistisk grammatik

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Block 1 - Mängder och tal

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik

REGULJÄRA SPRÅK (8p + 6p) 1. DFA och reguljära uttryck (6 p) Problem. För följande NFA över alfabetet {0,1}:

Uppsala universitet Institutionen för lingvistik och filologi. Grundbegrepp: Mängder och element Delmängder

Begreppen "mängd" och "element" är grundläggande begrepp i matematiken.

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Grundläggande datalogi - Övning 9

Objektorienterad modellering och diskreta strukturer. 13. Problem. Sven Gestegård Robertz. Datavetenskap, LTH

ÄNDLIGT OCH OÄNDLIGT AVSNITT 4

Uppgifter i TDDC75: Diskreta strukturer Kapitel 8 Ordning och oändlighet

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

PASS 2. POTENSRÄKNING. 2.1 Definition av en potens

Erfarenheter från labben

Automatateori (2) Idag: Sammanhangsfria språk. Dessa kan uttryckas med Grammatik PDA

Föreläsning 4 Programmeringsteknik och Matlab DD1312. Logiska operatorer. Listor. Listor, tupler, strängar och forslingor

Föreläsning 1: Tal, mängder och slutledningar

KTHs Matematiska Cirkel. Reella tal. Joakim Arnlind Tomas Ekholm Andreas Enblom

Konstruktion av datorspråk

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 3 Jody Foo,

Block 1 - Mängder och tal

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Diskret matematik: Övningstentamen 1

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Peanos axiomsystem för de naturliga talen

Kontextfria grammatiker

Komplexa tal: Begrepp och definitioner

Föreläsning 5: Kardinalitet. Funktioners tillväxt

Matematiska grunder för Artificiellt Medvetande

Metriska rum, R och p-adiska tal

I kursen i endimensionell analys är mängden av reella tal (eng. real number), R, fundamental.

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar

Beräkningsvetenskap föreläsning 2

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Np MaB vt Låt k = 0 och rita upp de båda linjerna. Bestäm skärningspunkten mellan linjerna.

SF1901: SANNOLIKHETSTEORI OCH KONTINUERLIGA STOKASTISKA VARIABLER STATISTIK. Tatjana Pavlenko. 7 september 2016

Lite mer psykologi. L2: Automater, Sökstrategier. Top-down. Kimballs sju principer

ANDREAS REJBRAND NV3ANV Matematik Matematiskt språk

Föreläsning 7: Syntaxanalys

Algebra och kombinatorik 28/4 och 5/ Föreläsning 9 och 10

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002

Algebra och kombinatorik 10/ Föreläsning 4. Låt X vara en ändlig mängd. En permutation av X är en bijektiv funktion X X. Sats: S n =n!

också en lösning: Alla lösningar, i detta fall, ges av

Matematiska uppgifter

(N) och mängden av heltal (Z); objekten i en mängd behöver dock inte vara tal. De objekt som ingår i en mängd kallas för mängdens element.

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin

AUBER 95 9 jan LÖSNINGAR STEG 1:

Mer om språk och Ruby

Programmering II (ID1019) :00-11:00

Euklides algoritm för polynom

Moment Viktiga exempel Övningsuppgifter

System av Autonoma Agenter

Om ortonormerade baser i oändligtdimensionella rum

Binomialtal. Olof Bergvall. Algebra och Kombinatorik Stockholms Universitet 1 / 13

Om ordinaltal och kardinaltal

Övning 5 - Tillämpad datalogi 2013

Filosofisk logik Kapitel 15 (forts.) Robin Stenwall Lunds universitet

TATM79: Föreläsning 6 Logaritmer och exponentialfunktioner

13. CHURCH S OCH GÖDELS SATSER. KORT ORIENTERING OM BERÄKNINGSBARHET, EFFEKTIV UPPRÄKNELIGHET OCH AVGÖRBARHET.

Träd och koder. Anders Björner KTH

Hemuppgifter till fredagen den 16 september Exercises to Friday, September 16

Föreläsning 9: Talteori

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Programmering II (ID1019) :00-11:00

FULLSTäNDIGHETSAXIOMET, SATSEN OM MELLANLIGGANDE VäRDE OCH SATSEN OM STöRSTA OCH MINSTA VäRDE

LÖSNINGSFÖRSLAG TENTAMEN PROGRAMMERING I ETT FUNKTIONELLT SPRÅK ML, 5P

Numerisk Analys, MMG410. Exercises 2. 1/33

Transkript:

Reguljära uttryck Ändliga automater och reguljära uttryck Språk som är och inte är reguljära Konkatenering och Kleene star Två strängar u och v (på alfabetet )kan konkateneras till strängen uv Givet två språk L 1 och L 2 kan man bilda det konkatenerade språket L 1 L 2 : L 1 L 2 = {uv : u L 1 och v L 2 } L 2 = LL; L 3 = LLL; L 4 = LLLL; L 1 = L; L 0 = {e}: Givet ett språk L kan man bilda Kleene star L* L* = {e} L L 2 L 3 med andra ord språket som består av alla konkateneringar av alla längder av ord i L (+ e) (Notera: * är mängden av alla strängar som kan bildas av alfabetet ) 5/6/08 Reguljära uttryck 2 Några operationer på språk Givet att L och M är språk (på alfabetet ) kan vi bilda L M L M L - M * - L (komplementet till L) LM L* 5/6/08 Reguljära uttryck 3 Reguljära uttryck 1

Introduktion till reguljära uttryck Man har ett behov av att klassificera strängar av olika slag Man vill också uttrycka en klass eller mängd strängar på ett så kortfattat sätt som möjligt En sådan klass eller mängd kan sägas utgöra ett språk, t ex ett naturligt språk eller ett programspråk Vi ska titta på den enklaste formen av språk, de språk som beskrivs med så kallade reguljära uttryck (regular expression, RE) 5/6/08 Reguljära uttryck 4 Reguljära uttryck specificerar språk Def. reguljära uttryck: givet ett alfabet Ø, e och varje a är ett reguljärt uttryck (grundelement) om α och β är reguljära uttryck är även (α β), (αβ) och α* reguljära uttryck ingen annan sträng över alfabetet är ett reguljärt uttryck Varje reguljärt uttryck α specificerar ett språk L(α) L(Ø) = Ø, L(e) = {e}, L(a) = {a}, för varje a om α och β är reguljära uttryck så är L(α β) = L(α) L(β) L((αβ)) = L(α)L(β) L(α*) = (L(α))* 5/6/08 Reguljära uttryck 5 Exempel på RE Hur kan man beskriva strängar i ett språk med ett reguljärt uttryck? Exempel 1: ett språk vars strängar byggs upp av alfabetet {a,b} och innehåller minst ett a: (a b)*a(a b)* t ex: baaaba, a, ab Exempel 2: ett språk vars strängar byggs upp av alfabetet {a,b} : ((ab) (ba))* t ex: abababba, abbaab 5/6/08 Reguljära uttryck 6 Reguljära uttryck 2

Att koppla RE till DFA Vi tittar på det reguljära uttrycket ((ab) (ba))* Vi får tillståndsdiagrammet q0 a b b a q1 q2 5/6/08 Reguljära uttryck 7 FA och reguljära språk Vi tittar alltså på språk (dvs en viss kategori av textsträngar) och hur de hör ihop med automater Först har vi den klass av språk som accepteras av ändliga automater Det visar sig vara precis klassen av reguljära språk, dvs. språk som kan beskrivas av reguljära uttryck 5/6/08 Reguljära uttryck 8 Slutning eller hölje (closure) Klassen av språk som accepteras av FA sägs vara sluten under ett antal operationer, vad innebär det? En mängd är sluten under en viss operation om resultatet av operationen också är element i mängden; t ex är mängden heltal sluten under subtraktion Att mängden av reguljära språk är sluten under en rad operationer innebär alltså att resultatspråket (dvs det språk som blir resultatet av att använda en operation) också tillhör klassen reguljära språk 5/6/08 Reguljära uttryck 9 Reguljära uttryck 3

Mängden reguljära språk är sluten under följande operationer Utgångsläget är L och M, två reguljära språk Union - L M, dvs strängar från L eller strängar från M Snitt (intersection) - de strängar som L och M har gemensamt bildar det reguljära språket L M Komplement - alla strängar som inte hör till L bildar godkända strängar i det reguljära språket L Konkatenering - strängar från L hopslagna med strängar från M bildar strängar i ett språk som också är reguljärt Kleene star - obegränsade upprepningar av godkända strängar i L bildar godkända strängar i det reguljära språket L* 5/6/08 Reguljära uttryck 10 Icke reguljära språk Ett språk är reguljärt omm det accepteras av en FA. Alla ändliga språk är reguljära Många oändliga språk är reguljära men inte alla Ex med Σ = {0,1}: A = {0 n 1 n : n 0} B = {w: w har lika många 0 och 1} C = {w: w har lika många delsträngar 01 och 10} Ovanstående kan inte uttryckas med reguljära uttryck, kan inte accepteras av någon FA, för det krävs någon sorts minne som kommer ihåg obegränsat antal nollor respektive ettor (men en FA har ju bara ett fixt, ändligt antal tillstånd) 5/6/08 Reguljära uttryck 11 Pumping lemma Vad är det som gör att reguljära språk kan vara oändliga? (Intuitivt: förekomsten av en loop i motsvarande automat; förekomst av Kleene star i motsvarande reguljära uttryck) Pumping lemma. Alla reguljära språk har följande egenskap: alla strängar i språket kan "pumpas" om de är minst så långa som ett speciellt värde, "pumplängden". Dvs varje sträng har en sektion som kan upprepas hur många gånger som helst, och resulterande sträng tillhör fortfarande språket 5/6/08 Reguljära uttryck 12 Reguljära uttryck 4

Pumping lemma, formellt Om L är ett reguljärt språk, finns ett tal n sådant att om w är någon sträng vilken som helst i L med längd n, så kan w delas i tre delar (konkatenerade), w = xyz, där y > 0 xy n för varje i 0, xy i z L Kan bevisas med något som kallas pigeonholeprincipen (överkurs) Icke-reguljära språk kan ändå formaliseras, men på andra sätt 5/6/08 Reguljära uttryck 13 Reguljära uttryck 5