Presentation laddar. Vänta.

Presentation laddar. Vänta.

Växjö 14 april -04Språk & logik: Finita automater1 DAB760: Språk och logik 14/4:Finita automater Leif Grönqvist Växjö Universitet.

Liknande presentationer


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

1 Växjö 14 april -04Språk & logik: Finita automater1 DAB760: Språk och logik 14/4:Finita automater Leif Grönqvist (leif.gronqvist@msi.vxu.se) Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg Universitet (Institutionen för lingvistik)

2 2Språk & logik: Finita automaterVäxjö 14 april -04 Formell språkteori  Viktigt att kunna definiera och känna igen mönster Kompilatorteknik Optisk teckenigenkänning (OCR) Textsökning (i databaser och på internet) Stavnings- och grammatikkontroll Automatisk översättning  Mönstren byggs upp av ett ändligt antal byggstenar (bokstäver, ljud, etc.)

3 3Språk & logik: Finita automaterVäxjö 14 april -04 En finit automat (FSA)  FSA = Finite State Automaton Ett alfabet (a,b,c,d) Ett antal tillstånd (1,2,3) Ett starttillstånd (2) Ett antal sluttillstånd (3) Måste sluta i sluttilsstånd a b c d 1 3 2 Start

4 4Språk & logik: Finita automaterVäxjö 14 april -04 Lite terminologi  Alfabet (Σ): en ändlig mängd symboler i ett formellt språk (t.ex. siffror eller bokstäver)  Sträng: sekvens av symboler ur alfabetet ε är den tomma strängen (längd 0) a 1 a 2 … a n :sträng av längd n  Språk: en mängd strängar Σ * är språket uppbyggt av symboler ur Σ Σ + är språket av icke-tomma strängar 0 är det tomma språket  FSA (Finite State Automaton): accepterar vissa strängar  FST (Finite State Transducer): översättare mellan par av strängar ur två språk  Reguljära uttryck: ett annat sätt att beskriva språken ovan

5 5Språk & logik: Finita automaterVäxjö 14 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, 10010 Vi vill inte ha med 00, 010, ε, 1, 111, etc.

6 6Språk & logik: Finita automaterVäxjö 14 april -04 Definition av en FSA  Består av fem komponenter: S={s 0, s 1, …, s m }: en ändlig mängd tillstånd Σ = { 0,  1,…,  n }: ett alfabet En övergångsfunktion från par av till tillstånd, dvs. “bågar mellan tillstånd med en symbol på” s 0 ε S: ett starttillstånd F  S: en mängd sluttillstånd (accepterande tillstånd)  FSA:er representeras ofta som grafer: noder=tillstånd bågar med symboler representerar övergångar starttillstånd: en pil märkt med start accepterade tillstånd markeras som dubbla cirklar

7 7Språk & logik: Finita automaterVäxjö 14 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: 1 01 10 start 0 1

8 8Språk & logik: Finita automaterVäxjö 14 april -04 Hur används automater för att känna igen strängar i ett språk? 1.Starta i starttillståndet 2.Läs nästa symbol i strängen  Om strängen var slut:  Acceptera om vi står i ett accepterande tillstånd  Förkasta annars 3.Följ bågen markerad med inläst symbol  Om ingen sådan båge finns så förkastas strängen 4.Gå till steg 2.

9 9Språk & logik: Finita automaterVäxjö 14 april -04 Att utforska ett språk utifrån dess FSA  Om språket är ändligt så kan samtliga strängar fås fram genom att följa alla möjliga vägar från starttillstånd till accepterande tillstånd  Annars kan vi ta fram godtyckligt många strängar i språket genom att följa möjliga vägar tills vi är nöjda Vilka strängar ingår i språket ”jämna binära tal”? De vi vill ha där och inga andra?

10 10Språk & logik: Finita automaterVäxjö 14 april -04 Determinism eller inte  Deterministisk FSA:   högst ett tillstånd s k till vilket det finns en övergång från s i till s k för symbol  j. Inga övergångar för symbol ε Intuitivt: ”Det finns aldrig mer än en övergång att välja på när man stegar runt i automaten”  Icke-deterministisk FSA Uppfyller inte båda kraven ovan Besvärligare att implementera Långsammare att slå upp strängar i Kan ofta ha färre tillstånd än motsvarande deterministiska FSA Kan göras om till en deterministisk FSA

11 11Språk & logik: Finita automaterVäxjö 14 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 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 De accepterande tillstånden i D är de D-tillstånd som innehåller något av de accepterande N- tillstånden

12 12Språk & logik: Finita automaterVäxjö 14 april -04 Viktiga egenskaper hos FSA/FST  Epsilonfri: inga övergångar är markerade med epsilon  Deterministisk: Inga tillstånd har mer än en utgående båge med samma symbol (symbolpar)  Minimal: Det finns ingen automat med färre tillstånd som beskriver samma språk

13 13Språk & logik: Finita automaterVäxjö 14 april -04 FST: Finite State-transduktorer  Ett övre och ett undre språk  Symbolerna skrivs som par av symboler från respektive alfabet a:b betyder symbol a från övre språket och symbol b från undre a:ε betyder symbol a från övre språket och inget från det undre a betyder symbol a från både det övre och undre språket  Verifiering av par av strängar kan göras  Uppslagning av sträng i övre språket givet sträng i undre språket  Uppslagning av sträng i undre språket givet sträng i övre språket

14 14Språk & logik: Finita automaterVäxjö 14 april -04 En transduktor  Alfabetet Σ = {a, b}  Tillståndsmängd S = {1, 2, 3}  Accepterande tillstånd: 3  Starttillstånd: 2  Vad gör den?  Är den deterministisk? a:a a:ε b:b a:b 1 3 2 Start

15 15Språk & logik: Finita automaterVäxjö 14 april -04 Nästa gång  Bygg automater med hjälp av reguljära uttryck


Ladda ner ppt "Växjö 14 april -04Språk & logik: Finita automater1 DAB760: Språk och logik 14/4:Finita automater Leif Grönqvist Växjö Universitet."

Liknande presentationer


Google-annonser