De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Logica voor informatica Deel II. Berekenbaarheids-theorie.

Verwante presentaties


Presentatie over: "Logica voor informatica Deel II. Berekenbaarheids-theorie."— Transcript van de presentatie:

1 Logica voor informatica Deel II

2 Berekenbaarheids-theorie

3 Logica voor InformaticaG.A.W. Vreeswijk3 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?

4 Berekenbaarheids-theorie Probleem-typen

5 Logica voor InformaticaG.A.W. Vreeswijk5 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.”

6 Logica voor InformaticaG.A.W. Vreeswijk6 Ingewikkelde maar toch beslisbare problemen Kan ik meer dan €18 aan boodschappen meenemen? Is er een kliek groter dan drie? Kan deze puzzel worden opgelost in minder dan 43 zetten? Is er een dominerende verzameling met minder dan 3 (Graaf 1) resp. 4 (Graaf 2) knopen?

7 Logica voor InformaticaG.A.W. Vreeswijk7 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.

8 Logica voor InformaticaG.A.W. Vreeswijk8 Vraag-typen EenvoudigReken- intensief Met de computer te beantwoorden Niet met de computer te beantwoorden Vaag of subjectief Voldoende precies geformuleerd Beslisbaar Onbeslisbaar ( )

9 Onbeslisbare problemen Voorbeelden

10 Logica voor InformaticaG.A.W. Vreeswijk10 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)

11 Logica voor InformaticaG.A.W. Vreeswijk11 Het stop-probleem is onbeslisbaar Merk op: h/2 en j/1. Stel h bestaat, zó dat h(j, i) = 1  j(i) stopt. 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.

12 Logica voor InformaticaG.A.W. Vreeswijk12 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.

13 Logica voor InformaticaG.A.W. Vreeswijk13 Tabel voor h hi1i1 i2i2 i3i3 i4i4 i5i5 i6i6 i7i7 i8i8 i9i9 … … j1j … j2j … j3j … j4j … j5j … j6j … j7j … j8j … j9j … …………………………… q Nu moeten we er ons alleen nog van overtuigen dat q gewoon één van de j i is. Zoja, dan zijn we klaar. (Ga na!)

14 Logica voor InformaticaG.A.W. Vreeswijk14 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

15 Logica voor InformaticaG.A.W. Vreeswijk15 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.”

16 Logica voor InformaticaG.A.W. Vreeswijk16 Carcassonne Youtube gameplay instruction

17 Logica voor InformaticaG.A.W. Vreeswijk17

18 Logica voor InformaticaG.A.W. Vreeswijk18 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?

19 Logica voor InformaticaG.A.W. Vreeswijk19 Z 2 afdekken met rotatie is flauw

20 Logica voor InformaticaG.A.W. Vreeswijk20 Afdekken zonder rotatie Voorbeelden waarin rotatie niet is toegestaan: Noord-Zuid oriëntatie. Schaduwen.

21 Logica voor InformaticaG.A.W. Vreeswijk21 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)

22 Logica voor InformaticaG.A.W. Vreeswijk22 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.

23 Logica voor InformaticaG.A.W. Vreeswijk23 Culik (1996) (Als je Carcassonne wilt: rood is stad, groen is land, blauw is water, grijs is steen, geel is weg.) A-periodieke betegeling

24 Logica voor InformaticaG.A.W. Vreeswijk24 A-periodic texture mapping Jos Stam (1997), Aperiodic Texture MappingAperiodic Texture Mapping Michael F. Cohen, Jonathan Shade, Stefan Hiller, Oliver Deussen (2003), Wang Tiles for Image and Texture GenerationWang Tiles for Image and Texture Generation Li-Yi Wei (2004), Tile-Based Texture Mapping on Graphics HardwareTile-Based Texture Mapping on Graphics Hardware Voorbeelden waarin rotatie niet is toegestaan: Noord-Zuid oriëntatie Schaduwen op terrein- tegels.

25 Logica voor InformaticaG.A.W. Vreeswijk25 Li-Yi Wei (2004), afbeeldingen Chelsea Robertson (2005)

26 Logica voor InformaticaG.A.W. Vreeswijk26 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.

27 Logica voor InformaticaG.A.W. Vreeswijk27 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)

