Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist

Slides:



Advertisements
Liknande presentationer
Fritidshem Elever 2013 Fritidshem - Elever 2013 Enhet:
Advertisements

Att identifiera och utveckla ledare
Talföljder formler och summor
Matematik I Föreläsning 2
78 respondenter. 2 [1] Hur har det varit hemma sedan du var här sist?
Välkommen Barnet i rättsprocessen Brottsmål & Vårdnadsmål
Labb 1 - Textbearbetning med reguljära uttryck
Relationsdatabasdesign
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 4.
hej och välkomna EKVATIONER Ta reda på det okända talet.
FL4 732G70 Statistik A Detta är en generell mall för att göra PowerPoint presentationer enligt LiUs grafiska profil. Du skriver in din rubrik,
1 Logikprogrammering ons 11/9 David Hjelm. 2 Repetition Listor är sammansatta termer. De består av en ordnad mängd element. Elementen i en lista kan vara.
Resultat från SWEA Framtidsenkät December Januari 2009 REGION ANALYS: MAME Korta version 13 april 2009 Kontakt med enkätgruppen:
Resultat från SWEA Framtidsenkät December Januari 2009 REGIONANALYS / KORTARE VERSION: Svenska avdelningar 9 april 2009 Kontakt med enkätgruppen:
DAB752: Algoritmteori Leif Grönqvist
Stora + Störst tal först. Stora additionstabellen Tanketips!
Kommun - Vara (1470), Kommun - Skara (1495), Kommun - Lidköping (1494), Kommun - Grästorp (1444), Kommun - Essunga (1445) 41 respondenter.
Repetition inför kursstart FDL
Predicting protein folding pathways.  Mohammed J. Zaki, Vinay Nadimpally, Deb Bardhan and Chris Bystroff  Artikel i Bioinformatics 2004.
Växjö 21 april -04Språk & logik: Kontextfria grammatiker1 DAB760: Språk och logik 21/4: Kontextfria 10-12grammatiker Leif Grönqvist
Växjö 22 april -04Språk & logik: Parsning med kontextfria grammatiker1 DAB760:Språk och logik: 22 aprilParsning Leif Grönqvist
DAB760: Språk och logik 15/4: Finita automater i språkteknologi
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Vägen till lycka…..
Stora additionstabellen
Växjö 29 april -04Språk & logik: Kontextfria grammatiker i språkteknologi1 DAB760, 29 april Kontextfria grammatiker i språkteknolog Leif Grönqvist
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2004.
V ersion Dialogseminarium – Patientens väg i vården Välkommen!
Programmering B PHP Lektion 2
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Enkätresultat för Fritidshem Föräldrar 2014 Skola - Hällby skola.
INFÖR NATIONELLA PROVET
Från binära till hexadecimala
Programmering B PHP Lektion 3
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Beräkna en ekvation (metod 1)
Bild 1 Hur använder vi KursInfo idag? Högskolan i Skövde.
Beräkna en ekvation (metod 1)
Från Gotland på kvällen (tågtider enligt 2007) 18:28 19:03 19:41 19:32 20:32 20:53 21:19 18:30 20:32 19:06 19:54 19:58 20:22 19:01 21:40 20:44 23:37 20:11.
Det handlar om multiplikation
TÄNK PÅ ETT HELTAL MELLAN 1-50
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Listor En lista är en föränderlig ordnad samling objekt.
INFÖR NATIONELLA PROVET. UPPGIFT 1 Förenkla så långt som möjligt Ständigt återkommande uppgift!
Funktioner, styrstrukturer, manipulering av matriser
SEO Manager för EPiServer LÅT REDAKTÖRERNA VARA REDAKTÖRER.
Arrayer och strängar Arrayer Strängar operatorer typkonvertering.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Styrteknik 7.5 hp distans: SFC Introduktion SFC_A:1
Styrteknik 7.5 hp distans: PLC-Program, kaffe-automat PLC7B:1
Rörelse i röd zon, rörelse i grön zon
Styrteknik 7.5 hp distans: SFC Introduction PLC5A:1 Bilder SFC = Sequential Function Chart Language SFC är ett grafiskt programspråk som används.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Stora subtraktionstabellen
Logikprogrammering 16/ : operatorer Staffan Larsson.
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
BVForum - en genomgång för revisorer Sören Thuresson.
5 8 Sätt in talen 1 till 9 i den magiska fyrkanten så att
Placera siffrorna i rutorna så att summorna i kanten stämmer
Kartminne En serie bilder som ger övning av ”rutinen” Tänk på: –Vart är jag på väg? –Varifrån är kontrollen lättast att ta? –Vilken är sista säkra? –Förenkla.
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
Föreläsning 9 Logik med tillämpningar Innehåll u Semantiska tablåer i predikatlogiken u Klausulform u Herbrandmodeller u Kapitel 3.5,
1 Föreläsning2 Operativsystem. 2 Talsystem Decimal (bas 10): 0,1,2,…,8,9 Binär talsystem (bas 2): endast 1 och 0 Hexadecimal talsystem (bas 16): 0,1,…9,A,…,E,F.
Föreläsning2 Operativsystem.
Växjö 22 april -04Språk & logik: Introduktion till labb 11 DAB760:Språk och logik: 22 aprilLabbintroduktion Leif Grönqvist
Växjö 14 april -04Språk & logik: Finita automater1 DAB760: Språk och logik 14/4:Finita automater Leif Grönqvist Växjö Universitet.
Presentationens avskrift:

Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg Universitet (Institutionen för lingvistik)

