INF2820 Datalingvistikk V2016. Jan Tore Lønning

Like dokumenter
INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

INF2820 Datalingvistikk V2017 Forelesning 2, 23.1 Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2012. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

Følger Sipsers bok tett både i stoff og oppgaver.

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

1/31/2011 SAMMENHENGER FSA OG REGULÆRE UTTRYKK. Regulære språk. Fra FSA til RE. Fra regulært uttrykk til NFA REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2

Skanning del I INF /01/15 1

1/26/2012 LITT PYTHON. INF2820 Datalingvistikk V2012. Hvorfor Pyhton. Python syntaks. Python er objektorientert. Python datatyper.

INF2820 Datalingvistikk V2018 Forelesning 3, 29. jan. Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF INF1820. Arne Skjærholt. Terza lezione INF1820. Arne Skjærholt. Terza lezione

Skanning del I. Kapittel 2 INF 3110/ INF

INF2820 Datalingvistikk V2017 Forelesning 3, 30.1 Jan Tore Lønning

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V forelesning, 30.1 Jan Tore Lønning

INF 2820 V2016: Obligatorisk innleverinsoppgave 1

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

Typisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord

Typisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord

INF2080 Logikk og beregninger

Syntax/semantics - I INF 3110/ /29/2005 1

INF2820 Datalingvistikk V2012. Jan Tore Lønning

Oppgave 1. Spørsmål 1.1 (10%) Gitt det regulære uttrykket: a((bcd)+(cd))*cd

Scanning - I Kap. 2. Hva scanneren gjør

IN2080. Oppgave 1. Oppgave 2. Eksamen. Vår Den nondeterministiske endelige automaten A er gitt ved (Q, Σ, δ, q 0, F ) der

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V Gang 26.2 Jan Tore Lønning

2/24/2012. Context-Free Grammars. I dag. Avledning. Eksempel: grammar1 PARSING. Jan Tore Lønning

MA3301 Beregnbarhets- og kompleksitetsteori Høsten

INF2820 Datalingvistikk V2015. Forelesning 4, 9.2 Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V2012

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V Gang 4.5 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

2/6/2012. Begrensninger ved regulære språk. INF2820 Datalingvistikk V2012. Formelle språk som ikke er regulære KONTEKSTFRIE GRAMMATIKKER.

INF5820 Natural Language Processing - NLP. H2009 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 19.3 del 1 Jan Tore Lønning

2/22/2011. Høyre- og venstreavledninger. I dag. Chomsky-normalform (CNF) Chomsky-normalform (CNF) PARSING. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2014. Forelesning 4, 6.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

Anatomien til en kompilator - I

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

Turingmaskiner en kortfattet introduksjon. Christian F Heide

En repetisjon hrj høst 2009

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF2820 Datalingvistikk V Gang 27.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang 6.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V gang, 27.2 Jan Tore Lønning

Anatomien til en kompilator - I

UNIVERSITETET I OSLO

Avgjørbarhet / Uavgjørbarhet

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF3110 Programmeringsspråk

Dagens tema: Regulære språk og uttrykk

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF 2820 V2018: Innleveringsoppgave 1

IN1140: Introduksjon til språkteknologi. Forelesning #4

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

Repetisjon. 1 binærtall. INF3110 Programmeringsspråk. Sist så vi ulike notasjoner for syntaks: Jernbanediagrammer. BNF-grammatikker.

MAT1030 Forelesning 19

Kap. 5, Del 3: INF5110, fra 1/3-2011

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF2820 Datalingvistikk V Gang Jan Tore Lønning

Dagens tema Grundig repetisjon og utdyping: Syntaks kontra semantikk

Turingmaskiner en kortfattet introduksjon. Christian F Heide

Viktige begrep i kapittel 1.

Spørsmål 1.1 (10%) Lag en ikke-deterministisk endelig tilstandsautomat (NFA) som beskriver dette språket.

3/1/2011. I dag. Recursive descent parser. Problem for RD-parser: Top Down Space. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2016. Forelesning 4, 10.2 Jan Tore Lønning

MAT1030 Forelesning 25

FASIT/LF FOR EKSAMEN TMA4140, H07

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann

Oppgave 2. Eksamen INF2820, 2015, oppgave 2. La gramatikk G være:

MAT1030 Diskret Matematikk

Kap. 5 del 2: LR(1)- og LALR(1)-grammatikker INF5110 V2005. Stein Krogdahl, Ifi, UiO

Mandatory assignment 1, INF2820, 2013

INF2220: Time 8 og 9 - Kompleksitet, beregnbarhet og kombinatorisk søk

Kap. 5, del 2 LR(1)- og LALR(1)-grammatikker INF5110 V2008

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

Transkript:

INF2820 Datalingvistikk V2016 Jan Tore Lønning

ENDELIGE AUTOMATER «FINITE STATE AUTOMATA» (FSA) 25. januar 2016 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/25/2016

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/25/2016 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/25/2016

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/25/2016

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? 25. januar 2016 8

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 Q og a Σ gir en tilstand q = δ(q,a) i Q (I symboler )δ:q Σ Q 10 1/25/2016

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/25/2016 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!

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! 13 1/25/2016

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/25/2016 Speech and Language Processing - Jurafsky and Martin 14

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/25/2016 Speech and Language Processing - Jurafsky and Martin 15

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 16

Metode Vi starter med en deterministisk FSA M1 for L 25. januar 2016 17

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. 25. januar 2016 18

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. 25. januar 2016 19

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 25. januar 2016 20

IKKE-DETERMINISTISKE AUTOMATER 25. januar 2016 21

