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

Like dokumenter
INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 Datalingvistikk V2014. Jan Tore Lønning

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

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

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

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

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

INF2080 Logikk og beregninger

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

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF2820 Datalingvistikk V2018 Forelesning 3, 29. jan. 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 gang, Jan Tore Lønning

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

Skanning del I. Kapittel 2 INF 3110/ INF

INF2820 Datalingvistikk V2012. Jan Tore Lønning

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

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

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

INF2820 Datalingvistikk V forelesning, 30.1 Jan Tore Lønning

INF 2820 V2016: Obligatorisk innleverinsoppgave 1

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

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

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

Anatomien til en kompilator - I

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

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

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

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

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

INF2820 Datalingvistikk V Gang 26.2 Jan Tore Lønning

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF2820 V2017 Oppgavesett 6 Gruppe 7.3

TMA4140 Diskret Matematikk Høst 2016

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

Dagens tema: Regulære språk og uttrykk

Dagens plan. INF3170 Logikk. Mengder. Definisjon. Notasjon. Forelesning 0: Mengdelære, Induksjon. Martin Giese. 23. januar 2008.

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

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

To mengder S og T er like, S = T, hvis de inneholder de samme elementene. Notasjon. Mengden med elementene a, b, c og d skrives ofte {a, b, c, d}.

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

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF 2820 V2018: Innleveringsoppgave 1

UNIVERSITETET I OSLO

INF2820 Datalingvistikk V Gang 6.3 Jan Tore Lønning

Turingmaskiner en kortfattet introduksjon. Christian F Heide

En repetisjon hrj høst 2009

INF2820 Datalingvistikk V Gang 27.2 Jan Tore Lønning

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

INF2820 Datalingvistikk V gang, Jan Tore Lønning

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

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

Dagens tema Grundig repetisjon og utdyping: Syntaks kontra semantikk

Oppgaver til INF 5110, kapittel 5

LO118D Forelesning 3 (DM)

INF2820 Datalingvistikk V Gang 4.5 Jan Tore Lønning

Løsningsforslag til obligatorisk oppgave 3 INF1800 Logikk og beregnbarhet, høsten 2009

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

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

Oppgaver til INF 5110, kapittel 5 Fullt svar på oppgave 5.4, og en del andre oppgaver med svar

INF2820 Datalingvistikk V Gang Jan Tore Lønning

MAT1030 Forelesning 22

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

Anatomien til en kompilator - I

Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf

MAT1030 Diskret matematikk

Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen

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

MA3301 Beregnbarhets- og kompleksitetsteori Høsten

INF3110 Programmeringsspråk

Mer om mengder: Tillegg til Kapittel 1. 1 Regneregler for Booleske operasjoner

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

Oppgaver til INF 5110, kapittel 5, med svarforslag Gjennomgått torsdag 26. febr Dette er versjon fra 28/7

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF / Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO

Viktige begrep i kapittel 1.

Turingmaskiner en kortfattet introduksjon. Christian F Heide

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 V2017 Oppgavesett 5 Gruppe 21.2

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF1080 Logiske metoder for informatikk. 1 Små oppgaver [70 poeng] 1.1 Grunnleggende mengdelære [3 poeng] 1.2 Utsagnslogikk [3 poeng]

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

Aksiom 3.1 (Likhet av mengder). La A og B være mengder. Da er A og B like hvis og bare hvis de har akkurat de samme elementene.

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

Gauss-Jordan eliminasjon; redusert echelonform. Forelesning, TMA4110 Fredag 18/9. Reduserte echelonmatriser. Reduserte echelonmatriser (forts.

Transkript:

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

ENDELIGE TILSTANDSMASKINER OG REGULÆRE SPRÅK, DEL 2 19. januar 2017 2

Sist uke: FSA 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 3

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 4

IKKE-DETERMINISTISKE AUTOMATER 19. januar 2017 5

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

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

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 8

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 9

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 Qog 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) 10 1/19/2017

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

Fra NFA til DFA for samme språk 13

Fra NFA til DFA for samme språk 14

Fra NFA til DFA for samme språk 15

Fra NFA til DFA for samme språk 16

Fra NFA til DFA for samme språk 17

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

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

Vis omforming til DFA 20

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

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 19. januar 2017 23

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 24

Mengdeoperasjoner på språk Siden språk er mengder kan vi gjøre mengdeoperasjoner Hvis <A, L> og <A, M> er to språk, så er L M, unionen av L og M L M, snittet av L og M A* L, komplementet til L språk (Merk at L eller A* L, men ikke begge) Eksempel 6 A = {a, b, c,, æ, ø, å} L = mengden av norske ord. M = mengden av engelske ord. L M er ord som fins i begge språkene, = {i, ad, al, be, by,, cup, union, } A* L er alle bokstavsekvenser som ikke er norske ord= {bb, bbb, bbbb, } L M er alle bokstavsekvenser som er et ord i minst ett av de to språkene 19. januar 2017 25

