Finita automater, reguljära uttryck och prefixträd. Upplägg. Finita automater. Finita automater. Olika finita automater.



Relevanta dokument
6 Formella språk. Matematik för språkteknologer (5LN445) UPPSALA UNIVERSITET

Listor = generaliserade strängar. Introduktion till programmering SMD180. Föreläsning 8: Listor. Fler listor. Listindexering.

Programmering för språkteknologer II, HT2014. Rum

Tentamen Programmeringsteknik II Skrivtid: Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper.

AUBER 95 9 jan LÖSNINGAR STEG 1:

Grundläggande textanalys, VT2012

1. (6p) (a) Använd delmängdskonstruktionen för att tillverka en DFA ekvivalent med nedanstående NFA. (b) Är den resulterande DFA:n minimal? A a b.

PASS 1. RÄKNEOPERATIONER MED DECIMALTAL OCH BRÅKTAL

FORMELLA SPRÅK, AUTOMATER OCH BERÄKNINGSTEORI ÖVNINGSUPPGIFTER PÅ REGULJÄRA SPRÅK

Associativa lagen för multiplikation: (ab)c = a(bc). Kommutativa lagen för multiplikation: ab = ba.

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Sidor i boken

Trigonometri. 2 Godtyckliga trianglar och enhetscirkeln 2. 3 Triangelsatserna Areasatsen Sinussatsen Kosinussatsen...

Finaltävling den 20 november 2010

definitioner och begrepp

Materiens Struktur. Lösningar

Matris invers, invers linjär transformation.

Mat Grundkurs i matematik 1, del III

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 5-7.

GEOMETRISKA VEKTORER Vektorer i rummet.

SF1625 Envariabelanalys

Föreläsning 3: Strängmatchning


9. Vektorrum (linjära rum)

SF1625 Envariabelanalys

Belöningsbaserad inlärning. Reinforcement Learning. Inlärningssituationen Belöningens roll Förenklande antaganden Centrala begrepp

Nya regler för plåtbalkar-eurokod 3-1-5

Internetförsäljning av graviditetstester

Föreläsning 7. Splay-träd. Prioritetsköer och heapar. Union/Find TDDC70/91: DALG. Innehåll. Innehåll. 1 Splay-träd

Bokstavsräkning. Regler och knep vid bokstavsräkning

x = x = x = x=3 x=5 x=6 42 = 10x x + 10 = 15 x = = 20 x = 65 x + 36 = 46

Rationella uttryck. Förlängning och förkortning

Addition och subtraktion

Operativsystemets uppgifter. Föreläsning 6 Operativsystem. Skydd, allmänt. Operativsystem, historik

Råd och hjälpmedel vid teledokumentation

GEOMETRISKA VEKTORER Vektorer i rummet.

Lexikon och lexikonorganisation. Lexikal information. Reguljära uttryck i implementeringar. Reguljära uttryck. Olika sätt att definiera strängmängder

Tillämpning - Ray Tracing och Bézier Ytor. TANA09 Föreläsning 3. Icke-Linjära Ekvationer. Ekvationslösning. Tillämpning.

INNEHALL t.3

MEDIA PRO. Introduktion BYGG DIN EGEN PC

Lödda värmeväxlare, XB

Kvalificeringstävling den 2 oktober 2007

TATA42: Föreläsning 4 Generaliserade integraler

Uppgiftssamling 5B1493, lektionerna 1 6. Lektion 1

Skriv tydligt! Uppgift 1 (5p)

Ett förspel till Z -transformen Fibonaccitalen

TATA42: Föreläsning 4 Generaliserade integraler

Långtidssjukskrivna. diagnos, yrke, partiell sjukskrivning och återgång i arbete. En jämförelse mellan 2002 och 2003 REDOVISAR 2004:7.

Oleopass Bypass-oljeavskiljare av betong för markförläggning

MATEMATISK STATISTIK I FORTSÄTTNINGSKURS. Tentamen måndagen den 17 oktober 2016 kl 8 12

Lösningsförslag till tentamen i SF1683 och SF1629 (del 1) 23 oktober 2017

Grundläggande matematisk statistik

LINJÄR ALGEBRA II LEKTION 1

Sfärisk trigonometri

Analys o 3D Linjär algebra. Lektion 16.. p.1/53

19 Integralkurvor, potentialer och kurvintegraler i R 2 och R 3

Kylfrysguide [Namn] Elektroskandia Sverige AB [år-månad-dag]

Kallelse till årsstämma i Samfälligheten Askträdet

Diskreta stokastiska variabler

14. MINSTAKVADRATMETODEN

Tentamen i Databasteknik

Kan det vara möjligt att med endast

9. Bestämda integraler

Tommy Färnqvist, IDA, Linköpings universitet. 2 Hashtabeller Kollisionshantering Att välja hashfunktion... 10

