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

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

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

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

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

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

Tentamen in2505-ii Berekenbaarheidstheorie

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

Vorig college. IN2505-II Berekenbaarheidstheorie. Voorbeeld NDTM. Aanbevolen opgaven. College 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.

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

Stelling. SAT is NP-compleet.

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

Automaten & Complexiteit (X )

Automaten. Informatica, UvA. Yde Venema

Module Limieten van de berekenbaarheid : antwoorden

Logische Complexiteit

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

Automaten en Berekenbaarheid

TENTAMEN Basismodellen in de Informatica VOORBEELDUITWERKING

Berekenbaarheid 2015 Uitwerkingen Tentamen 5 november 2015

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

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

Algoritmen abstract bezien

Hoofdstuk 3. Equivalentierelaties. 3.1 Modulo Rekenen

opgaven formele structuren deterministische eindige automaten

Getallensystemen, verzamelingen en relaties

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Tentamen Grondslagen van de Wiskunde A, met uitwerkingen

Oefenopgaven Grondslagen van de Wiskunde A

Berekenbaarheid 2013 Uitwerkingen Tentamen 23 januari 2014

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

3 De stelling van Kleene

Elfde college complexiteit. 23 april NP-volledigheid III

Automaten en Berekenbaarheid 2016 Oplossingen #4

Limits of algorithmic computation. Introductie 213. Leerkern 214. Zelftoets 222. Terugkoppeling 223

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

V.4 Eigenschappen van continue functies

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.

Berekenbaarheid 2016 Uitwerkingen Tentamen 26 januari 2017

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

VERZAMELINGEN EN AFBEELDINGEN

Discrete Wiskunde 2WC15, Lente Jan Draisma

Inleiding Analyse 2009

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

(On)Doenlijke problemen

Automaten & Complexiteit (X )

Getallen, 2e druk, extra opgaven

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

Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking

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

Uitwerking tentamen Analyse van Algoritmen, 29 januari

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

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

Tweede huiswerkopdracht Lineaire algebra 1 Uitwerking en opmerkingen

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

II.3 Equivalentierelaties en quotiënten

We beginnen met de eigenschappen van de gehele getallen.

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

Enkele valkuilen om te vermijden

III.3 Supremum en infimum

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

Automaten en Berekenbaarheid

1 Rekenen in eindige precisie

TW2020 Optimalisering

V.2 Limieten van functies

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

Automaten en Berekenbaarheid

Examen G0U13 Bewijzen en Redeneren Bachelor 1ste fase Wiskunde. vrijdag 31 januari 2014, 8:30 12:30. Auditorium L.00.07

Fundamenten van de Informatica

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

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

Ter Leering ende Vermaeck

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Combinatoriek groep 1 & 2: Recursie

Oefening 2.2. Welke van de volgende beweringen zijn waar?

Logische Complexiteit Hoorcollege 12

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Combinatoriek groep 2

Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4

Combinatoriek groep 1

Discrete Wiskunde 2WC15, Lente Jan Draisma

(b) Formuleer het verband tussen f en U(P, f), en tussen f en L(P, f). Bewijs de eerste. (c) Geef de definitie van Riemann integreerbaarheid van f.

Driehoeksongelijkheid en Ravi (groep 1)

Uitwerkingen Lineaire Algebra I (wiskundigen) 22 januari, 2015

equivalentie-relaties

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

Opmerking. TI1300 Redeneren en Logica. Met voorbeelden kun je niks bewijzen. Directe en indirecte bewijzen

EXAMEN LINEAIRE ALGEBRA EN ANALYTISCHE MEETKUNDE I. 1. Theorie

Formeel Denken 2014 Uitwerkingen Tentamen

4 Turingmachines. Hilberts programma

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

Discrete Wiskunde, College 7. Han Hoogeveen, Utrecht University

Oplossingen Oefeningen Bewijzen en Redeneren

Wiskundige beweringen en hun bewijzen

Topologie I - WPO Prof. Dr. E. Colebunders Dr. G. Sonck 24 september 2006

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

Verzamelingen. Hoofdstuk 5

Wiskundige Structuren

Transcriptie:

1 2 IN3100 Fundamentele Informatica Docenten: Hans Tonino (IN3110) & Cees Witteveen (IN3120) Colleges: Maandag 1 + 2, in zaal D, Mekelweg 4. Boek: Michael Sipser, Introduction to the Theory of Computation, Second, international edition, Thomson, Boston, 2006. ISBN 0-619-21764-2. Practicum IN3100p: 20+20 uur (Deel 1: 5 opgaven, in groepjes van 2) Website: Blackboard IN3110 en IN3100P (2006-2007) Practicum Assistenten: Lian Ien Oei, Leon Planken, Bert Wolters Aanwezig: woensdagochtenden 8.45-12.45 uur (extra) en donderdagmiddagen 13.45-17.45 uur. Elektronisch reserveersysteem, afspraken van 15 min. Ochtend en middag starten met vragenhalfuur : kleine vragen, geen opgaven aftekenen. Kamer: HB 08.230, Mekelweg 4 3 4 Practicum: LET OP Practicum: Inschrijven Ingangseis: P (geldt alleen voor generatie 2002, geldt niet voor zij-instromers) Bij probleem: studieadviseur raadplegen. Harde deadline practicum: einde eerste kwartaal Zie Blackboard voor deadlines per opgave Laatste keer practicum in deze vorm i.v.m. start nieuw curriculum. STEL DUS NIET UIT! Alleen of in groepje van 2. email naar: L.R.Planken@student.tudelft.nl Vermeld daarbij: voorletters, achternaam, studienummer ST of MKT Eerste opgave krijg je dan toegestuurd.

