Fundamenten van de Informatica



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

Fundamenten voor de Informatica

Automaten & Complexiteit (X )

Automaten. Informatica, UvA. Yde Venema

3 De stelling van Kleene

opgaven formele structuren deterministische eindige automaten

Automaten & Complexiteit (X )

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

Reguliere Expressies

Verzamelingen deel 2. Tweede college

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

Automaten en Berekenbaarheid

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

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

Getallensystemen, verzamelingen en relaties

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

Notatie van verzamelingen. Lidmaatschap. Opgave. Verzamelingen specificeren

Uitwerking Opgaven Formele talen, grammaticas en automaten Week 1

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

Een combinatorische oplossing voor vraag 10 van de LIMO 2010

VERZAMELINGEN EN AFBEELDINGEN

Formeel Denken 2014 Uitwerkingen Tentamen

Semantische eigenschappen van XML-schematalen

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

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

Zomercursus Wiskunde. Katholieke Universiteit Leuven Groep Wetenschap & Technologie. September 2008

Verzamelingen deel 3. Derde college

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.

Introductie tot de cursus

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.

Formeel Denken 2013 Uitwerkingen Tentamen

Gerichte Grafen Boolese Algebra s &. Logische Netwerken

2WO12: Optimalisering in Netwerken

Automaten en Berekenbaarheid

Getaltheorie I. c = c 1 = 1 c (1)

2WO12: Optimalisering in Netwerken

Jongleren met Wiskunde

Oplossingen oefeningen logica en eindige automaten 12 december Het bestand oplnoef12dec.zip bevat de.sen en.fa bestanden met de oplossingen.

inhoudsopgave januari 2005 handleiding algebra 2

Bespreking van het examen Complexe Analyse (tweede zittijd)

II.3 Equivalentierelaties en quotiënten

Vorig college. IN2505-II Berekenbaarheidstheorie College 4. Opsommers versus herkenners (Th. 3.21) Opsommers

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

1 Rekenen in eindige precisie

We beginnen met de eigenschappen van de gehele getallen.

6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen:

Automaten & Complexiteit (X )

1 Vlaamse Wiskunde Olympiade : Tweede Ronde.

Zomercursus Wiskunde. Module 1 Algebraïsch rekenen (versie 22 augustus 2011)

III.2 De ordening op R en ongelijkheden

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

Meetkundige Ongelijkheden Groep 2

1 Kettingbreuken van rationale getallen

Bijzondere kettingbreuken

6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen:

Examen G0U13 - Bewijzen en Redeneren,

De Cirkel van Apollonius en Isodynamische Punten

Opgaven Inleiding Analyse

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

Uitwerkingen toets 12 juni 2010

Lab Webdesign: Javascript 3 maart 2008

Je hebt twee uur de tijd voor het oplossen van de vraagstukken. µkw uitwerkingen. 12 juni 2015

Hoofdstuk 1. Getallen tellen. 1.1 Gehele getallen. 1.2 Recursieve definities. 1.3 Het induktieprincipe

Hoofdstuk 4. In dit hoofdstuk wordt een aantal uiteenlopende eigenschappen van de propositielogica

Modulewijzer InfPbs00DT

Tentamen TI1300 en IN1305-A (Redeneren en) Logica

Werkwinkel Permutatiepuzzels

Verzamelingen. Hoofdstuk 5

Examen Datastructuren en Algoritmen II

Automaten en Berekenbaarheid

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Uitwerkingen Rekenen met cijfers en letters

Transcriptie:

Fundamenten van de Informatica Luc De Raedt Academiejaar 2006-2007 naar de cursustekst van Karel Dekimpe en Bart Demoen A.1: Talen en Eindige Automaten 1

Deel 1: Inleiding 2

Motivatie Fundamenten van de Informatica formele basis van de informatica - abstract & wiskundig onveranderlijk informatica is ook iets anders dan programmeren! De rest van de informatica bouwt hierop verder 3

Overzicht Drie delen 1. Automaten en Complexiteit 2. Grafen 3. Vastepuntstheorie 4

Automaten en Complexiteit Automaat : een formeel, wiskundig model van een computer verschillende soorten, verschillen naar gelang wat ze kunnen berekenen Wij: eindige toestands-automaten en Turingmachines 5

Alan Turing (1912-1954) Basis van de informatica a.d.h.v. zijn Turing Machines Wiskundig model Notie van berekenbaarheid Sterke invloed op Kunstmatige Intelligentie (o.a. Turing test) Turing-award 6