28 Logica voor InformaticaG.A.W. Vreeswijk PCP puzzel Opgave: verzin een getal, bestaande uit cijfers 1, 2, en 3, zó dat dit getal een blok representeert met een gave rechterkant Post’s correspondence problem Een oplossing: Een poging: …?3231

29 Logica voor InformaticaG.A.W. Vreeswijk Andere PCP puzzel 123 Een poging: ? Lengte van een kortste oplossing (er zijn er twee): 75 !

30 Logica voor InformaticaG.A.W. Vreeswijk30 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

31 Berekenbaarheids-theorie Definities en resultaten

32 Logica voor InformaticaG.A.W. Vreeswijk32 Berekenbaarheids-theorie Berekenbare functies Opsombare verzamelingen Semi-beslisbare verzamelingen Beslisbare verzamelingen =

33 Logica voor InformaticaG.A.W. Vreeswijk33 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.

34 Berekenbaarheids-theorie Berekenbare functies

35 Logica voor InformaticaG.A.W. Vreeswijk35 Berekenbaarheid 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? Een partiële functie f : N  N heet berekenbaar als er een computer-programma π/1 te schrijven is die f kan uitrekenen. Maakt het nog uit in welke programmeertaal?

36 Logica voor InformaticaG.A.W. Vreeswijk36 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 n  N 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.

37 Logica voor InformaticaG.A.W. Vreeswijk37 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. 1. Het kan kan zijn dat π heeft “ontdekt” dat f↑n en daarom stopt (of doorgaat zonder ooit nog wat af te drukken). 2. Het kan zijn dat f↓n en π nog bezig is f(n) uit te rekenen.

38 Logica voor InformaticaG.A.W. Vreeswijk38 Er bestaan hoogstens aftelbaar oneindig veel berekenbare functies Bewijs: Kies een voldoende krachtige programmeertaal, bijvoorbeeld J. Alle berekenbare functies B  N N 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|. Eigenlijk wordt elke berekenbare functie berekend door aftelbaar oneindig veel programma’s. Dit heet het Padding Lemma.

39 Logica voor InformaticaG.A.W. Vreeswijk39 Het padding lemma... y :=4; while ( y < x ) {... } x := y − z;... y :=4; while ( y < x ) {... } z := z; /* bla */ x := y − z;...

40 Logica voor InformaticaG.A.W. Vreeswijk40 Er bestaan onberekenbare functies Bewijs: Er zijn overaftelbaar veel functies van N naar N (i.e., N N is overaftelbaar). Maar er zijn hoogstens aftelbaar veel berekenbare functies van N naar N. (Zojuist gezien!) Stelling. De verzameling N N bevat tenminste één onberekenbare functie. Volgt uit:

41 Logica voor InformaticaG.A.W. Vreeswijk41 Het leeuwendeel van N  N is onberekenbaar Bewijs: N N bevat aftelbaar veel berekenbare functies B. Het complement N N ─ B (de verz. van onberekenbare functies) kan niet aftelbaar zijn. Dus is het complement overaftelbaar. Stelling. De verzameling N N bevat overaftelbaar veel onberekenbare functies. Volgt uit:

42 Logica voor InformaticaG.A.W. Vreeswijk42 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”.

43 Logica voor InformaticaG.A.W. Vreeswijk43 “Zwaluwstaarten” (“dovetailing”) Laat programma π/1 een functie f : N → N uitrekenen. π kan quasi-parallel worden uitgevoerd op N: 1. Eén stap π(0). 2. Eén stap π(0), één stap π(1). 3. Eén stap π(0), één stap π(1), één stap π(2). 4. Eén stap π(0), één stap π(1), één stap π(2), één stap π(3). 5. …

44 Logica voor InformaticaG.A.W. Vreeswijk44 De inverse van een injectieve berekenbare functie (1) bestaat, en (2) is berekenbaar Bewijs: Laat π/1 de injectie f : X → Y uitrekenen. 1. De inverse, g (als part. fun.), bestaat. 2. 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

45 Logica voor InformaticaG.A.W. Vreeswijk45 Berekenbaarheid op strings Waarom alleen maar kijken naar functies f : N → N ? Functies f : Strings → Strings zijn toch ook interessant in de informatica? N Strings N codeerde-codeer kan berekenbaar, bijv. d.m.v. Gödel-nummering