> VD har ordet: Frösunda satsar på anhörigfrågorna > Frösunda främjar kvinnors företagande i Indien > 5 frågor: Sofia Hägg-Jegebäck

1 e x2. lim. x ln(1 + x) lim. 1 (1 x 2 + O(x 4 )) = lim. x 0 x 2 /2 + O(x 3 ) x 2 + O(x 4 ) = lim. 1 + O(x 2 ) = lim = x = arctan x 1

CD5560 FORMELLA SPRÅK, AUTOMATER, OCH BERÄKNINGSTEORI, 5 p 10 AUGUSTI 2007 LÖSNINGAR

Tentamen i ETE115 Ellära och elektronik, 4/1 2017

Integralen. f(x) dx exakt utan man får nöja sig med att beräkna

Kontrollskrivning 3 till Diskret Matematik SF1610, för CINTE1, vt 2019 Examinator: Armin Halilovic Datum: 2 maj

Analys grundkurs B lab 1. Stefan Gustafsson Per Jönsson Fakulteten för Teknik och Samhälle, 2013

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

ORTONORMERAT KOORDINAT SYSTEM. LÄNGDEN AV EN VEKTOR. AVSTÅND MELLEN TVÅ PUNKTER. MITTPUNKT. TYNGDPUNKT. SFÄR OCH KLOT.

MATEMATISKT INNEHÅLL UPPGIFT METOD. Omvandla mellan olika längdenheter. METOD BEGREPP RESONEMANG. Ta reda på omkrets. 5 Vilken omkretsen har figuren?

DAB760: Språk och logik

Matematiska uppgifter

XIV. Elektriska strömmar

Exponentiella förändringar

13 Generaliserade dubbelintegraler

Komplexa tal. j 2 = 1

Skapa uppmärksamhet och få fler besökare till din monter!

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

Svar till uppgifter 42 SF1602 Di. Int.

Monteringsanvisning. Bakåtvänd montering. Godkänd höjd cm. Maximal vikt 18 kg. UN regulation no. R129 i-size. Ålder 6 mån - 4 år. 1 a.

SIGNALER OCH SYSTEM II LEKTION 2 / MATEMATISK LEKTION 1. Fredrik Andréasson. Department of Mathematics, KTH

Induktion LCB 2000/2001

TENTAMEN. Matematik för basår I. Massimiliano Colarieti-Tosti, Niclas Hjelm & Philip Köck :00-12:00

ξ = reaktionsomsättning eller reaktionsmängd, enhet mol.

Byt till den tjocka linsen och bestäm dess brännvidd.

Integraler. 1 Inledning. 2 Beräkningsmetoder. CTH/GU LABORATION 2 MVE /2013 Matematiska vetenskaper

Föreläsning 7: Trigonometri

Läsanvisningar för MATEMATIK I, ANALYS

Uppsala Universitet Matematiska Institutionen T Erlandsson

abbcba a) A regular expression over

Repetitionsuppgifter i matematik

GENETIK. en introduktion av Ingela Carlén 1988 och 1999

Vilken rät linje passar bäst till givna datapunkter?

Reklamplatser som drar till sig uppmärksamhet och besökare till din monter på Nordbygg.

Enhetsvektorer. Basvektorer i två dimensioner: Basvektorer i tre dimensioner: = i. Enhetsvektor i riktningen v: v v. Definition: Vektorprodukt

Volum av rotationskroppar. Båglängd, rotationsytor. Adams 7.1, 7.2, 7.3

Transkript:

Finit utomter, reguljär uttryck och prefixträd Algoritmer och Dtstrukturer Mrkus Sers mrkus.sers@lingfil.uu.se Upplägg Finit utomter Implementtion Reguljär uttryck Användningr i Jv Alterntiv till inär sökträd för strängr Klls oft trie Finit utomter Består v: en mängd tillstånd (K) en mängd symoler (Σ) ett strttillstånd (q 0 ) en mängd giltig vslutningstillstånd (F) en mängd övergångr (δ) Funktion: K Σ K Finit utomter K = {,, } Σ = {, } q 0 = δ = {<, >=, <, >=, <, >=} F = {} Olik finit utomter Indeterministisk Tillåter epsilonövergångr Tillåter tt δ är en reltion Fler måltillstånd för vrje tillstånd symol-pr Kn determinisers mskinellt Deterministisk Tillåter ing epsilonövergångr Tvingr δ tt vr en funktion I ll prktisk hänseenden kn mn etrkt finit utomter som deterministisk Finit utomter Beskriver reguljär språk Vrje finit utomt motsvrr ett reguljärt språk Om mn driver en utomt med en sträng hmnr mn i ett giltigt vslutningstillstånd om strängen ingår i det reguljär språk utomten eskriver Mn kn etrkt strängr som en slgs drivmedel för utomter Sträng = Σ*