Complexiteit Wat kunnen we efficiënt berekenen? verschillende klassen van problemen de ultieme vraag P = NP? NP NPC P - we weten dat P NP - ook : als er één NP-compleet probleem is dat in P ligt, dan is P = NP - NP-compleet: de moeilijkste problemen in NP 7

Grafen Wat is een graaf? knopen + bogen Voorbeelden computer netwerken elektriciteitsnetwerken sociale netwerken 8

Vastepuntstheorie x is een vast punt van een functie f als en slechts als f(x) =x Verschillende eigenschappen Belangrijk voor semantiek (betekenis) van logica, gegevensbanken en programmeertalen convergentie van algoritme Wij: een aantal eigenschappen en stellingen (Tarski en Kleene) 9

Praktisch We volgen de cursus tekst Dekimpe, Demoen, Fundamenten van de Informatica. Online op Toledo. Alles komt online op Toledo Cursus-tekst +Oefeningen + Slides + Discussie-forum Oefenzittingen gegeven door Jon Sneyers & Siegfried Nijssen 10

Lessen Dinsdag 14.00-16.00 Vrijdag 14.00-16.00 Maar verschillende lessen vallen weg, o.a. di 20 februari vrij 9 maart di 17 en vrij 20 april di 1, di 15, vrij 18 mei Kijk naar aankondigingen op Toledo! 11

A: Inleiding tot Complexiteit 12

A1. Talen en Automaten 13

A1.1. Talen 14

Strings Definitie (1.1.1). Strings over een alfabet. Een alfabet is een niet-lege eindige verzameling Σ. De elementen van Σ worden symbolen genoemd. Een string over Σ is een eindige rij symbolen σ 1 σ 2 σ n, waarbij elke σ i Σ. De lengte van een string is het aantal (al dan niet verschillende) symbolen dat gebruikt wordt om de string op te bouwen. Er is bovendien één string van lengte 0, de lege string, die we met λ zullen aanduiden. De verzameling van alle strings over een alfabet Σ duiden we aan met Σ 15

Taal Definitie (1.1.2). Een taal. Een taal over een alfabet Σ is een deelverzameling L Σ. Neem Σ = {0, 1}. 16

Voorbeelden van Talen 1. L 1 = 2. L 2 = Σ = {λ, 0, 1, 00, 01, 10, 11, 000, 001, 010, 100, 011, 101, 110, 111,...} 3. L 3 = {11, 101, 1001, 10001, 100001,...} 4. L 4 = {λ, 01, 0011, 000111, 00001111, 0000011111,...} 5. L 5 = {10, 1001110, 000000} 6. L 6 = {10, 11, 101, 111, 1011,...} 17

Algoritme Met een algoritme bedoelen we een oplossingsmethode bestaande uit een eindige opeenvolging van instructies, die elk op precies één wijze uit te voeren zijn, en die steeds eindigt. Voor welke talen L bestaat er een algoritme dat herkent of een string s Σ tot L behoort? 18

A1.2. Reguliere Expressies en Talen 19

Operaties op Strings Voor een alphabet Σ definieer op Σ volgende operaties: De concatenatie of samenstelling. Indien x = σ 1 σ 2 σ n Σ en y = µ 1 µ 2 µ m Σ dan is hun samenstelling xy = σ 1 σ 2 σ n µ 1 µ 2 µ m Σ Voorbeeld. Neem Σ = {a, b, c, d}, x = abba en y = abcd dan is xy = abbaabcd. Er geldt voor elke x Σ dat λx = xλ = x en λλ = λ. 20

Operaties op Strings Voor x Σ definiëren we x 0 = λ n N : x n+1 = xx n Voorbeeld. Indien x = abb is x 3 = abbabbabb. Met x bedoelen we geen of meer kopieën van x. Met andere woorden, een element uit {x n n N}. Met x + bedoelen we één of meer kopieën van x. Met andere woorden, een element uit {x n n N 0 }. 21

Operaties op Talen Zij A, B Σ, dan is AB = {ab a A, b B} A 0 = {λ} n N : A n+1 = AA n A = A 0 A A 2 A 3 = A n. n=0 A wordt de Kleenesluiting van A genoemd A + = A A 2 A 3 = n=1 A n 22