5 6 Globale indeling stof deel 1 Hoofdstuk 0: Wiskundige voorkennis (komt vanzelf aan de orde) Hoofdstuk 3: Turing machines & de Church-Turing-these Hoofdstuk 4: Beslisbaarheid, Diagonalisatie & het Halting-probleem Hoofdstuk 5: Reduceerbaarheid Twee kernvragen 1. Welke problemen kunnen (niet) algoritmisch worden opgelost? Theorie van berekenbaarheid (IN3110) 2. Welke problemen kunnen (niet) efficiënt worden opgelost? Complexiteitstheorie (IN3120) Hoofdstuk 6: Zelfreproductie en virussen 7 8 Wat is een algoritme? Toepassingen modellen Turingmachines (Alan Turing, 1936) Recursieve functies Random Access Machines Combinatoren en λ-calculus (Alonso Church, 1936)... andere berekenbaarheidsmodellen Turingmachines: Tijd- en ruimtegebruik Berekeningsstappen die even duur zijn. Dataopslag die uniform is. Recursieve functies en λ-calculus: Mathematische eigenschappen eenvoudiger te beschrijven.

9 10 Alfabet (1) Een alfabet is een eindige verzameling van symbolen ofwel karakters. Notatie: Σ = {a, b, c, d, e}, Γ = {0, 1}. Een woord of string over Σ is een eindige reeks symbolen uit Σ. De lengte van een woord x, notatie x, is gedefinieerd als het aantal symbolen in x. Alfabet (2) Σ duidt de verzameling van alle woorden over Σ aan. Σ + = Σ {ɛ}. Het lege woord ɛ is gedefinieerd als het woord met lengte 0. 11 12 Concatenatie Woorden Taal Prefix, suffix Deelwoord (substring), deelreeks (subsequence) Omgekeerd woord x R. Een taal L over een alfabet Σ is een deelverzameling van Σ, ofwel L Σ. Verschil tussen L = en L = {ɛ} Palindroom: x = x R

13 14 Schema Turingmachine Formele definitie Turingmachine (Def. 3.3) Finite State Control Een Turingmachine is een 7-tupel (Q, Σ, Γ, δ, q 0, q accept, q reject ) met: Q is een eindige verzameling toestanden; Σ, het invoeralfabet, is een eindige verzameling die het blank -symbool niet bevat; Γ, het tape-alfabet, is een eindige verzameling, met Σ Γ en Γ. Andere literatuur: tape ook links onbegrensd Sipser: tape links begrensd δ : Q Γ Q Γ {L, R} is de transitiefunctie. q 0, q accept, q reject Q zijn respectievelijk de begintoestand, de accepterende en de verwerpende toestand met q accept q reject. 15 16 De transitiefunctie δ Diagram Turingmachine δ(q, a) = (r, b, L) betekent: als de TM zich in toestand q bevindt en een a leest, dan overschrijft zij deze met b, gaat over in toestand r en verschuift de lees/schrijfkop één positie naar links (L). q0 a >b,r q1 δ wordt meestal weergegeven met behulp van een transitiediagram (voorbeelden: zie boek). Notatie voor: δ(q 0, a) = (q 1, b, R). Andere mogelijkheid voor labels op pijlen: a, b L.

17 18 Configuraties Een configuratie van een TM wordt bepaald door: haar toestand, haar tape-inhoud, en de positie van haar lees/schrijfkop. Notatie configuratie: u q v. Dit betekent dat de TM zich in toestand q bevindt, de tape-inhoud gelijk is aan uv en dat de kop zich onder het meest linkse symbool van v bevindt. Opleveren Gegeven een TM M met transistiefunctie δ. Men zegt dat configuratie ua q i bv de configuratie u q j acv oplevert, als δ(q i, b) = (q j, c, L). Evenzo levert de configuratie ua q i bv de configuratie uac q j v op, als δ(q i, b) = (q j, c, R). 19 20 Speciale configuraties Accepterende TM Een startconfiguratie is een configuratie waarbij de toestand gelijk is aan q 0. Een accepterende (verwerpende) configuratie is een configuratie waarbij de toestand q accept (q reject ) is. Dit zijn de stopconfiguraties. NB: Het is mogelijk dat een TM op een invoer nooit in een stopconfiguratie terecht komt! Een TM M accepteert het woord w d.e.s.d.a. er een reeks configuraties C 1, C 2,...,C k bestaat, zodanig dat: C 1 is een startconfiguratie; iedere C i levert C i+1 op (1 i < k); en C k is een accepterende configuratie. De taal van M is de verzameling woorden die M accepteert, notatie L(M).

21 22 Turing-herkenbaar (Def. 3.5) Turing-beslisbaar (Def. 3.6) Een taal L is Turing-herkenbaar (ook wel: recursief opsombaar) als er een TM M bestaat zodanig dat L(M) = L. NB: Het is nog steeds mogelijk dat M voor bepaalde invoer niet in een stopconfiguratie terecht komt, dus in een loop raakt. Een taal L is Turing-beslisbaar, ofwel kortweg beslisbaar (ook wel: recursief), als er een TM M bestaat zodanig dat L(M) = L en zodanig dat M voor iedere invoer in een stopconfiguratie terecht komt. 23 24 Multi-tape TM s Een TM kan meer dan één tape bezitten; men spreekt dan van een multi-tape TM. De transitiefunctie heeft dan signatuur δ : Q Γ k Q Γ k {L, R} k. δ(q i, a 1, a 2,...,a k ) = (q j, b 1, b 2,...,b k, L, R,...,L). Equivalentie 1-TM s en k-tm s (Th. 3.13) Een k-tape TM kan worden gesimuleerd door een standaard één-tape TM (in ten hoogste kwadratische tijd ten opzichte van de gesimuleerde TM). heeft dan betrekking op k simultane akties die op de k-tapes worden uitgevoerd, gaande van toestand q i naar q j.