Non-Determinism Speech and Language Processing - Jurafsky and Martin 22

Ikke-determinisme er nyttig Kari elsket sin hund. Kari elsket sin hund og venn. Kari elsket sin hund og beundret en venn. Kari elsket sin hund og Ola beundret en venn. Kari elsket sin hund og venn og beundret en venn og Ola beundret en hund og elsket sin venn. 23

Non-Determinism cont. Yet another technique Epsilon transitions Key point: these transitions do not examine or advance the tape during recognition Speech and Language Processing - Jurafsky and Martin 24

Yet Another View Gå til tilstand 2 eller gå til tilstand 3 The guts of FSAs can ultimately be represented as tables If you re in state 1 and you re looking at an a, go to state 2 b a! e 0 1 1 2 2 2,3 3 4 4 Speech and Language Processing - Jurafsky and Martin 25

Formell definisjon En ikkedeterministisk endelig maskin (NFA) 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 4. En mengde av sluttilstander F Q 5. En transisjonsfunksjon δ som til hver q Q og a Σ {ε} gir en delmengde av Q (Denne kan være tom) (5) Kan også formuleres som at D er en relasjon på Q Σ {ε} Q Sammenhengen er at D(q1, s, q2) hvis og bare hvis q2 δ(q1, s) 26 1/25/2016

NFA ikkedeterministisk endelig maskin Enhver DFA er også en NFA! forvirrende? Kanskje burde NFA hett FA? Men DFA (=FA) kom først Det finnes NFA-er som ikke er DFA-er Men hvis et språk kan beskrives av en NFA, så fins det også en DFA som beskriver språket. Ikke opplagt Trengs et bevis NFA DFA

Fra NFA til DFA for samme språk Oppskrift, (uformell) gitt DFA kalt M1 Lag en ny automat M2 med en tilstand for hver mengde av tilstander i M1. Her 8 stk:, {0}, {1}, {2}, {0,1}, {0,2}, {1,2}, {0,1,2} For hver ny tilstand Qi={q 1,, q n } og symbol a Σ, lag kant til tilstanden Qj som består av alle tilstander q som det går kant til fra minst en av q 1,, q n merket med a. I praksis trenger vi ikke alltid å lage alle tilstandene (Vi lager kantene, og de tilstandene vi kan nå med en sti fra starten.) 28

Fra NFA til DFA uten ε-kanter Gitt en NFA uten ε-kanter: N= Q, q0, Σ, F, δ Definer en DFA, D= Q D, Q 0D, Σ D, F D, δ D ved: Q D = Pow(Q) = {Ø, {q0}, {q1}, {q0, q1}, } Q 0D = {q0} Σ D = Σ F D = { Qi Q Qi F } For en tilstand Qi={q1, q2, qk}, og symbol s Σ: δ D (Qi,s) = δ(q1,s) δ(q2,s) δ(qk,s) (Hvis det ikke finnes noen sti fra Q 0D til Q i, kan vi fjerne Q i ). Observasjon: For et ord w=x 1 x 2 x m, vil D være i en (eller annen) tilstand Qi For samme w vil N kunne være i en tilstand q hvis og bare hvis q Qi Altså vil D og N anerkjenne de samme ordene. 34

ε-transisjoner og epsilontillukning For enhver tilstand q er epsilontillukningen, E(q), mengden av tilstander som nås fra q med ε-transisjoner. Dette generaliserer til mengder av tilstander: E({q1, q2,, qi}) = E(q1) E(q2) E(qi) altså mengden av tilstander som kan nås fra minst en q1,, qn med ε- transisjoner (Formelt er E(s) minste mengde s.a.: s E(s) Hvis t E(s) og u δ(t,ε) så er u E(s) ) 35

Vis omforming til DFA 36

Fra NFA til DFA generelt Gitt en NFA: N= Q, q0, Σ, F, δ Definer en DFA, D= Q D, Q0 D, Σ D, F D, δ D ved: Q D = Pow(Q) = {Ø, {q0}, {q1}, {q0, q1}, } Q0 D = E( {q0}) Σ D = Σ F D = { Qi Q E(Qi) F } For en tilstand Qi={q1, q2, qk}, og symbol s Σ: δ D (Qi,s) = E(δ(q1,s) δ(q2,s) δ(qk,s)) (Hvis det ikke finnes noen sti fra Q 0D til Q i, kan vi fjerne Q i ). Observasjon: For et ord w=x 1 x 2 x m, vil D være i en (eller annen) tilstand Qi For samme w vil N kunne være i en tilstand q hvis og bare hvis q Qi Altså vil D og N anerkjenne de samme ordene. 37

Fotnote: NFA en litt annen definisjon NFA, def. Pkt. 5 δ er en funksjon som til hver tilstand q Q og symbol s Σ {ε} gir en delmengde δ(q,s) av Q. Vi vil bruke def.1 definisjon: -i det formelle -I Python impl. NFA, alternativ def, pkt. 5 δ er en funksjon som til hver tilstand q Q og symbolsekvens s Σ* gir en delmengde δ(q,s) av Q. Alternativt D er en relasjon på Q Σ* Q JFLAP bruker def 2. Strengt tatt gir def. 2 en større klasse av automater, men lett å vise at for ethvert språk definert av automat av def.2 finnes en automat av def. 1 (oppgave)

Hva har vi lært? Definisjon av ikkedeterministiske endelige tilstandsautomater (NFA) Hvordan disse definerer et språk Hvordan vi gitt en NFA kan konstruere en DFA for det samme språket 25. januar 2016 39