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

Vergelijkbare documenten
Uitwerking Opgaven Formele talen, grammaticas en automaten Week 1

TENTAMEN Basismodellen in de Informatica VOORBEELDUITWERKING

Verzamelingen deel 2. Tweede college

Automaten & Complexiteit (X )

Automaten. Informatica, UvA. Yde Venema

Formeel Denken 2014 Uitwerkingen Tentamen

Formele talen. Elfde college

Formeel Denken. Herfst 2004

Automaten en Berekenbaarheid 2016 Oplossingen #4

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

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

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Reguliere Expressies

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Getallensystemen, verzamelingen en relaties

Gerichte Grafen Boolese Algebra s &. Logische Netwerken

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Fundamenten van de Informatica

Formele talen. Tiende college

Formeel Denken 2013 Uitwerkingen Tentamen

Logische Complexiteit Hoorcollege 4

IN2505 II Berekenbaarheidstheorie Tentamen Maandag 2 juli 2007, uur

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie 22 maart 2009 ONEINDIGHEID

opgaven formele structuren deterministische eindige automaten

RuG-Informatica-cursus Discrete Structuren, versie 2009/2010

3 De stelling van Kleene

Tentamen TI2310 Automaten en Talen. 19 april 2012, uur

IN2505 II Berekenbaarheidstheorie. IN2505-II Berekenbaarheidstheorie. Practicum: Inschrijven. Practicum

Automaten en Berekenbaarheid

(Isomorfie en) RELATIES

c, X/X a, c/λ a, X/aX b, X/X

Mededelingen. TI1300: Redeneren en Logica. Waarheidstafels. Waarheidsfunctionele Connectieven

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.

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3

Verzamelingen deel 2. Tweede college

FP-theorie. 2IA50, Deel B. Inductieve definities 1/19. / department of mathematics and computer science

Volledige inductie. Hoofdstuk 7. Van een deelverzameling V van de verzameling N van alle natuurlijke getallen veronderstellen.

Automaten & Complexiteit (X )

Het omzetten van reguliere expressies naar eindige automaten, zie de vakken Fundamentele Informatica 1 en 2.

Formele talen. uitgebreid

Opgaven 1. Verwijzingen in deze opgaven betreffen het boek van Peter Linz.

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie 9 februari 2009 INLEIDING

Berekenbaarheid 2013 Uitwerkingen Tentamen 23 januari 2014

Berekenbaarheid 2016 Uitwerkingen Tentamen 26 januari 2017

RuG-Informatica-cursus Discrete Structuren, versie 2009/2010

Berekenbaarheid 2015 Uitwerkingen Tentamen 5 november 2015

Kennisrepresentatie & Redeneren. Piter Dykstra Instituut voor Informatica en Cognitie

Tentamen in2505-ii Berekenbaarheidstheorie

Combinatoriek groep 1

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Verzamelingen. Hoofdstuk 5

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie 9 februari 2009 BEWIJZEN

Automaten en Berekenbaarheid

Formeel Denken. Herfst Contents. 1 Combinatoriek 1

Module Limieten van de berekenbaarheid : antwoorden

1 Inleiding in Functioneel Programmeren

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Tweede college algoritmiek. 12 februari Grafen en bomen

Lindenmayer-systemen en turingmachines

Vorig college. IN2505-II Berekenbaarheidstheorie. Aanbevolen opgaven. Wat is oneindigheid? College 5

2WO12: Optimalisering in Netwerken

Bomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen. deel 2. Tiende college

I.3 Functies. I.3.2 Voorbeeld. De afbeeldingen f: R R, x x 2 en g: R R, x x 2 zijn dus gelijk, ook al zijn ze gegeven door verschillende formules.

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.

Automaten en Berekenbaarheid

Bomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen

Kennisrepresentatie & Redeneren. Piter Dykstra Instituut voor Informatica en Cognitie

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

Meetkundige Ongelijkheden Groep 2

Verzamelingen deel 3. Derde college

III.2 De ordening op R en ongelijkheden

