De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Logica voor informatica

Verwante presentaties


Presentatie over: "Logica voor informatica"— Transcript van de presentatie:

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 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. 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 nN kan uitmaken of nX. We zeggen dat X  N beslisbaar is, als er een programma bestaat dat over X kan beslissen. “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!) 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 nN 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 nX kan uitmaken of nX. 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 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. 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 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 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


Download ppt "Logica voor informatica"

Verwante presentaties


Ads door Google