Download de presentatie
De presentatie wordt gedownload. Even geduld aub
1
Logica voor informatica
Deel II
2
Berekenbaarheids-theorie
3
Het vraagstuk van berekenbaarheid
Zijn er inherente beperkingen aan wat computers kunnen (ongeacht programmeertaal, aantal processoren, rekentijd, en geheugen)? Zijn er problemen die, hoewel voldoende precies geformuleerd, computers principieel niet kunnen oplossen? Zo ja, welke problemen zijn dat? Logica voor Informatica G.A.W. Vreeswijk
4
Berekenbaarheids-theorie
Probleem-typen
5
Vaag geformuleerde of metafysische problemen
Hoe zou lekker bier moeten smaken? Wat is een goeie game? Wat speelt zich af in een zwart gat? Wat is de zin van het leven? Wat is gelijkheid? Deze vraagstuk-typen zijn vaag geformuleerd, of kunnen alleen subjectief worden beantwoord of behoren tot het domein van de metafysica. “(…) wovon man nicht reden kann, darüber muß man schweigen.” Logica voor Informatica G.A.W. Vreeswijk
6
Ingewikkelde maar toch beslisbare problemen
1 2 3 5 6 4 7 8 9 11 10 12 13 14 15 Kan deze puzzel worden opgelost in minder dan 43 zetten? Kan ik meer dan €18 aan boodschappen meenemen? Is er een kliek groter dan drie? Is er een dominerende verzameling met minder dan 3 (Graaf 1) resp. 4 (Graaf 2) knopen? Logica voor Informatica G.A.W. Vreeswijk
7
Bestaan er onbeslisbare vraagstukken?
Bestaan er vraagstukken die, hoewel voldoende precies geformuleerd, computers, ongeacht programmeertaal, beschikbaar aantal processoren, rekentijd, en geheugen, principieel niet kunnen oplossen? Antwoord: JA, zulke vraagstukken bestaan. Logica voor Informatica G.A.W. Vreeswijk
8
( ) Vraag-typen Vaag of subjectief Voldoende precies geformuleerd
Met de computer te beantwoorden Niet met de computer te beantwoorden Beslisbaar Onbeslisbaar ( ) Eenvoudig Reken-intensief Logica voor Informatica G.A.W. Vreeswijk
9
Onbeslisbare problemen
Voorbeelden
10
Alan Turing 23 juni 1912: geboren in Londen
kwantummechanica, al snel wiskunde aan de Universiteit van Cambridge 1935: maakt kennis met het Entscheidungsproblem 1936: On Computable Numbers, with an Application to the Entscheidungsproblem de Logical Computing Machine (later: Turing-machine) WW2: Government Code and Cypher School (ontcijfering Enigma) 1950: Turing test in AI 1954: overleden (cyanide-vergiftiging) Logica voor Informatica G.A.W. Vreeswijk
11
Het stop-probleem is onbeslisbaar
Stelling. Zij J een programmeertaal. Als J voldoende rijk is (en Java is dat bijvoorbeeld zeker), dan kan er geen programma h J bestaan dat voor elke programma/input-combinatie (j, i) J I kan uitmaken of j met input i stopt. Merk op: h/2 en j/1. Stel h bestaat, zó dat h(j, i) = 1 j(i) stopt. Logica voor Informatica G.A.W. Vreeswijk
12
Er bestaan aftelbaar veel computerprogramma’s
`Bewering. Laat A een eindig alfabet zijn. De verzameling van alle eindige strings over A is aftelbaar. Bewijs: a, b,..., z, aa, ab, ac,…, az, ba, bb, … Gevolg: de volgende verz. zijn aftelbaar: De verz. van alle programma’s in de taal J. De verz. van alle computerprogramma’s in bestaande programmeertalen De verz. van alle mogelijke computerprogramma’s in alle mogelijke (dus ook toekomstige) programmeertalen. Logica voor Informatica G.A.W. Vreeswijk
13
Tabel voor h h i1 i2 i3 i4 i5 i6 i7 i8 i9 … j1 1 j2 j3 j4 j5 j6 j7 j8 j9 q 1 1 Nu moeten we er ons alleen nog van overtuigen dat q gewoon één van de ji is. Zoja, dan zijn we klaar. (Ga na!) Logica voor Informatica G.A.W. Vreeswijk
14
Het stop-probleem is onbeslisbaar
Halting programma, h, is zó, dat h(j, i) = 1 j(i) stopt. Omgekeerd: h(j, i) = 0 j(i) stopt niet. Bekijk programma q/1: q(i): als h(i, i) = 0 stop, anders draai oneindige loop. Stopt q(q) ? Volgens q’s definitie: q(q) stopt h(q, q) = 0. Volgens h’s definitie: q(q) stopt h(q, q) = 1. Tegenspraak. diagonalisatie Logica voor Informatica G.A.W. Vreeswijk
15
Het stop-probleem voor eindige collecties
Is het stop-probleem onbeslisbaar voor eindige collecties van programma’s? Piet: “Nog steeds niet. Het diagonalisatie-argument is nog steeds van kracht (op de nu eindige h-matrix).” Truus: “Ja. Er bestaat een controle-programma h dat een 1 afdrukt d.e.s.d.a. j stopt met input i.” “Zonder overigens te weten hoe h er uit ziet.” Logica voor Informatica G.A.W. Vreeswijk
16
Carcassonne Youtube gameplay instruction Logica voor Informatica
G.A.W. Vreeswijk
17
Logica voor Informatica
G.A.W. Vreeswijk
18
Voorbeeld van een Carcassonne tegelset
Stel: van elke tegel zijn oneindig veel exemplaren voorradig Is het mogelijk het platte vlak met deze tegelset af te dekken, zonder tegels te roteren? Logica voor Informatica G.A.W. Vreeswijk
19
Z2 afdekken met rotatie is flauw
Logica voor Informatica G.A.W. Vreeswijk
20
Afdekken zonder rotatie
Voorbeelden waarin rotatie niet is toegestaan: Noord-Zuid oriëntatie. Schaduwen. Logica voor Informatica G.A.W. Vreeswijk
21
Wang (1961) Vermoeden: “er bestaat een algoritme (reken-recept) dat voor alle tegelsets kan beslissen of deze het platte vlak kunnen vullen” Idee: probeer steeds grotere gebieden te bedekken, totdat: een gebied niet bedekt kan worden (mislukking) een periodiek patroon ontstaat (succes) Logica voor Informatica G.A.W. Vreeswijk
22
Het tegel-probleem van Wang
1961: Hoa Wang: "Proving theorems by pattern recognition—II", Bell System Tech. Journal 40(1):1–41. Algoritme nam periodiciteit aan. 1966: Robert Berger: "The undecidability of the domino problem", Memoirs Amer. Math. Soc. 66(1966). A-periodieke set bevatte 20,426 tegels. 1996: Karel Culik: "An aperiodic set of 13 Wang tiles", Discrete Mathematics 160, 245–251. Logica voor Informatica G.A.W. Vreeswijk
23
A-periodieke betegeling
Culik (1996) (Als je Carcassonne wilt: rood is stad, groen is land, blauw is water, grijs is steen, geel is weg.) Logica voor Informatica G.A.W. Vreeswijk
24
A-periodic texture mapping
Voorbeelden waarin rotatie niet is toegestaan: Noord-Zuid oriëntatie Schaduwen op terrein-tegels. Jos Stam (1997), Aperiodic Texture Mapping Michael F. Cohen, Jonathan Shade, Stefan Hiller, Oliver Deussen (2003), Wang Tiles for Image and Texture Generation Li-Yi Wei (2004), Tile-Based Texture Mapping on Graphics Hardware Logica voor Informatica G.A.W. Vreeswijk
25
Li-Yi Wei (2004), afbeeldingen Chelsea Robertson (2005)
Logica voor Informatica G.A.W. Vreeswijk
26
Er bestaat geen algoritme!
Er bestaat geen algoritme, er kan ook geen algoritme bestaan, en er zal ook nooit een algoritme komen, dat voor alle niet-roteerbare Carcassonne-tegelsets kan bepalen of deze het platte vlak kunnen betegelen. Het bewijs komt er op neer elk specifiek zg. halting-probleem te vertalen naar een specifiek betegelings-probleem. ... en het universele halting-probleem is onbeslisbaar. Logica voor Informatica G.A.W. Vreeswijk
27
Emil L. Post 1897: geboren in Augustow, emigratie naar VS
1909: verlies van linkerarm 1920: doctoraalscriptie over Principia Mathematica 1921: ontdekking onvolledigheidsstelling Gödel, eerste aanval van bipolar, demotie carrière 1936: Post-machine 1944: opsombaarheid, Turing-degree 1954: overleden (hartaanval) Logica voor Informatica G.A.W. Vreeswijk
28
Post’s correspondence problem
PCP puzzel 1 2 3 Opgave: verzin een getal, bestaande uit cijfers 1, 2, en 3, zó dat dit getal een blok representeert met een gave rechterkant 1 1 1 1 Een poging: 3211…? Een oplossing: 3231 1 1 1 1 1 1 1 1 1 1 1 Logica voor Informatica G.A.W. Vreeswijk
29
Andere PCP puzzel 1 2 3 1 1 Lengte van een kortste oplossing (er zijn er twee): 75 ! 1 1 Een poging: 1 1 1 1 1 1 1 1 . . ? 1 1 1 1 1 1 Logica voor Informatica G.A.W. Vreeswijk
30
Tijdbalk voor onbeslisbaarheid
1889: Peano: formeel systeem voor rekenkunde 1900: Hilbert: 23 problemen voor de 20e eeuw : Whityehead & Russell: principia methematica 1920: Hilbert's programma 1928: het Entscheidungsproblem 1936: lambda-calculus → eerste onbeslisbare probleem 1936: Turing machine 1936: Post machine Logica voor Informatica G.A.W. Vreeswijk
31
Berekenbaarheids-theorie
Definities en resultaten
32
Berekenbaarheids-theorie
Berekenbare functies Beslisbare verzamelingen Opsombare verzamelingen = Semi-beslisbare verzamelingen Logica voor Informatica G.A.W. Vreeswijk
33
Berekenbaar, opsombaar, beslisbaar
Een functie f : N N heet berekenbaar als er een programma te schrijven valt die deze functie kan uitrekenen. Een verzameling A N heet opsombaar als er een programma te schrijven valt die precies deze verzameling kan afdrukken. Een verzameling A N heet beslisbaar als er een programma te schrijven valt die kan uitmaken of een getal in A zit. Logica voor Informatica G.A.W. Vreeswijk
34
Berekenbaarheids-theorie
Berekenbare functies
35
Maakt het nog uit in welke programmeertaal?
Berekenbaarheid Maakt het nog uit in welke programmeertaal? Een partiële functie f : N N heet berekenbaar als er een computer-programma π/1 te schrijven is die f kan uitrekenen. Eenvoudig voorbeeld: f : N → N beeldt x af op √x mits √x geheel is; anders ongedefinieerd. Is deze functie berekenbaar? Verzin andere functies N → N. Berekenbaar? Logica voor Informatica G.A.W. Vreeswijk
36
Berekenbaarheid preciezer definiëren
Zij f : N N een partiële functie en J een programmeertaal. We zeggen dat programma πJ de functie f berekent als voor elke nN en elke uitvoering van π(n) het volgende geldt: Als f↓n, wordt f(n) afgedrukt. Als f↑n, wordt niets afgedrukt. Berekenbaarheid. Een partiële functie f : N N heet berekenbaar, ook wel: effectief berekenbaar, als er een programma π/1 J bestaat welke f berekent. Logica voor Informatica G.A.W. Vreeswijk
37
Aanvullingen op berekenbaarheids-definitie
Als π een uitkomst afdrukt, dan is π eigenlijk klaar, en mag het stoppen. Als π niet op deze manier werkt, kunnen we π veranderen in een programma π’ dat altijd stopt na het afdrukken van een resultaat. Als f↓n kan het op zich nog best lang duren voordat π de uitkomst f(n) afdrukt. Als π niets afdrukt, kan dat twee redenen hebben. Het kan kan zijn dat π heeft “ontdekt” dat f↑n en daarom stopt (of doorgaat zonder ooit nog wat af te drukken). Het kan zijn dat f↓n en π nog bezig is f(n) uit te rekenen. Logica voor Informatica G.A.W. Vreeswijk
38
Er bestaan hoogstens aftelbaar oneindig veel berekenbare functies
Eigenlijk wordt elke berekenbare functie berekend door aftelbaar oneindig veel programma’s. Dit heet het Padding Lemma. Bewijs: Kies een voldoende krachtige programmeertaal, bijvoorbeeld J. Alle berekenbare functies B NN worden berekend door tenminste één element uit J. We hebben zojuist een injectie B → J geconstrueerd. Eerdere stelling uit dictaat: als f: X → Y een injectie is, dan is |X| ≤ |Y|. Dus |B| ≤ |J|. Logica voor Informatica G.A.W. Vreeswijk
39
Het padding lemma . . . y :=4; while ( y < x ) { } x := y − z;
z := z; /* bla */ x := y − z; Logica voor Informatica G.A.W. Vreeswijk
40
Er bestaan onberekenbare functies
Stelling. De verzameling NN bevat tenminste één onberekenbare functie. Volgt uit: Bewijs: Er zijn overaftelbaar veel functies van N naar N (i.e., NN is overaftelbaar). Maar er zijn hoogstens aftelbaar veel berekenbare functies van N naar N. (Zojuist gezien!) Logica voor Informatica G.A.W. Vreeswijk
41
Het leeuwendeel van N N is onberekenbaar
Stelling. De verzameling NN bevat overaftelbaar veel onberekenbare functies. Volgt uit: Bewijs: NN bevat aftelbaar veel berekenbare functies B. Het complement NN ─ B (de verz. van onberekenbare functies) kan niet aftelbaar zijn. Dus is het complement overaftelbaar. Logica voor Informatica G.A.W. Vreeswijk
42
Vragen Welke van de volgende functies N → N is berekenbaar?
De identiteitsfunctie. De compositie (samenstelling) van twee berekenbare functies. De inverse van een berekenbare functie. De inverse van een berekenbare functie, vooropgesteld dat de inverse bestaat. Dit is een moeilijke… we hebben hier een techniek voor nodig, genaamd “zwaluwstaarten”. Logica voor Informatica G.A.W. Vreeswijk
43
“Zwaluwstaarten” (“dovetailing”)
Laat programma π/1 een functie f : N → N uitrekenen. π kan quasi-parallel worden uitgevoerd op N: Eén stap π(0). Eén stap π(0), één stap π(1). Eén stap π(0), één stap π(1), één stap π(2). Eén stap π(0), één stap π(1) , één stap π(2), één stap π(3). … 1 2 3 4 Logica voor Informatica G.A.W. Vreeswijk
44
link naar pin code analyse
De inverse van een injectieve berekenbare functie (1) bestaat, en (2) is berekenbaar Bewijs: Laat π/1 de injectie f : X → Y uitrekenen. De inverse, g (als part. fun.), bestaat. Algoritme om g(n) te berekenen: Voer π quasi-parallel op N uit. Als g(n) gedefinieerd is, zal f(g(n)) = n en zal π voor zekere m ooit n afdrukken. In dat geval geldt m = g(n)―stop. link naar pin code analyse Logica voor Informatica G.A.W. Vreeswijk
45
Berekenbaarheid op strings
Waarom alleen maar kijken naar functies f : N → N ? Functies f : Strings → Strings zijn toch ook interessant in de informatica? Strings N N Strings codeer de-codeer kan berekenbaar, bijv. d.m.v. Gödel-nummering Logica voor Informatica G.A.W. Vreeswijk
46
Gödel nummering ASCII: 0-127 codeert letters, cijfers, en leestekens
Het woord “abces”: 97, 98, 99, 101, 115 Naar uniek natuurlijk getal: Deze injectie Strings → N is berekenbaar Omgekeerd is injectieve (partiële!) functie N → Strings ook berekenbaar Partieel, want welke string zou vertegenwoordigd worden door ? Logica voor Informatica G.A.W. Vreeswijk
47
Berekenbaarheid op andere verzamelingen
Op Stringsn → Strings . Op Strings* → Strings . (Waarbij Strings* = Strings0 Strings1 Strings2 .. . Voorbeeld: aap#noot#mies ↔ (aap, noot, mies) . Op Strings* → Strings* . Op Plaatjes* → Plaatjes* , Audio, Video, … Alle berekeningen moeten wel “batch” zijn. Geen interactiviteit. Geen asynchroniciteit. Geen “orakel”van buiten (software-updates). Logica voor Informatica G.A.W. Vreeswijk
48
Berekenbaarheids-theorie
Beslisbaarheid
49
Beslisbaarheid preciezer definiëren
We zeggen dat programma π/1 J beslist over verzameling X N als π voor elk getal nN kan uitmaken of nX. We zeggen dat X N beslisbaar is, als er een programma bestaat dat over X kan beslissen. “kan uitmaken of” → druk 1 af als nX, druk anders 0 af. Elke eindige verzameling is beslisbaar. Als X en Y beslisbaar zijn, dan zijn hun vereniging, doorsnede, verschil en complement dat ook. (Ga na!) Logica voor Informatica G.A.W. Vreeswijk
50
Een model-bewijs Te bewijzen: als X en Y beslisbaar zijn, dan is X Y het ook. Bewijs: Laat j1 en j2 programma’s zijn die over X resp. Y kunnen beslissen. Het is nu in principe mogelijk een programma j te schrijven die over X Y beslist, als volgt: Zij nN willekeurig. Laat j de waarden j1(n) en j2(n) uitrekenen door j1 en j2 aan te roepen. Laat j de waarde 1 teruggeven als en slechts als j1(n)=1 of j2(n)=1 (en 0 anders). Logica voor Informatica G.A.W. Vreeswijk
51
Beslisbaarheid van de propositielogica
Is de (verz. van tautologieën in de) propositielogica beslisbaar? I.e., bestaat er een algoritme waarmee bepaald kan worden of een formule een tautologie is? Ja! : Waarheidstabellen Semantische tableaus Vragen: Kan men m.b.v. het Hilbert-bewijssysteem beslissen of een een formule een tautologie is? M.b.v. het Fitch-bewijssysteem (natuurlijke deductie)? Logica voor Informatica G.A.W. Vreeswijk
52
(Geldigheid in) predikaten-logica is semi-beslisbaar
Semi-beslisbaarheid We zeggen dat programma π/1 semi-beslist over X N, als π voor nX kan uitmaken of nX. We zeggen dat X N semi-beslisbaar is, als er een programma π bestaat dat semi-beslist over X. “kan uitmaken of” → druk 1 af als nX, druk anders 0 af Als nX dan zal π een 0 afdrukken, of oneindig doorlopen. Zwakte: het heeft geen zin om op π te wachten. Logica voor Informatica G.A.W. Vreeswijk
53
Berekenbaarheids-theorie
Opsombaarheid
54
Opsombaarheid preciezer definiëren
We zeggen dat programma π/0 J de verzameling X N opsomt als π precies alle getallen uit X kan afdrukken. We zeggen dat X N opsombaar is, als er een programma bestaat dat X kan opsommen. π heeft geen input nodig. π is niet gebonden aan een volgorde. π mag elementen herhaald afdrukken. Er kunnen onvoorspelbare en willekeurige lange pauzes voorkomen tussen het afdrukken van getallen. Logica voor Informatica G.A.W. Vreeswijk
55
Raadsel: is NxN opsombaar?
31 30 29 28 27 26 Is suggestieve aftelling. Kun je ook een algoritme bedenken dat elementen in het platte vlak aftelt? I.e., kun je een opsomming bedenken? 13 12 11 10 25 14 3 2 9 24 15 4 1 8 23 16 5 6 7 22 17 18 19 20 21 Logica voor Informatica G.A.W. Vreeswijk
56
Een mogelijke opsomming van NxN
while 1 { ontbind n in priemfactoren als n geen andere priemdelers heeft dan 2 en 3, print dan de exponenten als geordend paar, bv → (7, 84) (Print niks in het andere geval.) } Logica voor Informatica G.A.W. Vreeswijk
57
Opsombaar ≠ aftelbaar Men kan bewijzen: P( X N is opsombaar ) = 0
Stelling. Er bestaan aftelbare verzamelingen die niet opsombaar zijn. Bewijs: Er bestaan tenminste NN verschillende aftelbare verzamelingen. Er bestaan “maar” aftelbaar veel opsombare verzamelingen. Gevolg: Overaftelbaar veel aftelbare verzamelingen bezitten geen opsomming! Logica voor Informatica G.A.W. Vreeswijk
58
Semi-beslisbaar = opsombaar
Stel X is opsombaar. Laat π/0 de verz. X opsommen. Semi-beslisprocedure: Draai π. Als nX dan zal n uiteindelijk verschijnen; druk in dat geval 1 af. Stel X is semi-beslisbaar. Laat π/1 semi-beslissen over X. Opsom-algoritme: Voer π/0 semi-parallel uit op N. Voor elke nX zal π vroeg of laat een 1 afdrukken. Druk deze n af. Als (eventueel!) een 0 wordt afgedrukt, druk dan niets af. zwaluwstaart-methode Logica voor Informatica G.A.W. Vreeswijk
59
Vragen over opsombaarheid
Is elke eindige verzameling X N opsombaar? Stel, X en Y zijn opsombaar. Is X Y opsombaar? Is X Y opsombaar? Is X Y opsombaar? Is X ─ Y opsombaar? Is XC = N ─ X opsombaar? Ja. Weet niet. Logica voor Informatica G.A.W. Vreeswijk
60
Complementair opsombaar
Logica voor Informatica G.A.W. Vreeswijk
61
Complementair opsombaar
Een verzameling X N heet complementair opsombaar als het complement opsombaar is. Co-opsombaar, co-enumereerbaar, co-recursief enumereerbaar, co-recursively enumerable, co-r.e. Stelling van Post: X N is beslisbaar X is opsombaar en complementair opsombaar. Antwoord op eerdere vraag: niet alle complementen van opsombare verz. zijn dus opsombaar. (Immers: niet alle verz. zijn beslisbaar.) Logica voor Informatica G.A.W. Vreeswijk
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.