Automaten & Complexiteit (X )

Vergelijkbare documenten
Automaten & Complexiteit (X )

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

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

Automaten. Informatica, UvA. Yde Venema

Formeel Denken. Herfst 2004

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

TENTAMEN Basismodellen in de Informatica VOORBEELDUITWERKING

Automaten en Berekenbaarheid 2016 Oplossingen #4

opgaven formele structuren deterministische eindige automaten

Automaten en Berekenbaarheid

Finite automata. Introductie 35. Leerkern 36. Zelftoets 44. Terugkoppeling 45

3 De stelling van Kleene

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

Vorig college. IN2505-II Berekenbaarheidstheorie. Turingmachines. Turingmachine en Taal. College 2

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Fundamenten van de Informatica

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Automaten & Complexiteit (X )

Formele talen. Elfde college

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

Stelling. SAT is NP-compleet.

Formeel Denken 2014 Uitwerkingen Tentamen

Inhoud. Introductie tot de cursus

IN2505 II Berekenbaarheidstheorie Tentamen Maandag 2 juli 2007, uur

Beslisbare talen (1) IN2505-II Berekenbaarheidstheorie. Beslisbare talen (2) Beslisbare talen (3) De talen: College 7

Logische Complexiteit Hoorcollege 4

Formele talen. Tiende college

Formele talen. uitgebreid

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

Verzamelingen deel 2. Tweede college

Tentamen in2505-ii Berekenbaarheidstheorie

Berekenbaarheid 2016 Uitwerkingen Tentamen 26 januari 2017

Logische Complexiteit

Tentamen TI2310 Automaten en Talen. 19 april 2012, uur

Berekenbaarheid 2013 Uitwerkingen Tentamen 23 januari 2014

Uitwerking Opgaven Formele talen, grammaticas en automaten Week 1

Reguliere Expressies

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

Automaten en Berekenbaarheid

Vorig college. IN2505-II Berekenbaarheidstheorie. Intermezzo / kleine opfriscursus. Deterministische eindige automaten (DFA) College 6

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

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.

Berekenbaarheid 2015 Uitwerkingen Tentamen 5 november 2015

Eindige. Automaten. zie dictaatje 4.2 ch.12 Languages, Automata, Grammars 12.5 finite state automata. Dertiende college

Getallensystemen, verzamelingen en relaties

Negende college complexiteit. 9 april NP-volledigheid I: introductie

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

Fundamentele Informatica

Taaltechnologie. Januari/februari Inhoud

Automaten en Berekenbaarheid

Automaten en Berekenbaarheid

VERZAMELINGEN EN AFBEELDINGEN

pã~êí=påüéã~=s~äáç~íçê

Deeltentamen Grammatica s en ontleden 22 december 2005

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

Vorig college. IN2505-II Berekenbaarheidstheorie. Voorbeeld NDTM. Aanbevolen opgaven. College 3

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

(On)Doenlijke problemen

2WO12: Optimalisering in Netwerken

Semantische eigenschappen van XML-schematalen

V.2 Limieten van functies

Fundamenten voor de Informatica

String Matching. Algoritmiek

TW2020 Optimalisering

ω-automaten Martijn Houtepen, november 2008 Begeleider: R. Iemhoff

Formeel Denken 2013 Uitwerkingen Tentamen

String Matching. Algoritmiek

Elfde college complexiteit. 23 april NP-volledigheid III

Verzamelingen deel 3. Derde college

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

Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief

Z.O.Z. Radboud Universiteit Nijmegen Tentamen Analyse 1 WP001B 16 juni 2016, 12:30 15:30 (16:30)

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

TU Delft. TU Delft. TU Delft. TU Delft. IN3100 Fundamentele Informatica. Practicum. Practicum: Inschrijven. Practicum: LET OP

Berekenbaarheid, onberekenbaarheid en complexiteit: een aanvullende studie. Gijs Vermeulen

Inhoud leereenheid 1. Introduction to the theory of computation. Introductie 13. Leerkern 15. Zelftoets 22. Terugkoppeling 23

Introductie tot de cursus

1 Rekenen in eindige precisie

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.

1e Deeltentamen Inleiding Taalkunde

Module Limieten van de berekenbaarheid : antwoorden

Optimaliseren in Netwerken

Klanken 2. Dit college. Automaten: Talen. Colleges en hoofdstukken (let op verranderingen) Fonologie met eindige automaten en transducers

Twaalfde college complexiteit. 7 mei NP-volledigheid IV Cook-Levin Savitch 1

De Resolutiemethode (Logica, hoofdstuk 15) Robinson (1965) TI1300 Redeneren en Logica

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

Kennisrepresentatie & Redeneren. Piter Dykstra Instituut voor Informatica en Cognitie

Notatie van verzamelingen. Lidmaatschap. Opgave. Verzamelingen specificeren

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

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

Formeel Denken. 15 juli 2014

equationeel programmeren college 1

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

Verzamelingenleer. Inhoud leereenheid 5. Introductie 9

