INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning
ENDELIGE TILSTANDSMASKINER OG REGULÆRE SPRÅK 19. januar 2017 2
Fysisk modell En tape delt opp i ruter. I hver rute står det et symbol. En innretning som leser tapen: Den kan bare bevege tapen i en retning. Den har en begrenset hukommelse: et endelig antall forskjellige tilstander den kan være i Tilstanden er bestemt av: forrige tilstand+siste symbol den har lest 3 1/19/2017
Navn Brukes om hverandre: Finite state automaton - FSA Finite automaton FA Finite state machine - FSM Kan betraktes som Notasjoner for å beskrive språk Notasjon for en automat som leser en tape og skifter tilstand for hvert symbol den leser 1/19/2017 Speech and Language Processing - Jurafsky and Martin 4
En FSA for breking Denne automaten har fem tilstander: q 0, q 1, q 2, q 3, q 4 Den har en begynnertilstand: q 0 (markert med pil) Den har en sluttilstand markert med ring: q 4 Den har fem transisjoner (=kanter i grafen) Hver kant er merket med et symbol fra et alfabet A, der {a, b,!} A 5 1/19/2017
En FSA for breking - tolkning Begynn i tilstand: q 0 Hvis du ser en b så: Flytt en plass Skift til tilstand: q 1 Hvis du er i tilstand q 1 og ser en a, så flytt en plass og skift til tilstand q 2. Men hvis du er i tilstand q 2 og ser en a, så flytt en plass og skift til tilstand q 3. Osv. (Hvis du er i en tilstand og ser et symbol som ikke har en kant, så stopp! ) Den beskriver det samme språket som baaa*! 6 1/19/2017
Figure 2.15
Eksempel Anta at A={a,b,c} Denne beskriver alle ord som inneholder nøyaktig 3 b-er. Oppgave: Hvordan kan den endres til å beskrive alle ord som inneholder 3n antall b-er der n er et naturlig tall? 19. januar 2017 8
Eksempel Anta at A={a,b,c} Denne beskriver alle ord som inneholder nøyaktig 3 b-er. Oppgave: Hvordan kan den endres til å beskrive alle ord som inneholder 3n antall b-er der n er et naturlig tall? 19. januar 2017 9
Formell definisjon En (deterministisk) endelig maskin består av 1. En endelig mengde av tilstander: Q= {q 0, q 1,, q N 1 } 2. Et endelig alfabet av symboler: 3. En begynnertilstand: q 0 Q (J&M bruker konvensjonen at q 0 er begynnertilstand) 4. En mengde av sluttilstander F Q (Denne kan være tom) 5. En transisjonsfunksjon som til hver q Qog a gir en tilstand q = (q,a) i Q (I symboler ) :Q Q 10 1/19/2017
Tre ulike notasjoner for en FSA Diagram Tabell Formelt som i definisjonen: 1. Q= {q 0, q 1, q 2, q 3,q 4 } 2. = {a, b,!} 3. Begynnertilstand: q 0 4. Sluttilstander F = {q 4 } 5. Transisjonsfunksjon : (q 0,b)= q 1 (q 1,a)= q 2 (q 2,a)= q 3 Osv. 1/19/2017 Speech and Language Processing - Jurafsky and Martin 11
Strengt tatt - Figure 2.14+ Fra definisjonen skal det være en kant ut fra hver tilstand for hvert symbol. Vi kan legge til en ekstra tilstand, men bryr oss ikke alltid om å tegne den. Alfabet ={a,b,!} a b!
Hva mener vi med «språk»? 19. januar 2017 13
Naturlige språk Et språk består av Ord: ball Setninger: Kari kastet en ball En setning kan sees på som en sekvens av ord For å kjenne setningen, må vi vite: Hvilke ord er i språket? Hvilke sekvenser av ord er setninger? F.eks. ikke *kastet kastet ball Kari en Formell språkteori er et forsøk på å modellere dette 19. januar 2017 14
Formelle språk Et formelt språk består av: En endelig mengde A Ø En delmengde L A* Merk A* er alle mulige strenger over A er den tomme strengen (skrives også og ). Ø er det tomme språket Ø { } Eksempel 1 A = {a, b, c} A* = {, a, b, c, aa, ab, ac, ba,, cccc, } L ={x A* x inneholder nøyaktig to a er} Eksempel 2 A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} L ={x A* x begynner ikke med 0} {0} 19. januar 2017 15
FSA og språk En FSA beskriver et (formelt) språk Som nettverk: Et ord er i språket hvis vi kan gå fra begynnertilstanden til en sluttilstand og ved hver kant fjerner vi et symbol fra ordet. Sjekk om følgende er i språket: baaaa! baaaa baaabaa! 16 1/19/2017
Naturlige språk som formelle språk Formelt språk: Definert av regler/grammatikk Naturlig språk: Definert av bruk Vi bruker formelle språk som modeller for naturlige språk Eksempel 4 A = {a, b, c,, æ, ø, å} A* = {, a, b, c, aa, ab, ac, ba,, cccc,, datalingvistikk, } L = mengden av de bokstavstrengene vi ser på som norske ord. Eksempel 3 A = mengden av alle former av alle ord i Bokmålsordboka A* = mengden av alle sekvenser av slike ord L = mengden av de strengene fra A* vi anser som grammatiske norske setninger Eksempel 5 A = {a, b, c,, æ, ø, å, \blank, \.} L = mengden av de strengene vi ser på som norske setninger. 19. januar 2017 17
Recognition Simply a process of starting in the start state Examining the current input Consulting the table Going to a new state and updating the tape pointer. Until you run out of tape. 1/19/2017 Speech and Language Processing - Jurafsky and Martin 18
Key Points Deterministic means that at each point in processing there is always one unique thing to do (no choices). D-recognize is a simple table-driven interpreter The algorithm is universal for all unambiguous regular languages. To change the machine, you simply change the table. Tidsforbruk: Proporsjonalt med lengden av strengen Lagerforbruk: Konstant 1/19/2017 Speech and Language Processing - Jurafsky and Martin 19
Endelige tilstandsspråk Et språk som anerkjennes av en FSA kaller vi et endelig tilstandsspråk Ikke alle språk er FSA-språk, f.eks. ikke a n b n Vi skal se etter hvert at et språk er et FSA-språk hvis og bare hvis det er regulært. Nå: Hvis språket <A, L> er et FSA språk, så er komplementspråket <A, A* L> også FSA Bevis: Neste side 20
Metode Vi starter med en deterministisk FSA M1 for L 19. januar 2017 21
Trinn1 Vi legger til: En «trap state» hvis det ikke finnes For alle tilstander og symboler i A hvor det ikke er en kant, legger vi kant som peker til «trap state». Kall denne automaten M2. 19. januar 2017 22
Metode M3 Vi bytter ut hvilke tilstander som er sluttilstander Siden ethvert uttrykk vil føre oss fra begynnertilstanden til nøyaktig en tilstand i M3 (og i M2), vil M3 anerkjenne («recognize») et uttrykk hvis og bare hvis M2 (og M1) ikke gjøre det. 19. januar 2017 23
Hva har vi lært? Definisjon av deterministiske endelige tilstandsautomater Hvordan disse definerer et språk Hvordan vi kan konstruere en DFA for komplementet til en språk definert av en DFA Algoritme for anerkjenning med DFA går i linjær tid 19. januar 2017 24