Reguliere Taal Definitie (1.2.1). Reguliere Taal. Indien Σ een alfabet is, dan wordt de klasse van alle reguliere talen R over Σ inductief als volgt gedefinieerd: 1. R, {λ} R en σ Σ : {σ} R. 2. Indien A, B R dan ook (A) R, AB R, A B R en A R Elke taal uit R wordt een reguliere taal genoemd. 23

Bindingsregels Is A (BC) = (A B)C? Volgorde evaluatie: 1. expressies binnen haakjes 2. Kleene-sluitingen 3. concatenaties 4. unies Dus: A BC = A (B(C ))! 24

Voorbeeld Is L = {0110, 01010, 010010, 0100010, 01000010,...} een reguliere taal? 1. {0} en {1} zijn reguliere talen 2. {0}{1} en {1}{0} zijn reguliere talen 3. {0}* is een reguliere taal 4. {0}{1}{0}* is een reguliere taal 5. {0}{1}{0}*{1}{0} is een reguliere taal = L 25

Reguliere expressies Reguliere expressies zijn analoog aan reguliere talen. Zij worden vaak gebruik bij het zoeken naar patronen in text of gegevens, bvb. grep en egrep in Unix, Linux, etc. Voorbeelden met Σ = ASCII 123 en Hallo! en Dag Jef. ab*c = {ac, abc, abbc, abbbc,...} b(ab)*c = {bc, babc, bababc, babababc,...} d(i a)t = {dit, dat} w((ie) (at)) = w(ie at) = {wie, wat} (Volgens voorrangsregels) d(a i)*t = {dt, dat, dit, dait, diat, daat, diit,... } 26

Verdere voorbeelden Voorbeeld. reguliere expressie ab c a(b c) (ab) c Verzameling van overeenkomstige strings {ab n n N} {c} = {a, ab, abb, abbb, abbbb,..., c} {ab n n N} {ac} = {a, ab, abb, abbb, abbbb,..., ac} {(ab) n n N} {c} = {λ, ab, abab, abab, ababab, abababab,..., c} 27

Reguliere Expressies Definitie (1.2.2). - Reguliere expressie Indien Σ een alfabet is, dan wordt een reguliere expressie over Σ op inductieve wijze als volgt gedefinieerd: 1. is een reguliere expressie 2. λ is een reguliere expressie 3. Voor elke σ Σ is σ een reguliere espressie 4. Indien A en B reguliere expressies zijn, dan zijn ook (A), A, A B en AB reguliere expressies. Elke reguliere expressie bepaalt een reguliere verzameling. 28

Expressies en Talen Stelling (1.2.3). Voor een gegeven alfabet Σ geldt dat de klasse van de reguliere talen op Σ precies samenvalt met de klasse van de reguliere verzamelingen. Voor elke reguliere taal is er een corresponderende reguliere expressie en vice versa. Bvb. {1}{0}*{1} <-> 10*1 Opmerking: niet alle talen zijn regulier! bvb. {0 n 1 n n N} 29

A1.3 Eindige Automaten 30

Eindige Automaten Automaat implementeert algoritme Beschouw 11001 en 1001 0 1 1 Start 0 1 0 0 1 Voor elke string in Σ * eindigen we in of niet 31

Eindige Automaten Definitie (1.3.1). Een eindige automaat (FSA - Finite State Automaton) is een 5-tal A = (Q, Σ, δ, q 0, F ) Q een eindige verzameling is. We noemen de elementen van Q de toestanden van de automaat A. F Q is de verzameling van de aanvaardbare eindtoestanden. (De letter F is de eerste letter van het engelse Final). q 0 Q, deze toestand wordt de begintoestand genoemd. Σ is een eindige verzameling, het alfabet van de automaat. δ is een afbeelding, de transitieafbeelding genoemd, δ : Q Σ Q. 32

Eindige Automaat Start in de begintoestand q 0 met invoerstring x = σ 1 σ 2... σ n Per tijdseenheid t := 1...n voer een instructie uit: q it := δ(q it 1, σ t ) (geeft nieuwe toestand). laatste stap is q in := δ(q in 1, σ n ) Twee mogelijkheden : Als q in een aanvaardbare eindtoestand (in F ) is, dan aanvaard x anders verwerp x 33

Voorbeeld Voorbeeld. We beschouwen een eindige automaat A = (Q, Σ, δ, q 0, F ), met 1. Q = {E, O}, met begintoestand q 0 = E. 2. F = {E} 3. Σ = {0, 1}. 4. De afbeelding δ wordt gegeven door volgende tabel δ 0 1 O O E E E O 34