25 26 Niet-deterministische TM s k-tm s en herkenbaarheid (Cor. 3.9) Een taal L is Turing-herkenbaar d.e.s.d.a. er een k-tm M bestaat zodanig dat L(M) = L. Evenzo: Een taal L is Turing-beslisbaar d.e.s.d.a. er een k-tm M bestaat zodanig dat L(M) = L en zodanig dat M voor iedere invoer in een stopconfiguratie terecht komt. Een niet-deterministische TM is op dezelfde wijze gedefinieerd als een normale TM behalve dat de transitiefunctie verschilt: δ : Q Γ P(Q Γ {L, R}). Hierin stelt P de machtsverzameling-operator voor; als V een verzameling is, dan is: P(V ) = {X X V }, m.a.w. P(V ) is de verzameling bestaande uit alle deelverzamelingen van V. 27 28 Voorbeeld Hoe rekent zo n NDTM? Als δ(q 1, a) = {(q 3, b, R), (q 4, c, L), (q 3, a, L)}, dan kan de betreffende TM (die zich in toestand q 1 bevindt en een a leest) 3 mogelijke akties doen: 1. overgaan naar toestand q 3, a veranderen in b en de kop naar rechts verplaatsen, of 2. overgaan naar toestand q 4, a veranderen in c en de kop naar links verplaatsen, of 3. overgaan naar toestand q 3, de a laten staan en de kop naar links verplaatsen. Dit betekent dat uitgaande van de configuratie u q 1 av de voorbeeld NDTM drie verschillende mogelijke vervolgconfiguraties bezit. Wat betekent dit? Drie mogelijke zienswijzen zijn: De NDTM kiest een willekeurige vervolgstap (niet-deterministisch). De NDTM kiest altijd de goede vervolgstap. De NDTM doet alle mogelijke vervolgstappen parallel.

29 30 Accepteren door NDTM s Berekening niet-deterministische TM (NDTM) Een berekening van een NDTM is een boom waarbij de wortel gelijk is aan een startconfiguratie, en waarbij voor elke knoop, behalve de knopen die een stopconfiguratie voorstellen, geldt dat deze als dochterknopen alle mogelijke configuraties bezitten die mogelijkerwijs worden opgeleverd door die knoop. Is op dezelfde wijze gedefinieerd als voor TM s: Een NDTM M accepteert het woord w d.e.s.d.a. er een reeks configuraties C 1, C 2,...,C k bestaat, zodanig dat: C 1 is een startconfiguratie; iedere C i levert C i+1 op (1 i < k); en C k is een accepterende configuratie. Een woord wordt dus door een NDTM geaccepteerd als er een accepterend pad in de berekeningsboom bestaat, d.w.z. een pad met een accepterende configuratie aan het eind. 31 32 Equivalentie TM s en NDTM s (Th. 3.10) NDTM s en herkenbaarheid (Cor. 3.11) Voor iedere niet-deterministische TM bestaat een equivalente deterministische TM. Een taal L is Turing-herkenbaar d.e.s.d.a. er een NDTM M bestaat zodanig dat L(M) = L.

33 34 NDTM s en beslisbaarheid (Cor. 3.12) Een taal L is Turing-beslisbaar d.e.s.d.a. er een NDTM M bestaat zodanig dat L(M) = L en zodanig dat M voor iedere invoer voor alle mogelijke paden van de berekeningsboom in een stopconfiguratie terecht komt. Herkenbaarheid bij NDTM s Zij M een NDTM die taal L herkent. Voor woorden w L geldt dat er minimaal één accepterend pad in de berekeningsboom moet bestaan. Zo n pad is dan eindig. Andere paden verwerpen w mogelijkerwijs of zijn oneindig lang. Voor woorden w / L geldt dat er geen accepterend pad in de berekeningsboom bestaat. 35 36 Beslisbaarheid bij NDTM s Zij M een NDTM die taal L beslist. Voor woorden w L geldt dat er minimaal één accepterend pad in de berekeningsboom moet bestaan. Alle paden voor w zijn eindig, maar hoeven niet allemaal accepterend te zijn. Voorbeeld NDTM Zij Σ = {1}. Maak een NDTM die de taal L Σ beslist, waarbij L = {1 n er bestaat een m > 1 met n mod m 2 = 0}. Voor woorden w / L geldt dat alle paden in de berekeningsboom w moeten verwerpen.

37 38 Fase 1: Gok een oplossing. Constructie NDTM s Fase 2: Check de oplossing: als deze voldoet, ga naar q accept, anders ga naar q reject. Opsommers Een TM M is een opsommer (enumerator) van taal L als deze, gegeven het lege woord op de invoertape, alle woorden van L op een uitvoertape (mogelijkerwijs dezelfde tape als de invoertape) print, gescheiden door spaties en in een door de machine bepaalde volgorde. 39 40 Hilbert s 10 e probleem Opsommers versus herkenners Een taal is Turing-herkenbaar d.e.s.d.a. er een opsommer voor de taal bestaat. Bestaat er een proces waarmee in een eindig aantal stappen kan worden nagegaan of een polynoom een geheeltallige wortel bezit (een toekenning van gehele getallen aan de variabelen in het polynoom). N.a.v. dit probleem bedachten Turing en Church in 1936 onafhankelijk van elkaar hun berekeningsmodellen.