Er zijn alle soorten modificaties hoe je deze FST beter kan maken. Bijvoorbeeld, door - teen van thirteen - nineteen in het algemeen te lezen.

Oneindige spelen. Dion Coumans. Begeleider: dr. W. Veldman

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

Semantiek (2IT40) Jos Baeten. HG 7.19 tel.: Hoorcollege 3 (12 april 2007)

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

Ter Leering ende Vermaeck

Transcriptie:

Automaten & Complexiteit (X 401049) Inleiding Jeroen Keiren j.j.a.keiren@vu.nl VU University Amsterdam

Materiaal Peter Linz An Introduction to Formal Languages and Automata (5th edition) Jones and Bartlett 3 / 31

Informatie Docenten: Jeroen Keiren Wan Fokkink kamer: T453 T443 email: j.j.a.keiren@vu.nl w.j.fokkink@vu.nl www: www.jeroenkeiren.nl www.cs.vu.nl/~wanf Werkcollegedocent: Franz Geiger Opbouw: 11 hoorcolleges 13 werkcolleges inleveropgaven (bonus: 0.1 punt/set, 1 set/week) schriftelijk tentamen Homepage: http://www.cs.vu.nl/~tcs/ac/ 4 / 31

Verwachtingen en Inhoud Individueel (2 min.) Bron: http://mimiandeunice.com/2011/08/15/exploitation/ Schrijf 2 verwachtingen voor dit vak op In groepjes van 3 (5 min.) Introduceer jezelf aan je groepsgenoten Bespreek jullie verwachtingen voor dit vak. Identificeer overeenkomsten en verschillen Klassikaal (7 min.) Verzamel verwachtingen 5 / 31

Rode draad van dit vak Programmeren = algoritmes + logica Aan computer ligt universeel berekeningsmechanisme ten grondslag Verschillende toepassingen = verschillende formalismes: Patroonherkenning: reguliere talen Parseren: contextvrije talen, grammatica s Computerberekening: Turing machines RSA kraken: quantum-computer 6 / 31

Rode draad van dit vak Wat is er mogelijk met een computer? Sommige (op het oog simpele) problemen zijn onbeslisbaar (PCP, Predikaat logica) Sommige problemen zijn waarschijnlijk niet efficiënt oplosbaar door een computer (NP-compleetheid, TSP, Satisfiability) Nadruk ligt op constructies en algoritmes (ipv formele bewijzen) 7 / 31

Rode draad van dit vak Typische vragen die we beantwoorden: Wat is een (programmeer)taal? Hoe kunnen talen worden herkend door automaten (computers)? Welke problemen kunnen worden herkend door types automaten? Hoeveel tijd/geheugen kost dit oplossen? 8 / 31

Strings Een computerprogramma: neemt input-string produceert output-string bestaat uit string van symbolen String notatie: u, v, w, x, y, z eindige rij symbolen (a, b, c) uit (niet-leeg) eindig input alfabet Σ Lege string: λ Symbool: a Σ 9 / 31

Operaties op Strings (1) Concatenatie Als v = a 1 a n en w = b 1 b m, dan vw = a 1 a n b 1 b m Lengte a 1 a n = n λ = 0 va = v + 1 10 / 31

Operaties op Strings (2) Macht v k bestaat uit k concatenaties van v s v 0 = λ v k+1 = v k v Reverse (a 1 a n ) R = a n a 1 λ R = λ (va) R = av R 11 / 31

Formele talen Formele taal = verzameling strings Voorbeeld Alle parseerbare C programma s vormen een taal. Meer specifiek: Σ noteert de verzameling van alle strings over Σ (Formele) taal is deelverzameling van Σ 12 / 31

Dit vak Precies beschrijven en bestuderen van (meestal oneindige) talen: programmeertalen, specificatietalen,... Bij een taal kun je beschouwen: syntax: de vorm, welke strings zitten in de taal semantiek: de betekenis van strings in de taal Wij concentreren ons voorlopig op de syntax. 13 / 31

Formele talen: voorbeelden Laat Σ = {a, b} {ab, aab, bbaaabb} is (eindige) taal {ab n a n 1} is (oneindige) taal: {aba, abba, abbba, abbbba,...} {a n b n n 0} is (oneindige) taal: {λ, ab, aabb, aaabbb, aaaabbbb,...} 14 / 31

Operaties op talen (1) Taal is verzameling strings, dus,,,, \,... hebben betekenis voor talen Complement L: alle strings die niet in taal L zitten Concatenatie, reverse en macht voor talen: L 1 L 2 = {xy x L 1 y L 2 } L R = {x R x L} L 0 = {λ} L n+1 = L n L (n 0) Pas op: L 2 = {uv u, v L} {uu u L} 15 / 31

Operaties op talen (2) Kleene ster: L = L + = L i = L 0 L 1 L 2 L 3 i=0 L i = L 1 L 2 L 3 i=1 Dus L = L + {λ} 16 / 31