2Språk & logik: Reguljära uttryckVäxjö 15 april -04 Dagens föreläsning  Repetition av determiniseringsalgoritmen  Reguljära uttryck  Obs! Webbsida med Leifs material finns länkad från:

3Språk & logik: Reguljära uttryckVäxjö 15 april -04 Exempel på ett språk: jämna binära tal  Σ = {0, 1}  Exempel på strängar i Σ * : ε, 0, 1, 01, 10, 000  Språket J: Mängden av alla strängar i Σ * vars sista symbol är 0 (och första är 1 om längden är minst 2 symboler) Exempel: 0, 10, 100, Vi vill inte ha med 00, 010, ε, 1, 111, etc.

4Språk & logik: Reguljära uttryckVäxjö 15 april -04 Automat för jämna binära tal (felaktig)  Alfabetet Σ = {0, 1}  Tillståndsmängd S = {0, 1}  Starttillstånd: 0  Accepterande tillstånd: start 0 1

5Språk & logik: Reguljära uttryckVäxjö 15 april -04 Korrekt (icke-deterministisk) automat för jämna binära tal 13 2 start 0 Icke-deterministisk eftersom tillstånd 0 har två övergångar med symbol 0 Vi gör den deterministisk!

6Språk & logik: Reguljära uttryckVäxjö 15 april -04 Determinisering av icke- deterministisk FSA  En icke-deterministisk automat N med tillståndsmängd S={s 0, s 1, …, s m } kan determiniseras till D: Tillstånd i D (D-tillstånd) utgörs av mängder av tillstånd i N (N-tillstånd) Låt S 0 = {s 0 } vara starttillstånd för D De accepterande tillstånden i D är de D-tillstånd som innehåller något av de accepterande N- tillstånden Givet ett D-tillstånd S i och en symbol x, skapa en övergång från S i för x till det D-tillstånd S j som innehåller alla N-tillstånd för vilka det finns en övergång för x från något N-tillstånd i S i

7Språk & logik: Reguljära uttryckVäxjö 15 april -04 De två automaterna  Den icke-deterministiska (N) S = {1,2,3} S 0 = 1 F = {3} Σ = {0, 1}  Den deterministiska (D) S = {1, 2, 3, 12, 13, 23, 123} S 0 = 1 F = {3, 13, 23, 123} (alla som innehåller N- tillståndet 3) Σ = {0, 1}

8Språk & logik: Reguljära uttryckVäxjö 15 april -04 Resultatet av determiniseringen Start

9Språk & logik: Reguljära uttryckVäxjö 15 april -04 Men vissa tillstånd kan man inte komma till!  Det finns inga övergångar till: 12, 13 eller 123 så vi tar bort dem  Kvar blir en deterministisk automat med fyra tillstånd Start

10Språk & logik: Reguljära uttryckVäxjö 15 april -04 Implementation  Deterministiska FSA/FST implementeras extremt effektivt i C En label för varje tillstånd Använd goto för att hoppa mellan tillstånd Stacken används inte – vi behöver inte komma ihåg varifrån vi kommit  Icke-determinism är besvärligare Välj en väg i taget Backtracka för att testa alla möjligheter I praktiken är de användbara om det inte finns ”för mycket” icke-determinism