46 Logica voor InformaticaG.A.W. Vreeswijk46 Gödel nummering ASCII: 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 ?

47 Logica voor InformaticaG.A.W. Vreeswijk47 Berekenbaarheid op andere verzamelingen Op Strings n → Strings. Op Strings * → Strings. (Waarbij Strings * = Strings 0  Strings 1  Strings 2 ... 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).

48 Berekenbaarheids-theorie Beslisbaarheid

49 Logica voor InformaticaG.A.W. Vreeswijk49 Beslisbaarheid preciezer definiëren “kan uitmaken of” → druk 1 af als n  X, 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!) We zeggen dat X  N beslisbaar is, als er een programma bestaat dat over X kan beslissen. We zeggen dat programma π/1  J beslist over verzameling X  N als π voor elk getal n  N kan uitmaken of n  X.

50 Logica voor InformaticaG.A.W. Vreeswijk50 Een model-bewijs Te bewijzen: als X en Y beslisbaar zijn, dan is X  Y het ook. Bewijs: Laat j 1 en j 2 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 n  N willekeurig. Laat j de waarden j 1 (n) en j 2 (n) uitrekenen door j 1 en j 2 aan te roepen. Laat j de waarde 1 teruggeven als en slechts als j 1 (n)=1 of j 2 (n )=1 (en 0 anders).

51 Logica voor InformaticaG.A.W. Vreeswijk51 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)?

52 Logica voor InformaticaG.A.W. Vreeswijk52 Semi-beslisbaarheid We zeggen dat X  N semi- beslisbaar is, als er een programma π bestaat dat semi-beslist over X. We zeggen dat programma π/1 semi-beslist over X  N, als π voor n  X kan uitmaken of n  X. “kan uitmaken of” → druk 1 af als n  X, druk anders 0 af Als n  X dan zal π een 0 afdrukken, of oneindig doorlopen. Zwakte: het heeft geen zin om op π te wachten. (Geldigheid in) predikaten- logica is semi-beslisbaar

53 Berekenbaarheids-theorie Opsombaarheid

54 Logica voor InformaticaG.A.W. Vreeswijk54 Opsombaarheid preciezer definiëren 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. We zeggen dat programma π/0  J de verzameling X  N opsomt als π precies alle getallen uit X kan afdrukken.

55 Logica voor InformaticaG.A.W. Vreeswijk55 Raadsel: is NxN opsombaar? Is suggestieve aftelling. Kun je ook een algoritme bedenken dat elementen in het platte vlak aftelt? I.e., kun je een opsomming bedenken?

56 Logica voor InformaticaG.A.W. Vreeswijk56 Een mogelijke opsomming van NxN n:=1 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.) }

57 Logica voor InformaticaG.A.W. Vreeswijk57 Opsombaar ≠ aftelbaar Bewijs: Er bestaan tenminste N N verschillende aftelbare verzamelingen. Er bestaan “maar” aftelbaar veel opsombare verzamelingen. Gevolg: Overaftelbaar veel aftelbare verzamelingen bezitten geen opsomming! Stelling. Er bestaan aftelbare verzamelingen die niet opsombaar zijn. Men kan bewijzen: P( X  N is opsombaar ) = 0

58 Logica voor InformaticaG.A.W. Vreeswijk58 Semi-beslisbaar = opsombaar Stel X is opsombaar. Laat π/0 de verz. X opsommen. Semi-beslisprocedure: Draai π. Als n  X 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 n  X zal π vroeg of laat een 1 afdrukken. Druk deze n af. Als (eventueel!) een 0 wordt afgedrukt, druk dan niets af. zwaluwstaart-methode

59 Logica voor InformaticaG.A.W. Vreeswijk59 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 X C = N ─ X opsombaar? Ja. Weet niet.

60 Logica voor InformaticaG.A.W. Vreeswijk60 Complementair opsombaar N

61 Logica voor InformaticaG.A.W. Vreeswijk61 Complementair opsombaar 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.) Een ver zameling X  N heet complementair opsombaar als het complement opsomba ar is.


Download ppt "Logica voor informatica Deel II. Berekenbaarheids-theorie."

Verwante presentaties


Ads door Google