Vraag (In tweetallen, 2 min.) Laat Σ = {a, b} en L = {ab n n 0} Beschrijf de volgende talen als set: L R L L R L R Conclusie Verzamelingen zijn niet ideaal om (operaties op) talen te beschrijven. 17 / 31

Deterministic finite accepter Een deterministic finite accepter, kortweg dfa, bestaat uit: een eindige verzameling Q van toestanden een eindig input alfabet Σ elke toestand en elk symbool uit Σ geeft een resulterende toestand, beschreven door een transitiefunctie δ : Q Σ Q een starttoestand q 0 Q een verzameling F Q van eindtoestanden 18 / 31

Dfa als transitiegraaf Een dfa wordt getekend als een transitiegraaf, bestaande uit: toestanden pijlen met label uit Σ starttoestand heeft extra inkomende pijl. eindtoestanden als dubbel rondje Voorbeeld Σ = {a, b} q 1 a b a a b q 0 q 2 q 4 b b a a q 3 b 19 / 31

Vraag (Individueel, 2 min.) Geef een dfa die {a 2n+1, b 2n n 0} accepteert. 20 / 31

Reguliere talen Dfa M = (Q, Σ, δ, q 0, F ) definieert een taal (q, aw) (r, w) als δ(q, a) = r is de reflexief-transitieve afsluiting van De taal geaccepteerd door dfa M is L(M) = {w Σ (q 0, w) (r, λ) met r F } Taal L heet regulier als er een dfa M bestaat met L(M) = L. 21 / 31

Vraag (Quick questions, klassikaal) Laat Σ = {a, b} Laat zien dat de volgende talen regulier zijn: {λ} {a n b n 0} {w {a, b} w bevat een substring bab} {w {a, b} w bevat geen substring bab} 22 / 31

Stellingen voor reguliere talen Stelling Als L regulier is, dan is L ook regulier. Bewijs. L(M) = L voor een dfa M = (Q, Σ, δ, q 0, F ). N = (Q, Σ, δ, q 0, Q\F ) is een dfa met L(N) = L. Stelling Als L, L 1 en L 2 regulier zijn, dan zijn L 1 L 2, en L R ook regulier. Merk op: {a n b n n 0} is niet regulier. Intuïtie Een dfa heeft slechts een begrensd geheugen (de toestanden). Bewijzen van deze drie beweringen volgen later. 23 / 31

Vragen (Quick check, klassikaal) Geef een deterministic accepter met oneindig veel toestanden voor {a n b n n 0}. Is elke eindige taal regulier? 24 / 31

Nondeterministic finite accepter Dfa is deterministisch: elke string leidt tot precies één pad vanuit de starttoestand door de transitiegraaf, omdat bij elke q Q en elke a Σ precies één pijl uit q is met label a. (δ is een functie van Q Σ naar Q) In nondeterministic finite accepter, kortweg nfa: toestand kan nul of meerdere uitgaande pijlen hebben met hetzelfde label kan lege stappen bevatten: pijlen met label λ, die geen symbool uit de input-string opeten. Nfa s worden gebruikt in software engineering, en voor het modelleren van hardware circuits, compilers en netwerk-protocollen 25 / 31

Nondeterministic finite accepter Definitie van nfa = definitie dfa, behalve: δ : Q (Σ {λ}) 2 Q (2 Q is de verzameling van alle deelverzamelingen van Q.) (q, αw) (r, w) als r δ(q, α), met α Σ {λ}. Taal geaccepteerd door nfa M: L(M) = {w Σ (q 0, w) (r, λ) met r F } 26 / 31

Dfa s en nfa s zijn even expressief Stelling Een taal L wordt door een nfa geaccepteerd L is regulier. Constructie (Subsets) M = (Q, Σ, δ, q 0, F ) is een nfa. We construeren een dfa N D = (Q D, Σ, δ D, q 0D, F D ). Q D = 2 Q δ D (X, a) = {r Q (q, a) (r, λ) voor een q X } q 0D = {r Q (q 0, λ) (r, λ)} F D = {X Q X F } Voor elke w Σ en q Q geldt (q 0, w) (q, λ) (q 0D, w) (X, λ) met q X. Hieruit volgt L(N D ) = L(M). 27 / 31

Vraag (Quick check, klassikaal) Gegeven de volgende nfa b a q 0 λ q 1 b Construeer een dfa die dezelfde taal accepteert. 28 / 31

Tot slot (Individueel, 2 min.) Schrijf voor jezelf de 3 punten uit dit college op die jij het belangrijkst vindt. 29 / 31

Vooruit kijken Lees: Linz 1.2 1.2, 2.1 2.3 Maak: Linz 1.2: 2, 4, 8, 10 Linz 2.1: 1, 2d, 3, 7b, 9b,f, 11 Linz 2.2: 12 Linz 2.3: 2, 3, 6, 12 Volgend college: Alternatieven voor beschrijven reguliere talen: reguliere expressies grammatica s 30 / 31