Examen G0U13 - Bewijzen en Redeneren,

Bomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen. deel 1. Negende college

Het minimale aantal sleutels op niveau h is derhalve

III.3 Supremum en infimum

Examen G0U13 Bewijzen en Redeneren Bachelor of Science Fysica en Wiskunde. vrijdag 3 februari 2012, 8:30 12:30

8C080 deel BioModeling en bioinformatica

Week Hier vind je uitwerkingen van enkele opgaven uit het dictaat Grafen: Kleuren en Routeren.

(iii) Enkel deze bundel afgeven; geen bladen toevoegen, deze worden toch niet gelezen!

Definitie 1.1. Een groep is een verzameling G, uitgerust met een bewerking waarvoor geldt dat:

2WO12: Optimalisering in Netwerken

Hoofdstuk 2. Iteratie, Recursie en Inductie. 2.1 Fibonacci getallen

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde

Supplement Verzamelingenleer. A.J.M. van Engelen en K. P. Hart

Examen Datastructuren en Algoritmen II

RuG-Informatica-cursus Discrete Structuren, versie 2009/2010

Paradox van zelfreproductie. IN2505-II Berekenbaarheidstheorie. Zelfreproductie? Programma s en zelfreproductie. College 11.

Lineaire Algebra voor ST

Combinatoriek groep 1 & 2: Recursie

Inhoud. Introductie tot de cursus

rh276a 0 We breiden nu bovenstaand programmafragment uit door assignments toe te voegen aan een nieuwe variabele m, aldus:

Automaten en Berekenbaarheid

Algoritmiek. 15 februari Grafen en bomen

Matrixalgebra (het rekenen met matrices)

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde

Combinatoriek groep 2

Transcriptie:

Talen & Automaten Wim Hesselink Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.cs.rug.nl/~wim 9 mei 2008 Talen & automaten Week 1: Inleiding

Dit college Talen Automaten Berekenbaarheid Weekoverzicht Recursieve definities en inductieve bewijzen Grafen en bomen Talen formeel Reguliere verzamelingen en expressies Talen & automaten Week 1: Inleiding 1

Talen 1. Regulier 2. Contextvrij 3.... 4. Recursief opsombaar 5.... de Chomsky hierarchie Naom Chomsky Talen & automaten Week 1: Inleiding 2

N.b.: Automatensimulator De simulator voor de verschillende automaten vind je hier: http://ozark.hendrix.edu/ burch/proj/autosim/ Talen & automaten Week 1: Inleiding 3

Automaten Geeft ie ook gewone koffie? Een protocol als een eindige automaat Talen & automaten Week 1: Inleiding 4

Stapelautomaat Talen & automaten Week 1: Inleiding 5

Turing machine Alan Turing nog een Turing machine Talen & automaten Week 1: Inleiding 6

Berekenbaarheid Proposition 1. [Church-Turing]. Alles wat we kunnen berekenen is formuleerbaar als een partieel recursieve functie. Talen & automaten Week 1: Inleiding 7

Het grote plaatje Talen & automaten Week 1: Inleiding 8

Weekoverzicht 1. Overzicht van de cursus, wiskundige notaties, basisbegrippen formele talen, reguliere talen. H 1 [6, 7, 8], H 2 [1, 2, 3]. 2. Contextvrije grammatica s en contextvrije talen. H 3 [1, 2, 3, 4]. 3. Normaalvormen van contextvrije grammatica s H 4 [1, 2, 3, 4, (5)]. 4. Eindige automaten en reguliere talen H 5 [1, 2, 3, 4, 5]. H 6 [1, 2, 3, 4, 5, 6] en Minimale automaten 5. Stapelautomaten en contextvrije talen H 7 [1, 2, 3]. Het contextvrije pomplemma en afsluitingseigenschappen van contextvrije talen H 7 [4, 5]. 6. Turing machines H 8 [1, 2, 3, 4, 5, 6, 7]. Turing computable functies H 9. 7. Beslissingsproblemen en reductie daarvan H 11 [1, 2, 3, 4, 5]. Onbeslisbaarheid H 12 [1, 2, 3]. 8. Onbeperkte en contextgevoelige grammatica s en de Chomsky hierarchie H 10 [1, 2, 4]. Tentamen: maandag 30 juni, 13.00-16:00 uur, tennishal. Talen & automaten Week 1: Inleiding 9

