Automaten & Complexiteit (X )

Vergelijkbare documenten
Reguliere Expressies en Automaten: Overzicht

Inhoudsopgave. Inhoud

Automaten & Complexiteit (X )

In dit hoofdstuk introduceren we de hoofdrolspelers van het college: eindige automaten.

Automaten & Complexiteit (X )

opgaven formele structuren procesalgebra

Routeplanning middels stochastische koeling

Uitwerking Tentamen Analyse B, 28 juni lim

Reguliere Expressies

Bekijk onderstaand algoritme recalg. Bepaal recalg(5) en laat zien hoe u het antwoord hebt verkregen.

Eigenwaarden en eigenvectoren

3 Snijpunten. Verkennen. Uitleg

Talen & Automaten. Wim Hesselink Piter Dykstra Opleidingsinstituut Informatica en Cognitie 9 mei 2008

De klasse van recursief opsombare talen is gesloten onder en. Dit bewijzen we met behulp van een recursieve opsomming

Ontleden? Leuk! Inleiding. Opzet van deze lesbrief. Door Henk Jongsma, hoofdauteur Op Niveau tweede fase

is het koppel dat overeenkomt met het eindpunt van λ.op ax by = a a b x y = a b = x y a b ax by bx + ay = a b

2. Gegeven is de driehoek van figuur 10.10a. Gevraagd worden hoek β en de zijden a en c.

Analyse. Lieve Houwaer Dany Vanbeveren

Rekenregels van machten

Vectoranalyse voor TG

Automaten. Informatica, UvA. Yde Venema

Proeftentamen LAI (tweede deel), voorjaar 2006 Uitwerkingen

1 Vlaamse Wiskunde Olympiade : Tweede Ronde.

Zelfstudie practicum 1

Kwadratische reciprociteit

Datastructuren en algoritmen Uitwerkingen voorbeeldserie huiswerkopgaven

Voorbereidende opgaven Kerstvakantiecursus

Inhoud eindtoets. Eindtoets. Introductie 2. Opgaven 3. Terugkoppeling 6

3 De stelling van Kleene

1 Vlaamse Wiskunde Olympiade : Eerste Ronde.

Fundamenten van de Informatica

Primitieve en integraal

Inhoud college 7 Basiswiskunde

Het bepalen van een evenwichtstoedeling met behulp van het 1 e principe van Wardrop is equivalent aan het oplossen van een minimaliserings-probleem.

Didactische ondersteuning van theoretische informatica

Rekenen in Ê. Module De optelling. Definitie

Parels van studenten tijdens een examen

opgaven formele structuren tellen Opgave 1. Zij A een oneindige verzameling en B een eindige. Dat wil zeggen (zie pagina 6 van het dictaat): 2 a 2.

Uitwerking Opgaven Formele talen, grammaticas en automaten Week 1

== Modeluitwerking tentamen Analyse 1 == Maandag 14 januari 2008, u

Formularium Wiskunde 1 ste graad

4. LOGARITMISCHE EN EXPONENTIËLE FUNCTIES

Kennismaken. Wie zitten er bij jou in de klas? 4. Welke afspraken maak jij met je klas? 8

5.1 Hogeremachtswortels [1]

Getallenverzamelingen

4. LOGARITMISCHE EN EXPONENTIËLE FUNCTIES

Automaten en Berekenbaarheid

Bespreking Examen Analyse 1 (Juni 2007)

Deze les krijgen de leerlingen een introductie over ongelijke breuken. Dit met name gericht op het vergelijken met een bemiddelende grootheid.