41 42 Het probleem (de taal) Overigens... Church-Turing These {p p is een polynoom met een geheeltallige wortel} is niet beslisbaar! {p p is een polynoom in x met een geheeltallige wortel} Intuïtieve notie van algoritme (berekenbaarheid) = Algoritme als Turingmachine (of als λ-term) is wel beslisbaar. 43 44 Coderen van objecten Een programma P in programmeertaal X wordt gecompileerd naar een bitreeks. Deze reeks kun je opvatten als de codering van P naar een woord uit {0, 1}. De codering bewaart de belangrijkste eigenschap van P: zijn operationele betekenis. In het boek wordt de codering van een object P (programma of data) weergegeven als P. Daarbij wordt in het midden gelaten welke codering wordt gebruikt. Voorbeeld codering Context: grafentheorie. Beschouw het volgende probleem (taal): { G G is een verbonden, ongerichte graaf}. Er zijn verschillende zinvolle coderingen van grafen te bedenken.

45 46 Hotel Hilbert Aftelbaarheid Aftelbaar oneindig Oneindige verzamelingen Een functie f : A B is: Functies (Def. 4.10) surjectief (onto): er bestaat voor iedere b B een a A met f(a) = b. injectief (one-to-one): als a b, dan f(a) f(b). bijectief (correspondence): f is zowel surjectief als injectief. 47 48 Gelijkmachtigheid Aftelbaarheid (Def. 4.12) Twee eindige verzamelingen A en B zijn gelijkmachtig (even groot) als deze evenveel elementen bezitten, ofwel als er een bijectie f : A B bestaat. Voor oneindige verzamelingen kunnen we dit als volgt generaliseren: Twee oneindige verzamelingen A en B zijn gelijkmachtig (even groot) als er een bijectie f : A B bestaat. Een verzameling A is oneindig aftelbaar als er een bijectie bestaat tussen A en N. Een verzameling A is aftelbaar als A eindig is, of als A aftelbaar oneindig is. Alternatieve definitie: Een verzameling A is aftelbaar als A = of als er een surjectie bestaat van N naar A. Een verzameling is overaftelbaar als deze niet aftelbaar is.

49 50 Aftelbare verzamelingen Alephs Z N N Q De verzameling programma s in taal X ++ De ℵ is de eerste letter uit het Hebreeuwse alfabet. Met ℵ 0 wordt de eerste graad van oneindigheid aangeduid: het aantal natuurlijke getallen. Men kan met ℵ s rekenen: ℵ 0 + ℵ 0 = ℵ 0 ℵ 0 ℵ 0 = ℵ 0 Slimme constructie gevraagd Gegeven een tabel met rijen getallen: 8 13 99 71... 101 94 99 34... 37 94 49 85... 20 54 67 12.......... Hoe construeer je op systematische wijze een rij die niet in de tabel voorkomt? 51 Diagonaal Doe iets met de diagonaal, bijvoorbeeld: Dit geeft de rij: 9, 95, 50, 13,... 8 + 1 13 99 71... 101 94 + 1 99 34... 37 94 49 + 1 85... 20 54 67 12 + 1.......... Deze kan niet voorkomen in de tabel! 52