Recursieve definities Definition 1. [Natuurlijke getallen]. De verzameling {0, s(0), s(s(0)),...} is recursief gedefinieerd door: 1. Basis: 0 N. 2. Recursieve stap: Als n LT dan ook: s(n). 3. Afsluiting: n LT alleen indien n in een eindig aantal recursieve stappen uit 0 verkregen kan worden. Definition 2. [LT-relatie]. De verzameling {[x,y] x,y N x < y} is recursief gedefinieerd door: 1. Basis: [0,1] LT (waarbij 1 = s(0)). 2. Recursieve stap: Als [m,n] LT dan ook: [m,s(n)] en [s(m),s(n)]. 3. Afsluiting: [m,n] LT alleen indien [m,n] in een eindig aantal recursieve stappen uit [0,1] verkregen kan worden. Talen & automaten Week 1: Inleiding 10

Inductieve bewijzen Definition 3. [Volledige inductie]. Stel X is een recursief gedefinieerde verzameling op basis van X 0 en X 1,X 2,... is de reeks verzamelingen waarbij X i de verzameling is, die wordt gevormd door de recursieve stap i keer toe te passen. Als voor een predikaat P geldt: 1. Basis: P geldt voor elk element van X 0, 2. Inductiestap: Indien P geldt voor elk element van X 0,X 1,...,X i (i 1) (Inductie hypothese) dan geldt P ook voor elk element van X i+1, dan geldt P voor alle elementen van X Talen & automaten Week 1: Inleiding 11

Voorbeeld 1. Stel E is een verzameling expressies, recursief gedefinieerd op het alfabet bestaande uit de symbolen {a, b}, de operatoren + en en haakjes, (, ): 1. Basis: a en b zijn in E. 2. Recursieve stap: Als u en v in E zitten, dan ook: (u +v), (u v) en ( u) 3. Afsluiting: Niets anders zit in E dan op grond van (1) en (2). Theorem 1. Voor alle expressies van E geldt dat het aantal haakjes twee keer zo groot is als het aantal operatoren; n p (a) = 2 n o (a) Bewijs: 1. Basis: a en b zijn de expressies van de basisstap. n p (a) = 0 = 2n o (a) en n p (b) = 0 = 2n o (b) 2. Inductie hypothese: Stel n p (u) = 2n o (u) voor alle expressies gegenereerd in n of minder recursieve stappen. 3. Inductie stap: Stel w is gegenereerd in n + 1 recursieve stappen. w = (u +v),w = (u v) of w = ( v) en u en v zijn gegenereerd in n of minder stappen, dus (ind. hyp.): n p (u) = 2n o (u) en n p (v) = 2n o (v) Talen & automaten Week 1: Inleiding 12

(a) Stel w = (u +v) of w = (u +v) (b) Stel w = ( v)... n p (w) = n p (u) +n p (v) +2 n o (w) = n o (u) +n o (v) +1 Dus: 2n o (w) = 2n o (u) +2n o (v) +2 = n p (u) +n p (v) +2 = n p (w) Talen & automaten Week 1: Inleiding 13

Gerichte grafen Definition 4. Een gerichte graaf is een structuur (V, A), waarin V een verzamelingend knopen is en A een binaire relatie op V, de buur-relatie. V = {a,b,c,d} A = {[a,b], [b,a], [b,c], [c,b], [c,d], [d,a], [d,d]} Definition 5. Een element van A heet een kant, boog, pijl of ribbe. Een pad is een reeks knopen en bogen x 0, [x 0,x 1 ],x 1, [x 1,x 2 ],... Talen & automaten Week 1: Inleiding 14

