Presentation laddar. Vänta.

Presentation laddar. Vänta.

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

Liknande presentationer


En presentation över ämnet: "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"— Presentationens avskrift:

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

2 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:

3 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.

4 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

5 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!

6 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

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

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

9 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

10 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

11 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

12 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(Ø) = Ø

13 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

14 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

15 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*

16 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

17 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

18 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

19 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

20 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

21 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


Ladda ner ppt "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"

Liknande presentationer


Google-annonser