Karakteristieke functie Beschouw een deelverzameling A N. We kunnen A op tenminste twee manieren representeren: 1. als verzameling, bijvoorbeeld A = {0, 1, 4, 9, 16, 25,...} = {n 2 n N}. 2. als karakteristieke functie χ A : N {0, 1}: 1 als x A, χ A (x) = 0 als x / A. Bijvoorbeeld χ A (0) = 1, χ A (1) = 1, χ A (2) = 0,.... 53 Karakteristieke functie van een taal Ook voor een taal L Σ kunnen we een karakteristieke functie χ L : Σ {0, 1} definiëren: 1 als x L, χ L (x) = 0 als x / L. In het boek van Sipser wordt het begrip karakteristieke reeks gedefinieerd. Hierbij wordt uitgegaan van een standaard aftelling van Σ = {s 0, s 1, s 2,...,s i,...}. Nu is χ L een oneindige reeks van 0-en en 1-en: χ L = b 0 b 1 b 2...b i... waarbij: 1 als s i L, b i = 0 als s i / L. 54 55 Diagonalisering 56 Overaftelbare verzamelingen (Th. 4.14) De verzameling R van reële getallen is overaftelbaar. De verzameling P(N) = {V V N} van alle deelverzamelingen van N is overaftelbaar. De verzameling van alle functies f : N N is overaftelbaar. Als je moet bewijzen dat een verzameling V niet aftelbaar is, ga je als volgt te werk: 1. Stel dat V (of een geschikte deelverzameling W V wel aftelbaar is. 2. Representeer V (of W) als een oneindige tabel. 3. Construeer uitgaande van de diagonaal van deze tabel een element s V (of s W) dat niet in de tabel kan voorkomen, maar er wel in zou moeten voorkomen. (Diagonaalelementen + 1 werkt niet altijd!) 4. Tegenspraak, derhalve is V niet aftelbaar.

57 58 Waarom? 1. Σ is oneindig-aftelbaar. Niet-herkenbare talen (Cor. 4.15) Er bestaan talen die niet Turing-herkenbaar zijn. 2. Voor een taal L over Σ geldt: L Σ. 3. De collectie van alle talen over Σ is gelijk aan P(Σ ). 4. De verzameling P(Σ ) is overaftelbaar. 5. Er bestaan aftelbaar veel Turingmachines met Σ als invoeralfabet omdat deze gecodeerd kunnen worden als een string over een of ander alfabet. 6. Ergo! 59 60 Het Stopprobleem Antwoord Bestaat er een computerprogramma P(x, y) dat voor iedere invoer bestaande uit een computerprogramma x en invoer y voor programma x, beslist of programma x op invoer y stopt of niet? NEEN

Informeel bewijs Neem aan dat P(x, y) bestaat. Beschouw: procedure Q (x: bitstring); function P (x, y: bitstring): boolean; begin... end; begin if not P(x, x) then return else loop end; Stopt Q(Q)? 61 Het Acceptatieprobleem, formeel Het Acceptatieprobleem (een variant van het bovenstaande Stopprobleem ) A TM = { M, w M is een TM en M accepteert w}. is niet beslisbaar (maar wel Turing-herkenbaar ga na!). Bewijs uit ongerijmde: Stel A TM is wel beslisbaar. We laten zien dat we hieruit een tegenspraak kunnen afleiden. 62 63 64 Gevolg van aanname Dan bestaat er een TM H die A TM beslist: accept als M invoer w accepteert, H( M, w ) = reject als M invoer w niet accepteert. Constuctie gebaseerd op H Construeer dan de volgende TM D die H gebruikt: D = Op invoer M, waarbij M een TM is: 1. Draai H op invoer M, M. 2. Geef als output het tegendeel van wat H als output geeft; m.a.w. als H accepteert, verwerp, en als H verwerpt, accepteer.

65 66 Tegenspraak We verkrijgen een tegenspraak als we ons gaan afvragen: Wat doet D( D )??? In feite bevat het bewijs, in verhulde vorm, de diagonaalmethode... Een niet-turing-herkenbare taal Een taal L is co-turing-herkenbaar als L Turing-herkenbaar is. Een taal is beslisbaar d.e.s.d.a. deze zowel Turing-herkenbaar als co-turing-herkenbaar is (Th. 4.16). De taal A TM is niet Turing-herkenbaar (Cor. 4.17). 67 68 Wat is reductie? Stel je hebt twee problemen A en B, en je hebt een methode om B op te lossen. Stel je hebt bovendien een methode om probleem A te reduceren naar probleem B. Conclusie: je kunt nu ook probleem A oplossen. Reductie Zij A en B problemen (talen). Als A gereduceerd kan worden naar B, dan betekent dat: 1. een oplossingsmethode voor B een oplossingsmethode voor A geeft; 2. als er voor A geen oplossingsmethode bestaat, er ook geen oplossingsmethode voor B kan bestaan. Notatie voor reductie: A B. Dit kun je ook lezen als: A is makkelijker dan of even moeilijk als B.

69 70 Het echte Stopprobleem (directe reductie) Vormen van reductie Sipser geeft 3 vormen van reductie: 1. directe reductie, 2. reductie via berekeningsgeschiedenissen (computation histories), en 3. reductie via afbeeldingen (mapping reducibility). Het Stopprobleem HALT TM = { M, w M is een TM en M stopt op invoer w}. is niet beslisbaar (Th. 5.1). Bewijs: Reductie van A TM naar HALT TM. We moeten dus laten zien dat A TM HALT TM. We stellen dat we over een beslissingsprocedure voor HALT TM beschikken, en laten dan zien hoe dat ons een beslissingsprocedure voor A TM zou opleveren. 71 72 Directe reductie 2 Hulpconstructie De taal E TM gedefinieerd door E TM = { M M is een TM en L(M) = } is niet beslisbaar (Th. 5.2). Bewijs: via directe reductie: A TM E TM. Neem aan dat R een TM is die E TM beslist. Om R te kunnen gebruiken, modificeren we M: M 1 = Op invoer x: 1. Als x w, verwerp. 2. Als x = w, draai M op invoer w, en accepteer als M invoer w accepteert. Er geldt nu: L(M 1 ) M accepteert w. Deze M 1 kunnen we voeren aan de beslisser R.

73 74 Directe reductie 3 De taal EQ TM gedefinieerd door EQ TM = { M 1, M 2 M 1 en M 2 zijn TM s met L(M 1 ) = L(M 2 )} is niet beslisbaar (Th. 5.4). Bewijs: via directe reductie: E TM EQ TM. Berekeningsgeschiedenissen (Def. 5.5) Zij M een TM en w een invoerwoord. Een accepterende berekeningsgeschiedenis voor M op w is een reeks configuraties C 1, C 2,...,C l waarbij C 1 de startconfiguratie van M op w is, C l een accepterende configuratie van M is, en waarbij iedere C i wordt opgeleverd door C i 1. Een verwerpende berekeningsgeschiedenis is evenzo gedefinieerd, behalve dat C l een verwerpende configuratie is. 75 76 Lineair begrensde automaten (Def. 5.6) Een Lineair Begrensde Automaat (LBA) is een TM waarbij de lees/schrijfkop niet het deel van de tape mag verlaten waarop de invoer staat (stond). NB: Doordat het tape-alfabet groter mag zijn dan het invoeralfabet, is het beschikbare geheugen van een LBA in feite gelijk aan een constante factor maal de lengte van de invoer. Vandaar de naam LBA. Aantal configuraties LBA s (Lem. 5.7) Zij M een LBA met q toestanden g symbolen in het tape-alfabet. Dan zijn er precies qng n verschillende configuraties van M voor een tape van lengte n.

77 78 Reductie via berekeningsgeschiedenis Het acceptatieprobleem voor LBA s (Th. 5.8) Het acceptatieprobleem A LBA voor LBA s gedefinieerd door A LBA = { M, w M is een LBA die invoer w accepteert} is beslisbaar. Het probleem E LBA gedefinieerd door: E LBA = { M M is een LBA met L(M) = } is niet beslisbaar. Bewijs: reductie via berekeningsgeschiedenis: A TM E LBA. Neem aan dat R een beslisser is die E LBA beslist. Hulpconstructie We construeren een LBA B die voor een specifieke TM M en invoer w de taal bestaande uit alle accepterende berekeningsgeschiedenissen van M op w herkent. Deze B is zodanig dat: L(B) M accepteert w. Merk op dat L(B) één string bevat als M invoer w accepteert. Deze B kunnen we voeren aan de beslisser R. 79 Het Post-correspondentieprobleem Zij gegeven een verzameling dominostenen van de vorm: [ ] t, b waarbij t, b Σ voor een zeker alfabet Σ. Kun je een rij dominostenen leggen waarbij herhaling van stenen is toegestaan, [ ] [ ] [ ] t1 t2 tn... b 1 b 2 zodanig dat t 1 t 2...t n = b 1 b 2...b n? Dit probleem staat bekend als het Post-correspondentieprobleem (PCP). b n 80

81 82 Voorbeeld dominostenen Onbeslisbaarheid PCP (Th. 5.11) Zij bijvoorbeeld de volgende verzameling dominostenen gegeven (zie Sipser): {[ ] [ ] [ ] [ ]} b a ca abc,,,. ca ab a c Een match is bijvoorbeeld: [ ] [ a b ab ca ] [ ca a ] [ a ab ][ abc c ]. PCP is niet beslisbaar. Bewijs: reductie via berekeningsgeschiedenis: A TM PCP. Eigenlijk reductie A TM MPCP, waarbij MPCP een gemodificeerde versie van PCP is: een match begint altijd met een gegeven dominosteen. Idee reductie We laten zien dat er voor iedere TM M met invoer w een instantie P van MPCP kan worden geconstrueerd met de eigenschap: P bezit een match M accepteert w. Een matching string is daarbij steeds zodanig dat deze de berekeningsgeschiedenis van een accepterende berekening van M op w voorstelt. Gegeven een beslisser R van MPCP, kan deze P aan R worden gevoerd. 83 Constructie P Gegeven M = (Q, Σ, Γ, δ, q 0, q accept, q reject ) en w = w 1 w 2...w n, bevat P de volgende dominostenen: [ ] # 1. #q 0 w 1 w 2...w n # (startconfiguratie is startsteen), ] 2. voor iedere a, b Γ en q, r Q waarvoor q q reject en [ qa br δ(q, a) = (r, b, R) (δ-regels rechts), ] 3. voor iedere a, b, c Γ en q, r Q waarvoor q q reject en [ cqa rcb δ(q, a) = (r, b, L), (δ-regels links), [ ] a 4. a voor iedere a Γ (symbolen die niet gewijzigd worden), ] ] 5. en (copiëren # en tape rechts verlengen), [ # # [ # # 84

85 86 Vervolg constructie P 6. 7. [ ] aqaccept q accept [ qaccept ## # [ ] qaccept a en q accept (de eindconfiguratie opeten ), en ] (afsluitende steen). Let op: Het symbool # is zo gekozen dat het niet in Γ voorkomt. Het is eenvoudig aan te tonen dat ieder PCP-probleem A omgezet kan worden in een daarmee equivalent MPCP-probleem B (zie Sipser, pag. 189), d.w.z. Reduceerbaarheid, formeel Een functie f : Σ Σ is berekenbaar als er een TM M bestaat die op iedere invoer w stopt met f(w) op haar tape. (Def. 5.12) Berekenbare functies kunnen bijvoorbeeld worden gebruikt om beschrijvingen van TM s te genereren, gegeven bepaalde invoer. A bezit een match B bezit een match 87 88 Mapping (many-to-one) reducibility (Def. 5.15) Taal A is mapping reducible tot taal B, notatie A m B, als er een berekenbare functie f : Σ Σ bestaat, zodanig dat voor iedere w Σ geldt: w A f(w) B. De functie f wordt de reductie van A naar B genoemd. Let op Voor een reductie f geldt derhalve: w A f(w) B, èn w / A f(w) / B. Eigenschappen reductie 1 Als A m B en B is beslisbaar, dan is A beslisbaar. (Th. 5.16) Als A m B en A is onbeslisbaar, dan is B onbeslisbaar. (Cor. 5.17) A m B dan en slechts dan als A m B.

Voorbeeld 1 mapping reduction 89 90 In plaats van de directe reductie A TM HALT TM kan kan een mapping reduction A TM m HALT TM worden gegeven waarbij de reductie f wordt berekend door de TM F: F = Op invoer M, w : 1. Construeer de volgende TM M M = Op invoer x: 1. Draai M op x. 2. Accepteer als M accepteert. 3. Loop als M verwerpt. 2. Geef als output M, w. Voorbeeld 2 mapping reduction Ook de reductie E TM EQ TM kan eenvoudig als een mapping reduction worden opgevat. De reductie f is hierbij gedefinieerd door: f( M ) = M, M 1, waarbij M 1 een machine is die alle invoer verwerpt. 91 92 Eigenschappen reductie 2 Als A m B en B is Turing-herkenbaar, dan is A Turing-herkenbaar. (Th. 5.22) Als A m B en A is niet Turing-herkenbaar, dan is B niet Turing-herkenbaar. (Cor. 5.23) Direct maar niet mapping-reduceerbaar We hebben laten zien dat A TM E TM hetgeen wilde zeggen dat een beslissingsprocedure voor E TM een beslissingsprocedure voor A TM zou opleveren. Echter, er geldt niet dat A TM m E TM of, equivalent hiermee, A TM m E TM. Immers, A TM is niet Turing-herkenbaar, maar E TM wel. Ga na!

93 94 Voorbeeld 3 mapping reduction In de directe reductie A TM E TM is eigenlijk sprake van een mapping reductie: A TM m E TM, met behulp van de reductie f gedefinieerd door: f( M, w ) = M 1, waarin M 1 een machine is met de eigenschap: M accepteert w L(M 1 ). Voorbeeld 4 mapping reduction EQ TM is niet Turing-herkenbaar, en ook niet co-turing-herkenbaar. (Th. 5.24) Bewijs Om te bewijzen dat EQ TM niet Turing-herkenbaar is, tonen we aan: A TM m EQ TM. Voor het tweede deel, EQ TM niet co-turing-herkenbaar, laten we zien: A TM m EQ TM, ofwel A TM m EQ TM. 95 96 Voorbeeld 5 mapping reduction Voor iedere Turing-herkenbare taal (probleem) L geldt: L m A TM. Hoe zou je dit aanpakken? Oplossing Als L Turing-herkenbaar is, dan bestaat er een TM M die L herkent. Definieer nu de reductie f als volgt: Dan geldt: f(w) = M, w. w L f(w) = M, w A TM. Uiteraard is aan de eis voldaan dat f een berekenbare functie is.

97 98 Stelling van Rice Bewijs (1) Zij P een verzameling van Turing-machines die voldoet aan: 1. P is uitsluitend gedefinieerd in termen van input-output-gedrag van TM s, d.w.z. als L(M 1 ) = L(M 2 ), dan M 1 P d.e.s.d.a. M 2 P; 2. P is niet triviaal, d.w.z., P en P. Dan is P niet beslisbaar. Zij M een TM die op iedere invoer loopt. Dit betekent dat L(M ) =. Als M / P, dan voeren we een reductie HALT TM m P uit, en anders HALT TM m P. De reductie loopt in beide gevallen op dezelfde wijze. Neem aan dat M / P. Zij verder M P P (we weten dat P ). 99 100 Bewijs (2) Bewijs (3) De reductie f is als volgt gedefinieerd: f( M, w ) = M 1, met: M 1 = Op invoer x: 1. Draai M op invoer w. 2. Draai M P op invoer x. 3. Geef als output de output van M P op x. Nu geldt: Als M, w HALT TM, dan L(M 1 ) = L(M P ) (immers M 1 komt altijd aan de stappen 2 en 3 toe). Maar dan geldt M 1 P, aangezien M P P. Als M, w / HALT TM, dan zal M 1 bij het uitvoeren van stap 1 niet in een stoptoestand terecht komen, zodat L(M 1 ) = = L(M ). Derhalve M 1 / P, omdat M / P. Aangezien f een berekenbare functie is, hebben we hiermee een reductie gegeven. Het andere geval gaat net zo.

101 102 Paradox van zelfreproductie 1. Levende wezens zijn machines. 2. Levende wezens kunnen zich reproduceren. 3. Machines kunnen zich niet reproduceren. De uitspraken 1 en 3 zijn samen in strijd met uitspraak 2. Maar is uitspraak 3 te rechtvaardigen? vraagt Sipser zich af... Programma s en zelfreproductie... maar programma s kunnen zichzelf reproduceren. De overvloed aan computervirussen bewijst dit. De recursiestelling zegt dat ieder programma kan beschikken over zijn eigen code. 103 104 Programma s die teksten printen Wat doet het volgende programma? Print de volgende tekst: Het regent.... en wat doet het volgende programma? Print het volgende twee keer, de tweede keer tussen aanhalingstekens: Het regent. Programma dat eigen code print Let nu op: Wat is het resultaat van de instructie? Print het volgende twee keer, de tweede keer tussen aanhalingstekens: Print het volgende twee keer, de tweede keer tussen aanhalingstekens:

105 106 Definitie van Q Voorbereiding Er bestaat een berekenbare functie q : Σ Σ, zodanig dat voor ieder woord w Σ het resultaat q(w) de beschrijving van een TM P w is die w op de tape print en stopt. (Lem. 6.1) Idee bewijs: de machine Q die q berekent leest invoer w en construeert hieruit een TM P w door w te coderen in de transitiefunctie (machinetabel) van deze TM. Q = Op invoerwoord w: 1. Construeer de volgende TM P w P w = Op invoer x: 1. Wis x van de tape. 2. Schrijf w op de tape. 3. Stop. 2. Geef als output P w en stop. 107 108 TM SELF die eigen code print SELF = AB waarbij: Definitie SELF SELF bestaat uit twee delen A en B die na elkaar werken zodanig dat de uitvoer van A de invoer van B is: A print B. Dus A = P B. B print de code van A daarvóór. Men kan niet stellen B = P A. Dat zou een circulaire definitie opleveren. Neen, B reconstrueert A uit de uitvoer B van A, door Q te gebruiken. A = P B, en B = Op invoer M : 1. Bereken q( M ). 2. Combineer het resultaat met M tot een complete beschrijving van een TM. 3. Print dit resultaat en stop.

109 110 Werking SELF Eerst werkt A (= P B ) die B op de tape plaatst. Dan vervolgt B. Die leest zijn eigen beschrijving B van de tape, en reconstrueert A door q( B ) uit te rekenen met behulp van Q. Daarna combineert B het resultaat van deze berekening (ofwel A ) met B (dat was zijn input) tot AB (d.w.z. de beschrijving van A gevolgd door B). Tenslotte print B deze beschrijving en stopt. De recursiestelling (Th. 6.2) Zij T een TM die een functie t : Σ Σ Σ berekent. Dan bestaat er een TM R die een functie r : Σ Σ berekent zodanig dat voor iedere w Σ geldt: r(w) = t( R, w). De machine R kan dus over haar eigen code beschikken! 111 112 Bewijs De machine R wordt als volgt verkregen uit 3 delen A, B en T: 1. A = P BT. Dus A plaatst BT op de tape. 2. B leest BT van de tape en berekent hieruit A met behulp van Q. Vervolgens combineert B dit resultaat A met de invoer BT tot één machine ABT en plaatst de beschrijving ABT op de tape. 3. Tenslotte vervolgt T. Toepassing 1 (recursiestelling) Een programma dat zijn eigen code print: SELF = Op iedere invoer: 1. Verwerf, m.b.v. recursiestelling, eigen beschrijving SELF. 2. Print SELF. R is dus de machine ABT, en T heeft op zijn tape zowel de beschrijving ABT van R staan, als de invoer w.

Verklaring 113 A TM is onbeslisbaar. (Th. 6.3) Voorbeeld 2 114 De recursiestelling wordt als volgt toegepast. Zij T de TM die de functie: t(u, v) = u berekent. Uit de recursiestelling volgt dat er een TM SELF moet bestaan die de functie r berekent waarvoor geldt: r(v) = t( SELF, v) = SELF. Met andere woorden: SELF berekent de functie r(v) die voor elke v als uitvoer SELF heeft. Bewijs: Zij H een beslisser voor A TM. Construeer B: B = Op invoer w: 1. Verwerf, m.b.v. recursiestelling, eigen beschrijving B. 2. Draai H op B, w. 3. Accepteer, als H verwerpt, en verwerp, als H accepteert. Dus: B accepteert w B verwerpt w. Tegenspraak. 115 116 Voorbeeld 3 Minimale TM s MIN TM is niet Turing-herkenbaar. (Th. 6.5) Als M een TM is, dan verstaat men onder de lengte van de beschrijving M van M het aantal symbolen van het woord M. Men zegt dat M een minimale TM is, als er geen equivalente TM bestaat waarvan de beschrijving korter is. (Def. 6.4) Definieer: MIN TM = { M M is een minimale TM}. Bewijs: Stel E is een opsommer van MIN TM. Construeer C: C = Op invoer w: 1. Verwerf, m.b.v. recursiestelling, eigen beschrijving C. 2. Draai E totdat er een TM D verschijnt met een langere beschrijving dan C. 3. Simuleer D op invoer w.

117 Vastepunt-versie recursiestelling (Th. 6.6) 118 Vervolg voorbeeld 3 Zij t : Σ Σ een berekenbare functie. Dan bestaat er een TM F zodanig dat t( F ) een TM beschrijft die equivalent is met F. MIN TM bevat oneindig veel TM s. Dit betekent dat stap 2 een keer eindigt met een D. Omdat D vervolgens gesimuleerd wordt door C, is deze equivalent met C. Aangezien E een opsommer van MIN TM is, zou D minimaal moeten zijn. Maar de beschrijving van C is korter. Tegenspraak. Bewijs: Definieer F als volgt: F = Op invoer w: 1. Verwerf, m.b.v. recursiestelling, eigen beschrijving F. 2. Bereken t( F ). Zij G het resultaat. 3. Simuleer G op invoer w. Dan geldt dat F en t( F ) = G equivalente TM s beschrijven. 119 120 Bezige Bevers Paradox van Berry Zij k het kleinste natuurlijke getal dat niet in minder dan 1000 woorden in de Nederlandse taal kan worden gedefinieerd.? Beschouw de volgende functie b : N N gedefinieerd door: b(n) is het grootste natuurlijke getal dat door een TM M met lengte n kan worden berekend. Omdat TM s op symboolreeksen werken, representeren we b als een functie b : Σ Σ voor een geschikt alfabet Σ. Hierbij representeren we natuurlijke getallen als elementen van Σ. De functie b is niet berekenbaar! b wordt de busy-beaver-functie genoemd.

121 122 Bewijs dat b niet berekenbaar is Voorbeeldtentamen (1) Zij B een TM die b berekent. Definieer nu een TM F: F = Op iedere invoer: 1. Verwerf, m.b.v. recursiestelling, eigen beschrijving F. 2. Zij n de lengte van F. Bereken m = b( n ) m.b.v. B. 3. Print m + 1. Wat concluderen we hieruit? Zij Σ = {a, b}. Beschouw de volgende taal L over Σ: L = {a n er is een m > 1 met n is deelbaar door m 2 }. Geef een, wat Sipser noemt, high level beschrijving van een niet-deterministische acceptor voor L die haar invoer hooguit 2 keer scant en die niet meer dan 2 hulptapes gebruikt. Deze Turingmachine dient echt niet-deterministisch te zijn. Dat wil zeggen dat de machine geen deterministische Turingmachine mag zijn. Licht ook de werking van uw machine toe door aan te geven wat het niet-deterministische aspect ervan is. 123 124 Voorbeeldtentamen (2) Zij V de verzameling van alle strict monotoon stijgende functies f : N N; met andere woorden, voor alle f V en alle x, y N geldt f(y) > f(x) als y > x. Ga na of V aftelbaar is of niet, en geef een bewijs van uw opvatting. Voorbeeldtentamen (3) Zij A en B Turing-herkenbare talen. Bewijs dat A B ook Turing-herkenbaar is.

125 126 Voorbeeldtentamen (4) Beschouw de volgende taal: D = { M L(M) bevat precies 3 woorden}. Bewijs met behulp van mapping reduction dat D niet beslisbaar is. Voorbeeldtentamen (5) Geef een high-level beschrijving van een Turing-machine M die bij invoer w (over een gefixeerd alfabet Σ) het volgende doet: Als w M, dan print M het woord ww op de tape, wist de rest van de tape, en stopt. Als w = M, dan gaat M in een oneindige loop.