Bomen Definition 6. [Geordende boom]. Een geordende boom is een acyclische gerichte graaf met voor elke knoop een uniek pad van de wortel van de boom naar die knoop. Nog een paar begrippen: Kind, blad, minimale gemeenschappelijke voorouder, LEFTOF, grens. Talen & automaten Week 1: Inleiding 15

Strings en talen Definition 7. Een alfabet Σ, is een verzameling symbolen, a,b,c,d,e. Strings zijn rijen symbolen, p,q,u,v,w,x,y,z. λ is de lege string. Definition 8. [Sigma ster]. Stel Σ is een alfabet; de verzameling strings over Σ, Σ is recursief gedefinieerd: 1. Basis: λ Σ 2. Recursiestap: Als w Σ en a Σ, dan ook wa Σ 3. Afsluiting: λ Σ alleen als w in een eindig aantal recursiestappen uit λ kan worden verkregen. Voorbeeld 2. Stel Σ = {a,b,c}, dan bestaat Σ uit: lengte 0: λ lengte 1: a,b,c lengte 2: aa,ba,ca,ab,bb,cb,ac,bc,cc lengte 3: aaa, aab, aac, baa, bbb,...... Talen & automaten Week 1: Inleiding 16

Definition 9. [Taal]. Een taal over een alfabet Σ is een deelverzameling van Σ. Definition 10. [Concatenatie van strings]. Als u,v Σ dan is de concatenatie van u en v, notatie: uv een binaire operatie op Σ gedefinieerd door: 1. Basis: Als lengte(v) = 0 dan v = λ en uv = u. 2. Recursieve stap: Als v een string is met lengte(v) > 0 dan v = wa voor een string w met lengte(w) = lengte(v) 1 en a Σ en uv = (uw)a Voorbeeld 3. Stel u = aab,v = b en w = ccc dan uv = aabb vw = bccc (uv)w = aabbccc u(vw) = aabbccc Talen & automaten Week 1: Inleiding 17

Theorem 2. [Associativiteit van concatenatie]. Stel u,v,w Σ dan: (uv)w = u(vw) Bewijs: 1. Basis: Als lengte(w) = 0 dan w = λ en (uv)w = uv. En aan de andere kant: u(vw) = u(v) = uv. 2. Inductie hypothese: Stel (uv)w = u(vw) voor alle strings w met lengte(w) n. 3. Inductie stap: Te bewijzen (uv)w = u(vw) voor alle strings w met lengte(w) = n +1. Dan w = xa voor een string x met lengte(x) = n en a Σ. (uv)w = (uv)(xa) subst. w = xa = ((uv)x)a def. conc. = (u(vx))a ind. hyp. = u((vx)a) def. conc. = u(v(xa)) def. conc. = u(vw) subst xa = w Talen & automaten Week 1: Inleiding 18

Definition 11. [Het omgekeerde]. Als u een string in Σ is, dan is het omgekeerde van u, notatie: u R, aldus gedefinieerd: 1. Basis: Als lengte(u) = 0 dan v = λ en λ R = λ. 2. Recursieve stap: Als lengte(u) = n > 0 dan u = wa voor een string w met lengte(w) = n 1 en a Σ en u R = aw R. Opdracht 1. Bewijs de stelling: Als u,v Σ dan (uv) R = v R u R. Talen & automaten Week 1: Inleiding 19

Specificatie van talen Voorbeeld 4. De taal L met alfabet {a, b} waarvan alle strings met een a beginnen en even zijn: 1. Basis: aa,ab L. 2. Recursieve stap:als u L dan uaa,uab,uba,ubb L. 3. Afsluiting: Een string u zit alleen in L als u in een eindig aantal recursiestappen uit de basis kan worden verkregen. Opdracht 2. Geef een definitie van de taal over {a,b}, waarin elke b direct wordt voorafgegaan door een a. Opdracht 3. Geef een definitie van de taal over {a,b}, met evenveel a s als b s. 1 Definition 12. [Concatenatie van talen]. De concatenatie van de talen X en Y, notatie: XY is de taal: XY = {uv u X v Y} Notatie: X met zichzelf n keer: X n. X 0 = def {λ} Definition 13. X = X i en X + = i=0 1 Twee foutjes op pg 46 v.h. boek i=1 X i Talen & automaten Week 1: Inleiding 20