Provkörning med Provkörning med Provkörning med Provkörning med Totl funktion som δ δ ör vr en totl funktion Potentiell övergångr som utelämns ehndls som om de gick till ett återvändstillstånd x Implementtioner v finit utomter Hur sk mn gå till väg för tt modeller en finit utomt? Modeller delrn för sig K: All tillstånd Σ: All symoler q 0 : Strttillståndet F: All giltig vslutningstillstånd δ: Övergångsfunktionen

K och q 0 All tillstånd måste vr unik Vnligtvis numrerde Kn modellers som heltl Vrje heltl motsvrr ett tillstånd Vi kn modeller K som ntlet tillstånd q 0 är i så fll ett specifikt heltl som pekr ut strttillståndet Σ En mängd unik symoler Kn modellers som en list med tecken Teckenuppsättningen är en list med tecken! Kn li joigt med UTF-8 Läs yteström istället? Vrje tecken tolks som en egen utomt, somlig med ett tillstånd, ndr med fler Begränsr teckentellen till 55 unik symoler Kn modellers genom en seprt klss Måste kunn ge ett heltl givet en symol F Eftersom tillstånden modellers som heltl ehöver en oolen ssociers till vrje heltl Svrr på frågn är dett ett giltigt vslutningstillstånd? En rry med oolener pssr δ En funktion sk leverer ett svr för vrje tänkrt input Tänkr input är komintioner v tillstånd och symoler (K Σ) Tillstånd och symoler är heltl Vi ehöver ssocier två heltl (strttillståndet och en symol) till ett tredje (måltillståndet) Arry med rryer med heltl! Mtris med heltl Smmnfttning K: Heltl (ntl tillstånd) Σ: Assocition: symol heltl Dtorns egn teckentell Måste kunn svr på ntlet tecken q 0 : Heltl (som pekr ut strttillståndet) F: Arry (storlek = K) med oolener δ: Mtris (storlek = K size(σ)) med heltl I Jv pulic clss FSA { privte int k; privte int q0; privte oolen[] f; privte int[][] delt; pulic FSA(int k, int q0) { this.k = k; this.q0 = q0; f = new oolen[k]; delt = new int[k][56]; } pulic oolen ccepts(string s) { int q = q0; for (yte : s.getbytes()) { -= Byte.MIN_VALUE; //Sklning q = delt[q][]; } return f[q]; } }

Exempelutomten i Jv 0 k = 4 q0 = f = [ flse, flse, flse, true ] delt = [ [, 0, 0, ], [,, 0, ], [,,, ], [, 0, 0, ] ] Smmnfttning Finit utomter Beskriver reguljär språk Genom tt svr på frågn om en given sträng ingår i språket eller inte Kn implementers reltivt enkelt Reguljär uttryck Beskriver ett reguljärt språk Kn kominers med Kleene stjärn (*) Union (U) Snitt ( ) Konktenering (_) Exempel A = {}, B = {} A_B = {} AB U BA = {, } A*B = {,,,, } Reguljär uttryck Reguljär språk kn vr oändlig Vi kn inte räkn upp ll strängr som ingår i ett språk Kn vi vgör ifll en given sträng tillhör ett givet reguljärt språk? Om vi hde en utomt Reguljär uttryck och finit utomter Båd eskriver reguljär språk Går tt översätt mskinellt melln reguljär uttryck och finit utomter Två spekter v smm sk Reguljär språk Reguljär uttryck i Jv (.4 +) jv.util.regex Pttern Klss som representerr reguljär uttryck Byggs med en strängrepresenttion v det reguljär uttrycket Dokumenttionssidn innehåller llt mn kn tänks vilj vet om Jvs reguljär uttryck Mtcher Byggs med ett Pttern och en String Svr på frågor om hur strängen mtchr det reguljär uttrycket 4

Reguljär uttryck i String Vnligste nvändningsområden finns inäddde i String oolen mtches(regex) String replceall(regex, replcement) String replcefirst(regex, replcement) String[] split(regex) String[] split(regex, limit) Reguljär uttryck i progrmmering Förkorts oft re (regulr expression) perlre = Perls mnulsid för reguljär uttryck regex (regulr expression) Jv.util.regex regexp (regulr expression) re(gex(p)?)? Oft utyggd för tt t tillvr på sker mn får grtis vid implementering Stöd för dtorns inyggd teckentell Reguljär uttryck i progrmmering Bonusfunktioner Färdig symolklsser Anpssning till dtorns teckentell Mång tecken är redn klssificerde Exkt vd i strängen vr det som mtchde uttrycket? Möjlighet tt få ut delsträngr som mtchde delr v uttrycket Reguljär uttryck i Jv Tecken Teckenklsser [-zåäö] All tecken melln och z smt åäö (intervll enligt gällnde teckentell) [^ ] Negerd klss Mång färdig klsser Kvntifierre Hur mång v föregående tecken, klss eller grupp? Grupperingr Görs med prenteser Teckenklsser (se jv.util.regex.pttern) Mängdteoretisk opertioner [-z&&[def]] = [def] [-z&&[^def]] = [-cg-z] Escpetecken \\ ckslsh \n \t \r \f Vnlig system etydelse \Onn Tecken nn enligt oktl värde \xnn Tecken nn enligt hexdecimlt värde Fördefinierde klsser. Mtchr vilket tecken som helst \s \S spce \w \W word \d \D digit \p{nmn} \P{nmn} posix Ankre ^ Börjn v input $ Slutet v input Kvntifierre Grundkvntifierre? Noll eller en gång * Noll eller fler gånger + En eller fler gånger {n} Exkt n gånger {n,} Minst n gånger {n,m} Minst n gånger, högst m gånger Är normlt girig Kn görs ovillig genom tt lägg på ett? efter (??, *?, +?, ) 5

Girig/ovillig kvntifierre (greedy/reluctnt) Viktigt koncept när mn fångr olik grupper Girig kvntifierre försöker mtch så mycket som möjligt Ovillig kvntifierre försöker mtch så lite som möjligt, 0, 4, 4 sk mtchs mot.*, Girig mtchning:, 0, 4, Ovillig mtchning:, Grupperingr Hel uttrycket etrkts som en grupp Grupper kn skps genom prenteser Grupper fångr upp den delsträng de mtchr Går tt stäng v: (?:RegExp) Exempel: (A)(B(C)) Hel uttrycket lir grupp 0 Därefter ts vrje strtprentes från vänster till höger ut som en grupp: A, BC, C Mtchnde delsträngr i Jv Klssen Mtcher kn hämt ut en grupp efter index Exempel: (A)(B(C)) groupcount() = 4 group(0) = ABC group() = A group() = BC group() = C Förhållndet melln Pttern, Mtcher och String Pttern hr en sttisk metod som heter compile Tr en strängrepresenttion v ett reguljärt uttryck och returnerr en Pttern Pttern hr en metod som heter mtch Tr en ChrSequence (supertyp till String) som rgument och returnerr en Mtcher Mtcher representerr resulttet v en mtchning Hr metoder för tt eskriv hur det gick (se grupper) Förhållndet melln Pttern, Mtcher och String Smmnfttning: reguljär uttryck String String Pttern compile Pttern mtch Enkelt tt ehndl strängr Krftfull meknism Tidskomplexitet: O(n) där n är strängens längd Mtcher group(int) String 6

(trie) Aretr på sekvenser ex. strängr Jg kommer genomgående tl om strängr istället för sekvenser v tecken Hr mycket gemensmt med utomter Informtionen om vd mn läst in hittills i en utomt vspegls i vilket tillstånd mn efinner sig i I prefixträd motsvrr vrje tillstånd (eller nod om mn så vill) ett unikt prefix Nodern kn ssociers med informtion om det ktuell prefixet egenskper Vi kn ssocier informtion med en sträng Vi kn komm åt informtionen i O(n) tid där n är längden på strängen Jättesnt! Lexikon? Exempel Insättning v runjörn : Automtsättet run i s t j ö r n e r i s t j ö r n e r? run i Insättning v runjörn : s j ö r n t j ö r n e r Skillnder melln utomter och prefixträd Automter Går tt minimer Kn svr på ifll strängen tillhör språket eller inte Går inte tt minimer spretigre och större Vet lltid vilken sträng som krävdes för tt hmn där mn efinner sig 7

eller inär sökträd? s = stränglängd, n = ntl noder Binär sökträd O(log n) Behöver gör log n strängjämförelser Hur lång tid tr en strängjämförelse? O(s) O(s) Behöver gör s symolssocitioner Hur lång tid tr en symolssocition Beror på vilken meknism som nvänds eller inär sökträd? Symolssocition Omvndl symolen till ett nummer Slå upp i rry Snt Tr stor plts Slå upp med hshning Långsmmre Tr mindre plts Prioriteringsfråg Svårt tt säg vd som är snst Beror till stor del på konstnter som inte syns i O-nottion eller inär sökträd? Snre Tr större plts Binär sökträd Långsmmre Tr mindre plts Avvägning melln tid och plts Hur ser växlingskursen ut? Olik tillämpningr hr olik ehov Stämmer det? Smmnfttning nses r för lexikonhntering Br tt känn till som språkteknolog Frmtiden (för kursen) Br len på måndg kvr! Kursutvärdering kommer upp på hemsidn inom kort Gör den! Tvek inte tt kontkt mig om ni undrr något mrkus.sers@lingfil.uu.se 8