Voorbeeld (2) De werking van de automaat op de string 1101 is als volgt: 1. Stap 1: de automaat berekent q i1 = δ(q 0, 1) = δ(e, 1) = O. 2. Stap 2: de automaat berekent q i2 = δ(q i1, 1) = δ(o, 1) = E. 3. Stap 3: de automaat berekent q i3 = δ(q i2, 0) = δ(e, 0) = E. 4. Stap 4: de automaat berekent q i4 = δ(q i3, 1) = δ(e, 1) = O F. De invoerstring 1101 wordt verworpen. 35

Grafisch Voor elke toestand uit Q tekenen we een cirkel. De toestanden die tot F behoren voorzien we van een dubbele rand. De begintoestand q o wordt gekenmerkt door een inkomende pijl. Indien δ(q, σ) = q tekenen we een pijl tekenen van de cirkel die toestand q voorstelt, naar de cirkel die toestand q voorstelt en we geven het label σ aan deze pijl. Evt. meer labels per pijl. 36

Grafisch 0 1 E O 0 1 37

Transities voor Strings Definieer een afbeelding δ op strings: De definitie is inductief: δ : Q Σ Q. 1. σ Σ, q Q : δ (q, σ) = δ(q, σ). 2. Indien x = σ 1 σ 2... σ n Σ een string is van lengte n 2, dan: δ (q, x) = δ (q, σ 1 σ 2... σ n ) = δ (δ(q, σ 1 ), σ 2... σ n ). 3. Voor de volledigheid nemen we δ (q, λ) = q 0. 38

Taal van Automaat Merk op: de automaat zal eindigen in toestand δ (q 0, x) voor een string x. Ook: de string x wordt aanvaard als en slechts als δ (q 0, x) F. Definitie (1.3.2). Taal bepaald door een eindige automaat Indien A = (Q, Σ, δ, q 0, F ) een eindige automaat is, noemen we L(A) = {x Σ δ (q 0, x) F } de taal bepaald door de eindige automaat A. Indien voor een gegeven taal L Σ geldt dat L = L(A) zeggen we dat A de taal L herkent. 39

Voorbeeld 0 1 E O 0 1 L(A) = {x {0, 1} x bevat een even aantal 1-en} 40

Eindige Automaten en Reguliere Talen Stelling (1.3.3). De klasse van talen die herkend worden door een eindige automaat valt precies samen met de klasse van de reguliere talen. Zonder bewijs maar illustratie a.d.h.v. voorbeeld. Automaat voor de taal over Σ={a,b} waarvan elke string op bb eindigt. L={a,b} * {bb} 41

Voorbeeld L={a,b} * {bb} Hoe ontwerp ik een automaat? Welke toestanden moet ik voorzien? Toestanden ~ geheugen. Bvb. abbbabb a b b b a b b onthouden 0 1 2 2 0 1 2 42

Voorbeeld L={a,b} * {bb} a b b q0 q1 q2 a b a 43

Een niet reguliere taal Bewering: L = {0 n 1 n n N} is niet regulier. Argumentatie. Er bestaat geen eindige automaat die deze taal aanvaard. Stel dat er wel zo n automaat A = (Q, Σ, δ, q 0, F ) zou bestaan (redenering uit het ongerijmde). Neem aan dat Q = {q 0, q 1,..., q n 1 } en beschouw de string x = 0 n 1 n L. Verloop van de machine: 44