wordt in de natuurkunde vaak door een vector, d.w.z. een pijl van ( ( , voorgesteld. De correspondentie tussen vectoren en paren punten ( a

opgaven formele structuren deterministische eindige automaten

Hoe maak je een huiswerkplanning?

I Vectoren in R. I.0 Inleiding

2) Kegelsneden (in basisvorm)

Praktische opdracht Optimaliseren van verpakkingen Inleidende opgaven

Resultatenoverzicht wiskunde B

Anti-Spyware Enterprise Module software

fonts: achtergrond PostScript Fonts op computers?

1.1 Terug naar Archimedes met simpele voorbeelden

Examen VWO. wiskunde B1,2 (nieuwe stijl)

Praktische Opdracht Lineair Programmeren V5

Exact periode 2.2. Gemiddelde en standaarddeviatie Betrouwbaarheidsinterval Logaritme ph lettersommen balansmethode

Hoofdstuk 2: Bewerkingen in R

Hoofdstuk 4. Talen en Automaten. 4.1 Formele Talen Woorden

1.3 Wortels. = a b c. x = 1.5 Breuken. teller teller. noemer noemer. Delen: vermenigvuldig met het omgekeerde.

Computers & programmeren

Onafhankelijk van a. f snijdt de x-as in punt A ( , 0) Voor elke positieve waarde van a is een functie f. gegeven door F ( x) = x e ax.

KATHOLIEKE UNIVERSITEIT LEUVEN SUBFACULTEIT ECONOMIE EN BEDRIJFSWETENSCHAPPEN HUB HANDELSWETENSCHAPPEN

1a Een hoeveelheid stof kan maar op één manier veranderen. Hoe?

ELEKTROMAGNETISME 1-3AA30

Discrete Wiskunde. D. Bruin J.M. Jansen

PEDAGOGISCHE STUDIEDAG LEERKRACHTEN ECONOMIE

Welke keuzes heb je op de verschillende beslismomenten? Benoem de fasen, toestanden, beslissingen en de

Transcriptie:

Automten & Complexiteit (X 401049) Eigenschppen vn reguliere tlen Jeroen Keiren j.j..keiren@vu.nl VU University Amsterdm 9 Februri 2015

Reguliere tlen Vorig college: De volgende beweringen zijn equivlent: er is een df M met L(M) = L er is een nf M met L(M) = L er is een rechts-lineire grmmtic G met L(G) = L er is een links-lineire grmmtic G met L(G) = L er is een reguliere expressie r met L(r) = L 2 / 32

Outline College 3 Elementire eigenschppen vn reguliere tlen String mtching Minimle df s Lexicle nlyse Niet reguliere tlen en de pompstelling Afronding 3 / 32

Elementire eigenschppen voor reguliere tlen Stelling Als L 1, L 2, L reguliere tlen zijn, dn zijn L 1 L 2, L 1 L 2, L 1 L 2, L, L 1 \L 2, L, L R ook regulier. Bewijs. L(r 1 ) = L 1, L(r 2 ) = L 2, L(r) = L voor reguliere expressies r 1, r 2, r. L 1 L 2 = L(r 1 + r 2 ) is regulier L 1 L 2 = L(r 1 r 2 ) is regulier L = L(r ) is regulier L wordt geccepteerd door een df (Q, Σ, δ, q 0, F ). L = L(Q, Σ, δ, q 0, Q\F ) is regulier L 1 L 2 = L 1 L 2 is regulier L 1 \L 2 = L 1 L 2 is regulier 5 / 32

L R is regulier Constructie Voor reguliere expressies r is de reguliere expressie rev(r) inductief gedefinieerd door: rev( ) = rev(λ) = λ rev() = ( Σ) rev(r 1 + r 2 ) = rev(r 1 ) + rev(r 2 ) rev(r 1 r 2 ) = rev(r 2 ) rev(r 1 ) rev(r ) = rev(r) Met inductie nr de structuur vn r kn bewezen worden dt L(rev(r)) = L(r) R Kies een reguliere expressie r met L(r) = L. L R = L(r) R = L(rev(r)) is regulier. 6 / 32

Elementire eigenschppen vn reguliere tlen Beslisbrheid string mtching Stelling Het is beslisbr of een string u in een reguliere tl L zit. Bewijs. 1. Representeer L in de vorm vn een df. 2. Bepl of u door de df wordt geccepteerd. On-the-fly genertie vn de df (t.o.v. u) voorkomt toestndsexplosie. 7 / 32

Elementire eigenschppen vn reguliere tlen Beslisbrheid tl equivlentie Stelling Het is beslisbr of twee reguliere tlen L 1 en L 2 gelijk zijn. Bewijs. Lt L 3 = (L 1 L 2 ) (L 1 L 2 ). Construeer een df M met L(M) = L 3. Bepl of er een pd is in M vn de strttoestnd nr een eindtoestnd. Zoj, dn L 1 L 2 ; zonee, dn L 1 = L 2. 8 / 32

String mtching (Thompson, 1968) Het volgende lgoritme (bijv. voor grep in Unix) zoekt of string u een substring bevt die in L(r) zit. 1. Beschrijf de reguliere expressie Σ r ls een nf. 2. Genereer on-the-fly het pd vn u in de bijbehorende df. 3. Termineer ls een eindtoestnd wordt bereikt. Worst-cse time complexity: O( r u ) Bouwen vn de hele df zou exponentieel veel tijd/geheugen kosten (in r ). Jv, Perl, PHP, Python gebruiken een string mtching lgoritme met bcktrcking dt exponentieel veel tijd kn kosten (in u ). 10 / 32

String mtching Voorbeeld r = ( b + bb )b leidt tot de nf b q 0 λ q 1 q 2 b q 3 q 4 b q 5 b q 6 We mtchen r ten opzichte vn u = bbbb. b 01 b b 012 0123 0145 0125 0146 b b b b q 0 q 0 q 2 q 4 q 5 q 6 11 / 32

Ken Thompson Dit string mtching lgoritme werd ontwikkeld door Ken Thompson. Smen met Dennis Ritchie won hij in 1983 de Turing wrd voor het operting systeem Unix. Ken Thompson (geb. 1943) ontwikkelde ook een dtbse voor schkeindspelen met mx. zes stukken. Dennis Ritchie (1941-2011) ontwikkelde ook de progrmmeertl C. 12 / 32

Minimle df s (Hopcroft, 1971) Gegeven een df M = (Q, Σ, δ, q 0, F ), construeren we de (unieke) df M met een miniml ntl toestnden zo dt L(M) = L( M). We nemen n dt de onbereikbre toestnden uit M zijn verwijderd. 14 / 32

Minimle df s (2) q, q Q zijn onderscheidbr ls er een w Σ is zo dt (q, w) (r, λ) en (q, w) (s, λ) met r F en s F, of vice vers. Stp 1 Prtitioneer Q in collecties niet onderscheidbre toestnden. De initiële prtitie is Q\F, F. Als er R en S in de prtitie vn Q zijn zo dt voor zekere Σ en r, r R: dn splitsen we R in δ(r, ) S en δ(r, ) S, {r R δ(r, ) S} {r R δ(r, ) S} We zijn klr ls er geen split meer kn worden uitgevoerd. 15 / 32

Minimle df s (3) Stp 2 Lt Q 1,..., Q n de uiteindelijke prtitie vn Q zijn. Dit zijn de toestnden vn de minimle df M, met ls pijlen: Q i Qj δ(q, ) Q j voor q Q i. De strttoestnd is de verzmeling die q 0 bevt. De eindtoestnden zijn de deelverzmelingen vn F. Worst-cse time complexity: O( Σ Q 2 ). Iedere split kost mx. O( Σ Q ), en er zijn mx. Q 1 splits. 16 / 32

Vrg Minimliseer de df q 1 b b q 0 q 2 q 4 b b q 3 b 17 / 32

Minimliseren vn nf s Het minimliseren vn nf s is heel lstig. Voorbeeld c b b c b c Stelling Het minimliseren vn nf s is PSpce-compleet. De definitie vn PSpce-compleet volgt lter. 18 / 32

Lexicle nlyse Lexicle nlyse zet een rij krkters (bijv. vn een progrmm) om in een rij tokens (, b,...). Reguliere expressies geven ptronen n. Bij iedere reguliere expressie hoort een token. Lexicle nlyse zoekt herhldelijk nr de lngste prefix vn de input-string die correspondeert met één vn de reguliere expressies. Deze prefix wordt omgezet in het bijbehorende token. 20 / 32

Lexicle nlyse Lt reguliere expressies r 1,..., r n de ptronen ngeven. r 1 + + r n wordt omgezet in een nf. Deze nf wordt omgezet in een minimle df. Als geen prefix met een reguliere expressie correspondeert, volgt een foutmelding. Als de lngste prefix correspondeert met meerdere reguliere expressies, wordt er één gekozen. 21 / 32

Lexicle nlyse JvCC en LEX genereren utomtisch een lexicle nlystor, vnuit de reguliere expressies, op bsis vn de bijbehorende minimle df. Voorbeeld FORTRAN beschrijft gehele getllen met de BNF grmmtic digit ::= 0 1 9 integer ::= digit + sign ::= + λ signed-integer ::= sign integer 22 / 32

Lexicle nlyse Voorbeeld (vervolg) De bijbehorende minimle df is +, 0,...,9 0,...,9 0,...,9 Doordt gezocht wordt nr een lngste prefix, wordt bijv. +52 niet geïnterpreteerd ls losse ptronen +5 en 2, mr ls één ptroon. 23 / 32

Niet-reguliere tlen Stelling L = { n b n n 0} is niet regulier. Bewijs. Stel dt M = (Q, {, b}, δ, q 0, F ) een df is met L(M) = L. Omdt Q eindig is, geldt (q 0, j ) (r, λ) en (q 0, k ) (r, λ), voor zekere j k en r Q. Dn geldt ook (q 0, j b j ) (s, λ) en (q 0, k b j ) (s, λ), voor zekere s Q. Echter, j b j L en k b j L. Tegensprk, dus L is niet regulier. We generliseren nu het idee vn dit bewijs. 25 / 32

Pompstelling voor reguliere tlen (1959) Stelling Zij L een reguliere tl. Er is een m > 0 zo dt voor elke w L met w m geldt: w = xyz met xy m en y 1, en xy i z L voor elke i 0. Bewijs. L = L(M) voor een df M, met m toestnden. Iedere w L met w m doorloopt een cykel in M: y x z toestnd die ls eerste 2 ml wordt bezocht door w 26 / 32

Pompstelling Voorbeeld De pompstelling kn gebruikt worden om te bewijzen dt een tl niet regulier is. Stel dt L = {w {, b} w = w R } regulier is. Volgens de pompstelling is er een m > 0 met m b m = xyz wrbij xy m, y 1, en xy i z L voor elke i 0. xy m en y 1, dus x = j en y = k met j 0 en k 1. Dus xyyz = m+k b m L. Tegensprk, dus L is niet regulier. 27 / 32

Pompstelling ls spel Ps op: Een contrdictie vn de pompstelling voor een specifieke wrde vn m, of vn x, y, z, is niet fdoende! ( m > 0 w L ( w m) x, y, z (w = xyz, xy m, y 1) i 0 : xy i z L) = m > 0 w L ( w m) x, y, z (w = xyz, xy m, y 1) i 0 : xy i z L De pompstelling ls spel: Gegeven een tl L. 1. De tegenstnder kiest m. 2. Wij kiezen een w L met w m. 3. De tegenstnder kiest x, y, z met w = xyz, xy m en y 1. 4. Als wij een i 0 kunnen kiezen met xy i z L, dn winnen wij. L voldoet niet n de pompstelling ls wij ltijd kunnen winnen. 28 / 32

Vrgen Lt met de pompstelling zien dt de tl { n b n n 0} niet regulier is. Is { 2k k 0} regulier? Wrom kn de tegenstnder ltijd winnen ls L eindig is? 29 / 32

Smengevt Als L 1, L 2, L regulier, dn L 1 L 2, L 1 L 2, L 1 L 2, L, L 1 \ L 2, L, L R ook String mtching: construeer df on-the-fly Minimle df s m.b.v. Hopcroft s lgoritme Gebruik pompstelling om tl niet regulier te bewijzen 31 / 32

Vooruit kijken Lees: Linz 2.4, 4.1 4.3 Mk: Linz 4.1: 17, 20, 26 (Let op! regulr moet right-liner zijn, tweeml) Linz 4.2: 5, 12 Linz 2.4: 1, 4, 6 Linz 4.3: 1, 3, 4ef Volgend college: Contextvrije tlen: Definitie Trnsformties en normlvormen Prseerlgoritmes 32 / 32