Voorbeeld 4. Van de taal L = {a,b} {bb}{a,b} met alfabet {a,b} beschikken alle strings over een substring bb Opdracht 5. Definieer een taal L over {a, b} waarvan alle strings beginnen met aa en eindigen op bb. Opdracht 6. Definieer een taal L over {a,b} met een even lengte. Vraag 1. Wat is de eigenschap van de strings van de taal L = {λ,aa,aaaa} over {a}? Kan dat ook eenvoudiger worden gedefinieerd? Talen & automaten Week 1: Inleiding 21

Reguliere verzamelingen Definition 14. Stel Σ is een alfabet. De reguliere verzamelingen over Σ zijn recursief als volgt gedefinieerd: 1. Basis:, {λ} en {a}, voor elke a Σ, zijn reguliere verzamelingen over Σ. 2. Recursieve stap: Als X en Y reguliere verzamelingen over Σ zijn, dan ook: X Y,XY en X. 3. Afsluiting: X is alleen een reguliere verzameling als X in een eindig aantal recursiestappen uit de basis kan worden verkregen. Een taal is regulier, als die gedefinieerd is als een regulier verzameling. Voorbeeld 7. De taal van voorbeeld 5, de verzameling strings die bb bevatten is regulier over {a,b}. aaaa 1. De basis {a} en {b} is regulier. aaaa 1.5 Dus {a, b} = {a} {b} regulier over {a, b}. aaaa 2. De vereniging en de Kleene-ster geven {a,b} is aaaa1.a regulier over {a,b}. aaaa 3. De concatenatie {b}{b} = {bb} is regulier. aaaa 4. Twee keer concatenatie geeft: {a,b} {bb}{a,b} Opdracht 6. Bewijs dat de verzameling strings over {a, b}, die beginnen en eindigen op een a en tenminste één b bevatten regulier is. Talen & automaten Week 1: Inleiding 22

Reguliere expressies Definition 15. Stel Σ is een alfabet. De reguliere expressies over Σ zijn recursief als volgt gedefinieerd: 1. Basis:, λ en a, voor elke a Σ, zijn reguliere expressies over Σ. 2. Recursieve stap: Als u en v reguliere expressies over Σ zijn, dan ook: (u v), (uv) en (u ). 2 3. Afsluiting: X is alleen een reguliere expressie als X in een eindig aantal recursiestappen uit de basis kan worden verkregen. Voorbeeld 8. {a,b}. De expressie ba(a b) ab is regulier over verzameling expressie motivering 1.{a} a basis 2.{b} b basis 3.{a}{b} = {ab} ab 1, 2 concatenatie 4.{a} {b} = {a,b} a b 1,2 vereniging 5.{b}{a} = {ba} ba 2, 1 concatenatie 6.{a,b} (a b) 4 Kleene ster 7.{ba}{a,b} {ab} ba(a b) ab 5,6,3 concatenatie 2 Het aantal haakjes kan gereduceerd worden door: a: gebruik te maken van associativiteit van en concatenatie (u(vw) = (uv)w = uvw) b: een prioriteitsvolgorde af te spreken: 1 Kleene-ster, 2 concatenatie, 3 vereniging Talen & automaten Week 1: Inleiding 23

Equivalenties van reguliere expressies 1. u = u = 2. λu = uλ = u 3. = λ 4. λ = λ 5. u v = v u 6. u = u 7. u u = u 8. u = (u ) 9. u(v w) = uv uw 10. (u v)w = uw vw 11. (uv) u = u(vu) (u v) = (u v) = u (u v) = (u vu ) 12. = (u v ) = u (vu ) = (u v) u Talen & automaten Week 1: Inleiding 24

Toepassing van reguliere expressies Reguliere expressies in tekstverwerker Talen & automaten Week 1: Inleiding 25