gelezen symbool nieuwe toestand 0 0... 0... 0... 0 1 1... 1 q 0 q i1 q i2... q ip... q ir... q in q in+1 q in+2... q i2n }{{} F Pigeonhole principle - Duiventil principe : p, r : 0 p < r n zodat q ip = q ir. Schrap nu de 0-en van p + 1 tot en met r: gelezen symbool nieuwe toestand 0... 0 0 0... 0 1 1... 1 q 0 q i1... q ip 1 q ip }{{} =q i r q ir+1... q in q in+1 q in+2... q i2n }{{} F Dan wordt een string aanvaard door de automaat die niet tot de taal behoort. 45

Een veralgemening Stelling. Het pumping lemma (behoort niet tot de examenstof) Als L een reguliere taal is, dan bestaat er een getal p (de pumping lengte) zodat als s L en lengte(s) p dan kan s geschreven worden als s = xyz waarbij x, y, z strings zijn die aan de volgend voorwaarden voldoen: i N : xy i z L lengte(y) > 0 (dus y λ) lengte(xy) p 46

Bewering: L = {0 n 1 n n N} is niet regulier. Argumentatie: Een bewijs uit het ongerijmde gebruik makende van het pumping lemma. Stel L is regulier en kies s = 0 p 1 p waarbij p de pumping lengte is. Dan kunnen we s schrijven als xyz zodat xy i z L voor i 0. Er zijn nu drie mogelijkheden voor y: y bestaat alleen uit 0-en. Maar dan heeft de string xyyz ook tot L behoren, maar er zijn meer 0-en dan 1-en. Dit is een contradictie volgens de definitie van L. y bestaat alleen uit 1-en. Analoge redenering. y bestaat uit zowel 0-en als 1-en. Maar dan moet de string xyyz ook tot L behoren, maar in deze string wordt de volgorde van 0 en 1 niet gerespecteerd. 47

A1.4 Niet Deterministische Automaten 48

Niet-deterministische Automaten Niet-determinisme: er bestaan verschillende mogelijkheden voor de volgende toestand Basis voor parallelle verwerking Wij: automaten + Turing-machines 49

Niet-deterministische Automaten Definitie (1.4.1). Een niet-deterministische eindige automaat Een niet deterministische eindige automaat is een 5-tal A = (Q, Σ, δ, q 0, F ) waarbij Q een eindige verzameling van toestanden. F Q is de verzameling van aanvaardbare eindtoestanden. q 0 Q, de begintoestand van de automaat. Σ is een eindige verzameling, het alfabet. δ is een afbeelding δ : Q (Σ {λ}) P(Q). P(Q) = {X X Q}: is de verzameling van alle deelverzamelingen van Q. 50

Voorbeeld a, b b b q0 q1 q2 Merk op: niet noodzakelijk een transitie voor elk symbool vanuit een knoop meerdere transities voor één symbool vanuit een knoop mogelijk ook transities voor λ mogelijk String abb: 3 mogelijkheden. 51

Transities voor Strings Breidt δ voor symbolen uit naar δ voor strings naar analogie met de deterministische automaten. Voorbeeld. Voor de niet deterministische eindige automaat van daarnet is 1. δ (q 0, abb) = {q 0, q 1, q 2 } 2. δ (q 0, abab) = {q 0, q 1 } 3. δ (q 0, aaaaaaa) = {q 0 } a, b b b q0 q1 q2 52

Taal van de Automaat Definitie (1.4.2). Taal aanvaard door een niet deterministische automaat. Indien A = (Q, Σ, δ, q 0, F ) een niet deterministische eindige automaat is, noemen we L(A) = {x Σ δ (q 0, x) F } de taal bepaald door de eindige automaat A. Indien voor een gegeven taal L Σ geldt dat L = L(A) zeggen we dat A de taal L herkent. Voorbeeld. Welke taal herkent onze automaat? L = {a, b} {bb} 53

Eigenschap Stelling (1.4.3). Elke taal die herkend wordt door een niet deterministische eindige automaat wordt eveneens herkend door een deterministische eindige automaat. 54

Voorbeeld Voorbeeld. We zoeken een niet deterministische eindige automaat die de taal L = {a} {b} {c} op het alfabet Σ = {a, b, c} herkent. 55

Eigenschap Voor elke reguliere taal L bestaat er een nietdeterministische automaat die L herkent. 56

Eigenschap Voor elke reguliere taal L bestaat er een nietdeterministische automaat die L herkent. Bewijs door inductie: L = L = {λ} L = {σ} 57

Reguliere Taal Definitie (1.2.1). Reguliere Taal. Indien Σ een alfabet is, dan wordt de klasse van alle reguliere talen R over Σ inductief als volgt gedefinieerd: 1. R, {λ} R en σ Σ : {σ} R. 2. Indien A, B R dan ook (A) R, AB R, A B R en A R Elke taal uit R wordt een reguliere taal genoemd. 58

Inductie Stap Een machine met taal A Een machine met taal AB 59

Inductie Stap Met taal A B Met taal A * 60

Besluit Reguliere talen, expressies en eindige automaten (zowel deterministisch als niet deterministisch) definiëren dezelfde soort van talen Automaten worden vaak gebruikt bij modellering Er bestaan ook probabilistische uitbreidingen (bvb. (Hidden) Markov Modellen), en uitbreidingen die een uitvoer produceren ( transducers ) Reg. expressies worden soms ook gebruikt als patroon voor het vinden van strings Deze talen zijn wel beperkt ({0 n 1 n n is een natuurlijke getal}) 61