Flere operasjoner Konkatenering Hvis s og t er to strenger skriver vi s t (eller bare st) for konkateneringen av dem Eks s= abc, t=ca, s t=abcca Hvis <A, L> og <A, M> er to språk, så er konkateneringen LM = {s t s L& t M} Kleene stjerne Hvis <A, L> er et språk, så er L* alle mulige konkateneringer av et endelig antall strenger fra L. Formelt: L* er minste mengde s.a.: L* Hvis s L* og t L så er s t L* 19. januar 2017 26

Regulære språk Definisjon av regulære språk 1. Språkene Ø { } { a } for alle a A er regulære 2. Hvis M og L er regulære, er L M LM L* regulære Regulære uttrykk Ø Beskriver språket L(Ø) = Ø L( ) = { } a, for alle a A L(a) = { a } Hvis R og S er regulære uttrykk: (R + S) L(R+S)=L(R) L(S) (R T) L(R T) = L(R)L(T) (R*) L(R*)=L(R)* Merk: R S, R S, R S brukes også for R+S og brukes også for Vi kan sløyfe ( og ) hvis det er entydig Vanlig med operatorpresedens: R* så RS så R+S 19. januar 2017 27

Observasjoner Alle endelige språk er regulære Eks L({abc, bb, ca}) = L(abc) L(bb) L(ca), og L(abc) = L(a)L(b)L(c), osv. Rett frem å se Hvis L og M er regulære, så er 1. L M 2. A* L regulære. Ikke trivielt. Trenger bevis 19. januar 2017 28

Regulære språk Følgende er ekvivalente: a) L kan beskrives med et regulært uttrykk. b) Det fins en NFA som anerkjenner L. c) Det fins en DFA som anerkjenner L. 1. Gjort ekvivalensen av (b) og (c). 2. Fra (a) til (b) forholdsvis greit å se. 3. Fra (b/c) til (a) er litt vanskeligere å vise Litt notasjon: Hvis R er et regulært uttrykk, er L(R) språket beskrevet av R. Hvis M er en FSA, så er L(M) språket anerkjent av M. 29

Lag automat for reg. uttrykk Eksempel: ((a+c)*b(a+c))* 30

2. Fra regulært uttrykk til NFA til til til JFLAP algoritme litt annerledes: legger til flere kanter 19. januar 2017 31

2. Fra regulært uttrykk til NFA Gitt et regulært uttrykk r Lag en automat N med to tilstander: starttilstand og en sluttilstand en kant fra start til slutt merket med r Omform kantene trinn for trinn som vist på forrige side Da vil L(N)=L(r) Observasjon: N vil være ikke-deterministisk med -kanter 19. januar 2017 32

3. Fra FSA til RE Hvorfor ikke bare reversere forrige algoritme? Kryssende løkker! 33

Legg til ny start og sluttilstand Fjern 1 og 1 tilstand 34

Ved fjerning av tilstand k: For alle tilstander i og j: new(i,j) := old(i,j) + old(i,k) old(k,k)*old(k,j) old(k,j) er uttrykket på kanten fra k til j 35

Fra DFA til RE: 1. Lag: 1. Ny begynnertilstand med -kant til original begynnertilstand 2. Ny sluttilstand med -kant fra alle originale sluttilstander. (Dette er eneste sluttilstand.) 2. Omform alle til 3. Hvis det ikke går kant fra tilstand i til tilstand k, så er det det samme som en kant merket med Ø. 4. Fjern i tur og orden alle indre tilstander. Ved fjerning av tilstand k: For alle gjenværende tilstander i og j: new(i,j) := old(i,j) + old(i,k) old(k,k)* old(k,j) Ikke nødvendig å kunne konstruksjonen. Men vite at det er mulig! 36

Observasjoner Hvis L og Mer regulære språk, så er 1. L M 2. A* L regulære. Bevis for 2: Fra ekvivalensen finnes en DFA a1 s.a. L=L(a1) Så sist at da finnes en DFA a2 s.a. A*-L = L(a2) Fra ekvivalensen følger det at A*-L er regulært Oppgave: Vis (1) tilsvarende. 19. januar 2017 37

Hva har vi lært? At DFA, NFA og regulære uttrykk definerer de samme språkene: de regulære språkene Hvordan vi gitt et regulært uttrykk kan konstruere en NFA for samme språk, og deretter en DFA for språket (Kjennskap til hvordan en DFA kan omformes til et regulært uttrykk, men ikke forventet å gjøre dette.) 19. januar 2017 38