11Språk & logik: Reguljära uttryckVäxjö 15 april -04 Reguljära uttryck  Ett annat sätt att definiera formella språk Enklare för människor – liknar mer vårt sätt att tänka(?) Språken vi kan definiera är de samma som för finita automater De kan kompileras till deterministiska automater eller transduktorer

12Språk & logik: Reguljära uttryckVäxjö 15 april -04 Definitioner  Atomära reguljära uttryck givet alfabetet Σ x (där x ε Σ) ε (den tomma strängen) Ø (matchar ingenting) R (en variabel innehållande ett reguljärt uttryck)  Språken som definieras av atomära reguljära uttryck L(x) = {x} L(ε) = {ε} L(Ø) = Ø

13Språk & logik: Reguljära uttryckVäxjö 15 april -04 Sammansatta reguljära uttryck  Om R och S är reguljära uttryck så är: Union  R | S ett reguljärt uttryck  L (R | S) = L(R)  L(S) Konkatenering  R S ett reguljärt uttryck  L (R S) = {r s | r ε L(R), s ε L(S)} Hölje  R* ett reguljärt uttryck  L (R*) = L(ε | R | R R | R R R | …) Precedensordning: Hölje, Konkatenering, Union

14Språk & logik: Reguljära uttryckVäxjö 15 april -04 Exempel: de jämna binära talen  Σ = {0, 1}  Reguljärt uttryck: 0 | 1 (0 | 1)* 0 Vi får med 0 Samt alla sekvenser som börjar med 1 och slutar med 0 Men inga sekvenser som börjar med 0 förutom sekvensen 0

15Språk & logik: Reguljära uttryckVäxjö 15 april -04 Utvidgningar  Det är smidigt att införa beteckningar för vanliga mängder: Teckenmängden siffra =  {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Reguljärt uttryck som beskriver siffra:  (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9)  Motsvarande i UNIX: [0-9] Reguljärt uttryck för heltalskonstant:  (- | ε) siffra siffra*

16Språk & logik: Reguljära uttryckVäxjö 15 april -04 Fler utvidgningar  Fler operatorer Noll eller en: R?  R | ε En eller flera: R+  R R*  Förenklad definition av heltalskonstanter: -? siffra+  Specialtecken i UNIX.Ett godtyckligt ASCII-tecken ^början på rad $Radslut [^0-9]Ett tecken som inte är en siffra

17Språk & logik: Reguljära uttryckVäxjö 15 april -04 Från reguljärt uttryck (RE) till FSA  Denna algoritm konverterar ett RE till en icke-deterministisk automat med ε- övergångar Starttillstånd: s 0 Accepterande tillstånd s A Ingen övergång till s 0 Ingen övergång från s A

18Språk & logik: Reguljära uttryckVäxjö 15 april -04 RE -> FSA  Atomära uttryck Ø: Ingen övergång ε: Lägg till en ε-övergång från s 0 till s A Symbol a: Lägg till en a-övergång från s 0 till s A En variabel innehållande ett reguljärt uttryck  Operatorer (givet automater för uttrycken R och S) Union (R | S)  Lägg till en ε-övergång från s 0 till R-start och S- start  Lägg till ε-övergångar från R-accept och S-accept till s A

19Språk & logik: Reguljära uttryckVäxjö 15 april -04 RE -> FSA, forts.  Operatorer, forts. Konkatenering (R S)  Låt s 0 = R-start  Låt s A = S-accept  Låt R-accept = S-Start Hölje (R*)  Lägg till en ε-övergång från s 0 till R-start  Lägg till en ε-övergång från R-accept till s A  Lägg till en ε-övergång från s 0 till s A  Lägg till en ε-övergång från R-accept till R-start  En annan algoritm tar bort ε-övergångarna

20Språk & logik: Reguljära uttryckVäxjö 15 april -04 Exempel  De jämna binära talen: 0 | 1 (0 | 1)* 0  Ytterst har vi en union: R = 0 S = 1 (0 | 1)* 0 R är ett atomärt uttryck:  S är en konkatenering av S 1 = 1 S 2 = (0 | 1)* S 3 = 0  S 2 är ett hölje, osv. s0s0 start sasa 0

21Språk & logik: Reguljära uttryckVäxjö 15 april -04 FSA -> RE  Det finns en algoritm som gör även denna omvandling  Läs mer i boken hur den fungerar