INF2820 Datalingvistikk V2015. Jan Tore Lønning

Like dokumenter
INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

INF2820 Datalingvistikk V2014. 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 V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2016. Jan Tore Lønning

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

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

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

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

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

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

Skanning del I INF /01/15 1

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

INF2820 Datalingvistikk V forelesning, 30.1 Jan Tore Lønning

INF2080 Logikk og beregninger

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

Skanning del I. Kapittel 2 INF 3110/ INF

INF 2820 V2016: Obligatorisk innleverinsoppgave 1

Syntax/semantics - I INF 3110/ /29/2005 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

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

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

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

INF2820 Datalingvistikk V gang, Jan Tore Lønning

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

INF2820 Datalingvistikk V2012

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

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V Gang 4.5 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 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

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

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

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

Anatomien til en kompilator - I

INF2820 Datalingvistikk V Gang 27.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 6.3 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 V Gang Jan Tore Lønning

Turingmaskiner en kortfattet introduksjon. Christian F Heide

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

UNIVERSITETET I OSLO

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

Anatomien til en kompilator - I

INF2820 Datalingvistikk V Gang Jan Tore Lønning

En repetisjon hrj høst 2009

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

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF2820 V2017 Oppgavesett 6 Gruppe 7.3

INF 2820 V2018: Innleveringsoppgave 1

Dagens tema: Regulære språk og uttrykk

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V gang, 27.2 Jan Tore Lønning

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

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

INF3110 Programmeringsspråk

MA3301 Beregnbarhets- og kompleksitetsteori Høsten

INF2820 Datalingvistikk V Gang Jan Tore Lønning

1/18/2011. Forelesninger. I dag: Obligatoriske oppgaver. Gruppeundervisning. Jan Tore Lønning & Stephan Oepen

Viktige begrep i kapittel 1.

IN1140: Introduksjon til språkteknologi. Forelesning #4

UNIVERSITETET I OSLO

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

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

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

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

Hva er syntaks? En overskrift i en norsk avis: Dagens tema Grundig repetisjon og utdyping:

FASIT/LF FOR EKSAMEN TMA4140, H07

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

Dagens tema Grundig repetisjon og utdyping: Syntaks kontra semantikk

3/8/2011. I dag. Dynamic Programming. Example. Example FORMELLE EGENSKAPER VED SPRÅK (KAP. 16) Jan Tore Lønning & Stephan Oepen

Mandatory assignment 1, INF2820, 2013

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

Turingmaskiner en kortfattet introduksjon. Christian F Heide

3/5/2012. Chart alternativ datastruktur. Fundamentalregelen. Chart-parsing. Bottom-up FORMELL SPRÅKTEORI. Jan Tore Lønning

MAT1030 Forelesning 19

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V2017 Forelesning 1.1, 16.1 Jan Tore Lønning

Transkript:

INF2820 Datalingvistikk V2015 Jan Tore Lønning

ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2 26. januar 2015 2

ENDELIGE AUTOMATER «FINITE STATE AUTOMATA» (FSA) 26. januar 2015 3

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/26/2015 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 Den beskriver det samme språket som baaa*! 5 1/26/2015

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? 26. januar 2015 7

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? 26. januar 2015 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 9 1/26/2015

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/26/2015 Speech and Language Processing - Jurafsky and Martin 10

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! 12 1/26/2015

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/26/2015 Speech and Language Processing - Jurafsky and Martin 13

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

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 15

Metode Vi starter med en deterministisk FSA M1 for L 26. januar 2015 16

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. 26. januar 2015 17

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. 26. januar 2015 18

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 26. januar 2015 19

IKKE-DETERMINISTISKE AUTOMATER 26. januar 2015 20

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

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

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 23

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 24

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) 25 1/26/2015

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.) 27

Fra NFA til DFA for samme språk 28

Fra NFA til DFA for samme språk 29

Fra NFA til DFA for samme språk 30

Fra NFA til DFA for samme språk 31

Fra NFA til DFA for samme språk 32

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

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

Vis omforming til DFA 35

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

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 26. januar 2015 38