REDENEREN, REKENEN, EN COMPLEXITEIT



Vergelijkbare documenten
Complexiteit van berekeningen

Mededelingen. TI1300: Redeneren en Logica. Waarheidstafels. Waarheidsfunctionele Connectieven

Credit cards, computationele complexiteit en consistentie uitspraken

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

Tegenvoorbeeld. TI1300: Redeneren en Logica. De truc van Gauss. Carl Friedrich Gauss, 7 jaar oud (omstreeks 1785)

Verzamelingen deel 3. Derde college

Uitwerking tentamen Analyse van Algoritmen, 29 januari

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

Wiskundige beweringen en hun bewijzen

Logic for Computer Science

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

TW2020 Optimalisering

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

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Caleidoscoop: Logica

Automaten. Informatica, UvA. Yde Venema

1 Complexiteit. of benadering en snel

Elfde college complexiteit. 23 april NP-volledigheid III

Combinatoriek groep 1 & 2: Recursie

Inleiding Wiskundige Logica

Inleiding logica Inleveropgave 3

8. Complexiteit van algoritmen:

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

NP-volledigheid. Algoritmiek

NP-Volledigheid. Wil zo snel mogelijke algoritmes om problemen op te lossen. De looptijd is polynomiaal: O n k - dat is heel erg mooi

Modulewijzer InfPbs00DT

Semantiek 1 college 4. Jan Koster

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.

Samenvatting. TI1306 Redeneren & Logica Review Guide 2014 Door: David Alderliesten. Disclaimer

Tentamen TI1300 en IN1305-A (Redeneren en) Logica

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

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

Geldwisselprobleem van Frobenius

Logica voor Informatica. Propositielogica. Syntax & Semantiek. Mehdi Dastani Intelligent Systems Utrecht University

Formeel Denken 2014 Uitwerkingen Tentamen

Propositielogica Het maken van een waarheidstabel

Logica voor Informatica. Propositielogica. Normaalvormen en Semantische tableaux. Mehdi Dastani

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

Eigenschap (Principe van welordening) Elke niet-lege deelverzameling V N bevat een kleinste element.

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j

Benaderingsalgoritmen

MACHINES. ... en kralenkettingen. Onderzoeksprogramma Vierkant voor Wiskunde. Wiskundeclubs. Tristan Cranendonk & Joost Langeveld

(On)Doenlijke problemen

Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 3

Mededelingen. TI1300: Redeneren en Logica. Metavariabelen Logica, p Minder connectieven nodig

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

Modelleren en Programmeren voor KI

Getallensystemen, verzamelingen en relaties

1 Kettingbreuken van rationale getallen

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

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

Tentamen Discrete Wiskunde 1 10 april 2012, 14:00 17:00 uur

Hebzucht loont niet altijd

opgaven formele structuren deterministische eindige automaten

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

Combinatoriek groep 1

PROPOSITIELOGICA. fundament voor wiskundig redeneren. Dr. Luc Gheysens

Notatie van verzamelingen. Lidmaatschap. Opgave. Verzamelingen specificeren

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen

Verzamelingen. Hoofdstuk 5

Proposities. Hoofdstuk 2

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

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

Opdrachten Tarski s World

Nu een leuk stukje wiskunde ter vermaak (hoop ik dan maar). Optellen van oneindig veel getallen

Combinatoriek groep 2

Bijzondere kettingbreuken

Andere grote namen van wiskundigen en/of filosofen: Plato, Socrates, Descartes (Cartesius), Spinoza, Kant, Russell, Hilbert, Tarski en Brouwer

VERZAMELINGEN EN AFBEELDINGEN

Ter Leering ende Vermaeck

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

Propositielogica. Evert De Nolf Delphine Draelants Kirsten Storms Evelien Weyn. 24 augustus Universiteit Antwerpen

Inhoud leereenheid 1. Inleiding. Introductie 13. Leerkern Wat is logica? Logica en informatica 13

Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking

Hoofdstuk 3. behandeld. In de paragrafen 3.1 en 3.2 worden de noties valuatie, model en

Formeel Denken. Herfst 2004

Stoomcursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO ( ) = = ( ) ( ) ( ) = ( ) ( ) = ( ) = = ( )

Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep.

1.1 Rekenen met letters [1]

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

Over Plantinga s argument voor de existentie van een noodzakelijk bestaand individueel ding. G.J.E. Rutten

Hoofdstuk 5. In dit hoofdstuk behandelen we een methode waarmee op een eectieve wijze

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Uitwerkingen Sum of Us

Rekenen en Redeneren met Oneindig

rh265e 0 true. In onze schrijfwijze wordt dat dus: (de bewering) [ P ] is even waar als (de bewering) P = true.

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument

Bijzondere getallen. Oneindig (als getal) TomVerhoeff. Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica

Automaten & Complexiteit (X )

Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter

IN2505 II Berekenbaarheidstheorie Tentamen Maandag 2 juli 2007, uur

Logica als een oefening in Formeel Denken

Wie A zegt moet B zeggen

Honours projecten BSc Informatica: twee voorstellen

ling van die eigenschap binnen het model geldt. In het bijzonder bij het wiskundig modelleren van een programma kan een eigenschap met wiskundige zeke

Waarmaken van Leibniz s droom

Aanvullingen bij Hoofdstuk 8

Formeel Denken 2013 Uitwerkingen Tentamen

1. Vectoren in R n. y-as

Transcriptie:

REDENEREN, REKENEN, EN COMPLEXITEIT 1 Redeneren is rekenen is redeneren In het abstracte perspectief van de logicus zijn gevolgtrekkingen in wezen slechts symbolische configuraties: en wel rijtjes symbolen voor de gegevens en de conclusie. Logische geldigheid is een eigenschap die sommige van die configuraties wel hebben, en andere juist niet. Om geldigheid precies na te gaan voor een gevolgtrekking kan men vaak werken met een soort rekenmethode op de gegeven symbolen. Reeds de beroemde 17de eeuwse wiskundige Leibniz vatte redeneren op als een speciale vorm van rekenen. Hiertoe zocht hij naar een algemene symbolentaal, de 'Characteristica Universalis', waarin beweringen geheel exact kunnen worden geformuleerd, waarna geldigheid van gevolgtrekkingen wordt berekend via een 'Calculus Ratiocinator'. Leibniz is niet geheel toevallig ook de bedenker van het binair rekenen met grondtal 2, hetgeen de basis vormt van symbolische manipulatie door moderne computers. Ook Boole, de ontdekker van de moderne propositielogica zag redeneren als rekenen, gebruik makend van de analogieën tussen Boolese operaties en algebraische functies op de getallen {0, 1}, de moderne 'Boolese Algebra'. Vanaf hier loopt een rechte lijn naar de moderne informatica, met het werk van Turing uit de jaren 1930 als mijlpaal. Voor het eerst werd daar mechanische berekenbaarheid wiskundig gedefinieerd, en op zijn grenzen onderzocht terwijl ook de ontwikkeling van echte rekenmachines een stimulans kreeg. Turing's werk laat tevens zien dat ieder manipuleren van symbolen door geschikte codering in getallen neerkomt op een vorm van rekenen en hetzelfde inzicht staat centraal in Gödel's beroemde werk over de grondslagen van de wiskunde (zie Week 5). Sinds de jaren dertig zijn dit soort inzichten ook praktisch gemeengoed geworden: een computer die taal verwerkt staat in feite te rekenen. Overigens wil dit alles niet zeggen dat elke symbolische activiteit uiteindelijk reduceert tot rekenen. De connectie tussen rekenen en redeneren ligt veeleer symmetrisch. Zo kan men ook rekenprocessen even goed opvatten als bewijsprocessen (in equationele logica, of andere symbolische bewijssystemen), en dat is nu juist weer de praktische kijk op programmeren die u vindt in bekende programmeertalen als PROLOG. In dit college bespreken we een aantal raakpunten tussen logisch redeneren en rekenen, met speciale aandacht voor verschillende niveaus van complexiteit van rekenmethoden, een onderwerp van groot belang in de informatica, dat sinds de jaren 70 een geheel nieuwe wiskundige theorie heeft opgeleverd.

2 Propositielogica als rekenen Geldigheid van een gevolgtrekking kunnen we in de propositielogica berekenen met zogenaamde waarheidstafels. Deze taal beschrijft heel simpele situaties, namelijk hoe het staat met de basisbeweringen. Bekijk bijvoorbeeld weer de geldige stap A B, A B Er zijn 4 relevante situaties, te weten de vier verdelingen van 'waar' en 'onwaar' over de twee basisbeweringen A, B, die we kunnen weergeven als AB, A-B, -AB, -A-B Elk van die situaties leidt ook tot waarheidswaarden voor samengestelde beweringen. Bijv. geldt A B alleen in de eerste drie, en de negatie A alleen in de laatste twee. We denken als volgt over de geldigheid van onze gevolgtrekking. Het begin is een toestand waar we nog niets weten: alle 4 gevallen zijn mogelijk. De eerste premisse vertelt ons dat we zitten in een van de eerste 3 situaties, en de tweede premisse sluit dan de eerste twee uit: we zitten in -AB. En daar is de conclusie B inderdaad waar. Hier is een video-strip van de opeenvolgende 'informatietoestanden' en de 'updates': AB, A-B, A B AB, -AB, A -AB B -AB -AB, -A-B A-B Om hiermee nu te gaan rekenen werken we met waarheidswaarden 1 (waar) en 0 (onwaar). Bijv. de situatie A-B geeft aan A de waarde 1 en aan B de waarde 0. De logische operaties in samengestelde beweringen correponderen dan met eenvoudige rekenvoorschriften. Om te beginnen keert een negatie de waarheidswaarde om: waarde ( A) = 1 waarde(a) Een conjunctie A&B is alleen waar als zowel A als B waar zijn. Dit effect krijgen we precies met vermenigvuldiging van waarheidswaarden: waarde (A&B) = waarde (A) * waarde (B) Een disjunctie A B (gelezen als het inclusieve "en/of") willen we juist waar hebben alleen als minstens een van A en B waar is. Dit wordt bereikt door te stellen: waarde (A B) = het maximum van waarde (A) en waarde (B) Compacter genoteerd staan deze tabellen hieronder: A A A& B 1 0 A B 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 0

Dungedrukte getallen verticaal geven de waarden voor argument A aan, horizontale die voor B. Vet gedrukte getallen geven de waarden van de Boolese operatie voor de 4 mogelijke combinaties voor de argumenten. Tabellen voor de implicatie en equivalentie zijn ook eenvoudig te geven, maar we zullen ze hier niet gebruiken. Geldig gevolg is nu eenvoudig mechanisch uit te rekenen. Hier is een tabel van de 4 situates voor de eerder gevolgtrekking, met de waarheidswaarden van de beweringen: A B A B A B 1 1 1 0 1 1 0 1 0 0 0 1 1 1 1! 0 0 0 1 0 Om te testen of B volgt uit A B, A zoeken we alle lijnen waar alle premissen 1 krijgen (hier alleen de derde lijn), en gaan na of daar ook de conclusie een 1 krijgt. Dat klopt: de gevolgtrekking is geldig. Ter vergelijking is hier een ongeldig geval: A B, A B : A B A B A B 1 1 1 1 0! 1 0 0 1 1 0 1 1 0 0 0 0 1 0 1 De eerste lijn is een tegenvoorbeeld: A B, A gelden daar allebei, maar B niet. Met meer basisbeweringen wordt de tabel groter. Bijvoorbeeld, om na te gaan dat uit A B, A C volgt B C heeft u een tabel nodig met 8 lijnen voor de drie relevante beweringen A, B, C. Het rekenkarakter van geldigheid komt byzonder sprekend tot uiting bij geldige equivalenties: d.w.z. formules van de vorm die op elke lijn de waarde 1 krijgen. Hier zijn een aantal geldige principes van de zogenaamde Boolese Algebra: Dubbele Negatie A A De Morgan wetten (A B) ( A & B) Distributiewetten (A & B) 3 ( A B) (A & (B C)) ((A&B) (A&C)) (A (B&C)) ((A B) & (A C)) We kunnen dit opvatten als algebraische rekenregels voor de logische operaties. Deze zijn zelfs mooier dan die voor gewone getallen. Zo hebben we voor getallen wel de distributiewet m (n + k) = (m n) + (m k), maar niet m + (n k) = (m+n) (m+k). Voor conjunctie en disjunctie mag het echter allebei! Waarheidstafels en Boolese Algebra liggen ten grondslag aan de digitale circuits die al onze computers sturen.

4 Kwantorlogische taken als rekentaken De volle taal van de wiskunde in vorige colleges was veel rijker dan onze voorbeelden tot nu toe, en bevatte naast Boolese operaties ook de kwantoren,. Ook voor deze taal komen echter dezelfde logische taken terug, waarvan we er hier enkele noemen. Het analoog van uitrekenen van een waarheidswaarde heet Modelcontrole Gegeven een structuur M en een formule, bepaal of die formule waar is. Bijv., gegeven kan zijn een graaf M met punten en pijlen, en een formule x y Rxy ('Opvolging'). Model checking van deze formule betekent systematisch nagaan of de relatie in de graaf (zoals gegeven door de pijlen) voldoet aan de eigenschap dat elk punt een uitgaande pijl heeft. Andere kwantorlogische formules drukken weer andere te controleren eigenschappen van grafen uit. het zal duidelijk zijn dat dit soort vragen systematisch zijn na te gaan wanneer we maar punt voor punt de graaf afwerken. Vervolgens is er weer de logische oer-vraag: is een gegeven gevolgtrekking geldig? Heel vaak wordt overigens een verwante vraag gesteld van Consistentie Heeft gegeven formule een model, d.w.z. een structuur M die waar maakt? In dat geval vragen we bijv. niet of C volgt uit P, maar of P & C consistent is. Dit was bijv. de denkwijze van semantische tableaus. Ook deze vraag is systematisch te bestuderen, hoewel niet zo simpel als het eerdere rekenen met waarheidstabellen. Het verschil heeft te maken met oneindigheid, en wel op twee manieren. Om te beginnen beschrijft onze taal veel meer structuren dan de propositielogica. Zelfs als we alleen naar 'kleine' situaties kijken, zoals eindige grafen, dan zijn dat er al oneindig veel. Die kunnen we niet allemaal tabelleren en in een eindig aantal stappen nazoeken. Maar bovendien kunnen wiskundige structuren zelf oneindig zijn, en ook dat is van belang voor testen van consistentie. Zo heeft de conjunctie van de graaf-eigenschappen van Transitiviteit, Ireflexiviteit en Opvolging een oneindig model, te weten de natuurlijke getallen met <, maar er is makkelijk in te zien dat ze geen eindig model heeft. In feite volgt uit Turing's werk en dat van Gödel zelfs een negatieve conclusie: Onbeslisbaarheid van de kwantorlogica Er bestaat geen mechanische methode voor het volledig en correct testen van geldigheid of consistentie in kwantorlogica. Leibniz' droom van de Calculus Ratiocinator is dus onuitvoerbaar. Dat dit toch ruimte laat voor positieve resultaten blijkt uit het feit dat de logica nog niet is opgeheven Overigens suggereert een taal als deze ook nieuwe vragen. Een voorbeeld is

5 Modelvergelijking Gegeven twee eindige structuren (bijv. grafen) M, N, kunnen we ze onderscheiden met een kwantorlogische eigenschap? Positief geformuleerd is dit de vraag wanneer twee eindige structuren dezelfde formules waar maken. Dit laatste is weer equivalent met een structurele taal-vrije bewering, en wel dat er een isomorfisme bestaat tussen M en N. In die vorm staat dit ook bekend als het 'Graph Isomorphism' probleem. In Week 2 hebben we dit soort vragen geanalyzeerd door een spel voor twee spelers G en V tussen de structuren. Nog een andere manier om ons probleem te stellen is dan vragen welke speler in zo'n vergelijkingsspel de winnende strategie heeft. Daarmee komen we op het gebied van de speltheorie (zie Week 7), waar diverse algorithmen bestaan voor dit soort taken. Complexiteit van algoritmen Hoe moeilijk zijn logische taken? Een onbeslisbare vraag als kwantorlogische geldigheid is erg moeilijk te beantwoorden, terwijl uitrekenen van een waarheidswaarde in een tabel erg makkelijk is. Maar hoe maken we deze intuïties precies, en hoe brengen we dit spectrum in kaart? Een antwoord komt uit de informatica, en de complexiteitsanalyse van rekenproblemen en algoritmen. Hier zijn twee kenmerkende voorbeelden. We geven eerst een wijd verbreide en typisch 'doenlijke' rekentaak in de informatica, die zich leent voor snelle algoritmen en programma's: Bereikbaarheid Gegeven een eindige gerichte graaf van punten en pijlen, met twee punten s, t ('begin', 'eind'). Is er een pad van pijlen van s naar t? Dit probleem is typerend voor zoekproblemen, zoals: "Kan ik een reisroute vinden van Bloemendaal naar Singapore?", of "Kan ik een reeks zetten vinden vanuit de begintoestand van een spel komen naar een door mij gewenste eindtoestand?". Met name in de AI zijn zoekproblemen essentieel, maar ook in gebruik van databases e.d. We meten de complexiteit van dit probleem in termen van het aantal tijdstappen, gemeten in de grootte van de invoergraaf, dat een beste algoritme nodig heeft: Bereikbaarheid is oplosbaar met een algoritme met kwadratische tijd. Bewijs Kleur s rood. R wordt de verzameling der 'actieve' rode knopen. Begin: R = {s}. Herhaal: pak een rode knoop weg uit R, en vervang die door al zijn echte opvolgers in de graaf, rood gekleurd. Misschien zijn er niet zulke opvolgers: dan krimpt R juist. Stop zodra R leeg is. Check dan of t rood is. Zo ja, dan is t bereikbaar uit s, zo nee, dan niet.

6 De volgende twee dingen zijn makkelijk na te gaan: (a) dit algoritme is correct: de antwoorden kloppen altijd (b) het eindigt in kwadratische tijd t.o.v. de grootte van G. n Meer in het algemeen liggen problemen van deze soort in de complexiteitsklasse P (voor 'polynomiale tijd') van alle rekenproblemen waarvoor een algoritme bestaat dat het correcte antwoord geeft in een aantal tijdstappen dat naar boven wordt begrensd door een polynoom (lineair, kwadratisch, cubisch, of hoger ) met als variable de invoergrootte. Lineaire tijd is heel snel, kwadratische tijd is ook nog acceptabel (dit vindt men vaak bij zoekproblemen), terwijl bijv. ontledingsalgoritmen voor taal, zoals gebruikt in de 'natural language processing' op computers, vaak cubische rekentijd vergen. De klasse P wordt algemeen beschouwd als bestaande uit 'doenlijke' taken. De groei van rekentijd met de invoergrootte mee is binnen redelijke grenzen. Maar het kan erger! Het volgende welbekende probleem uit de informatica komt eveneens in talloze varianten voor. (Misschien zag u zojuist de Argentijnse film "Historias Minimas".) Een handelsreiziger wil een gegeven netwerk van steden zo doorlopen via een keuze van aanwezige verbindingen dat hij elke stad precies een keer aandoet. Handelsreizigersprobleem Is er een rondreis door een gegeven graaf die alle knopen één keer aandoet? Een methode met grof geweld somt alle verschillende mogelijke routes door de graaf op die geen punten herhaald aandoen, en kijkt of daar een rondreis bij zit. Dit vergt een exponentieel aantal tijdstappen omdat er exponentieel veel van dit soort routes kunnen zijn, gemeten in de grootte van de graaf. Maar we kunnen deze analyse iets verfijnen. Een positief antwoord op de vraag heeft de volgende vorm, die zich in veel informatica- en logica-problemen voordoet: (a) (b) 'geef een certificaat voor het antwoord', d.w.z. een object dat in korte tijd is op te schrijven gegeven de invoergrootte (dat geldt voor elke route op zich) 'test dat het certificaat voldoet' in korte tijd (in ons geval, het feit dat een voorgestelde route elk punt van de graaf inderdaad precies één keer bezoekt) Algoritmen met dit karakter zijn beduidend complexer, en ze liggen in de de complexiteitsklasse NP ('niet-deterministische polynomiale tijd') van alle rekenproblemen waarvoor een JA-antwoord bestaat in het opschrijven van een certifikaat in polynomiale tijd in de invoergrootte, gevolgd door verifikatie van het certifikaat eveneens in polynomiale tijd in de invoer. Het Handelsreizigersprobleem ligt in NP.

7 Het probleem wordt ook wel eens gesteld als het vinden van een kortste rondreis als die er is. Dit is echt complexer, en klimt zelfs omhoog qua rekencomplexiteit. Andere bekende rekentaken zijn het al eerder genoemde oplossen van spelen, d.w.z. het bepalen welke van de spelers een winnende strategie heeft of meer algemeen, het bepalen van strategische evenwichten (zie College 6). Een bekend genre zijn spelen op een gegeven graaf G, startend vanuit een of ander beginpunt. Graafspel De eerste speler I kiest een pijl, en we gaan naar het eindpunt daarvan. Nu moet de tweede speler II vanuit het nieuwe punt een pijl kiezen, enzovoorts, om en om. Als speler II geen pijl kan kiezen vanuit het huidige punt, en het is haar beurt, dan verliest zij. Dit spel kan oneindig doorgaan, maar dan wint speler II volgens de afspraak. Het is een aardige opgave om te zien hoe we kunnen bepalen wie dit spel kan winnen op een gegeven graaf G vanuit punt s. Dit probleem blijkt oplosbaar in polynomiale tijd P. Maar de volgende variatie is echt lastiger. Aardrijkskunde Hetzelfde spel, maar wie terugkeert op een reeds bezocht punt verliest. Dit lijkt op het bekende plaatsnamen spel waar we steden noemen, de volgende stad moet beginnen met de laatste letter van de vorige, en verliezen gebeurt als we geen stadnaam kunnen noemen, of we begaan de eerste herhaling van een eerdere stadnaam. Er valt te bewijzen dat Aardrijkskunde in een echt hogere complexiteitsklasse zit dan P of NP, en wel polynimomiale ruimte: Pspace. Deze moeilijker soort van problemen komt vaak voor met oplossen van spelen, zoals Schaken of GO. Deze complexiteitsklassen meten dus tijd- of ruimtebeslag van een rekenmethode. Daarbij gaat het nooit om absolute getallen, maar om grootteorde van groei met de grootte van de invoer. De resulterende vormen van gedrag zijn wiskundig welbekend. Bijv. binnen P hebben we lineaire tijd met aantal tijdstappen ten hoogste a n + b, met n de lengte der gegeven rij invoer-symbolen, en a, b constanten. Kwadratische tijd wordt afgeschat door een term a n 2 + b, kubische tijd door a n 3 + b. De precieze grootte van die constanten a, b doet er voor het 'groeitempo' niet toe. We kunnen dit vergelijken met de bekende discussies over economische groei van de 'Club van Rome' in de jaren 70. Polynomiale groeitempo's zijn nog te doen: maar exponentiële groei met grootteordes als a 2 x legt het systeem lam. Ook computers kunnen dit niet aan. Overigens vergen sommige logische taken van geldigheid voor moeilijke operatoren zelfs super-exponentieële tijd: 2 2 x, en het kan nog veel hoger!

8 In de limiet krijgen we genres problemen waarvoor helemaal geen algoritme meer valt te geven, zoals het onbeslisbare Stopprobleem voor Turing machines, of Geldigheid voor kwantorlogica. Een uitstekend inleidend overzicht van deze kwesties vindt u in David Harel's boek Algorithmics, the Spirit of Computing, Addison-Wesley, 1992. Complexiteit van logische taken Met deze wiskundige begrippen kunnen we nu de eerder genoemde logische taken langs lopen, en hun complexiteit nader bepalen. Evaluatie van propositielogische formules is in P, en neemt lineaire tijd. Neem bijvoorbeeld een situatie waar A, B waarde 1 krijgen, en C waarde 0. Dan kunnen we voor een complexe formule (( A B) & C) de waarheidswaarde stapsgewijs van binnenuit berekenen, met de constructie van die formule mee: (( A B) & C) 0 ( A B) 1 C 0 A 0 B 1 C 1 A 1 C 0 Voor een willekeurige bewering met lengte kost zo'n proces c stappen, waar c een of andere constante is. De reden: het aantal subformules is gelijk aan de lengte van de formule. Dit is een ruwe berekening, die afhangt van wat we tellen als stappen in het proces. Bijv. als we opschrijven van de waarheidswaarde voor een A zelf zien als proces van opzoeken in de gegeven lijst van waarden voor basisbeweringen, dan kost dat nog een lineaire factor extra in de lengte van. Geheel exact kunnen we dit maken door een Turing machine te programmeren om de taak te doen. Maar onafhankelijk van de precieze implementatie blijken dit soort analyses qua grootteorde stabiel, in elk geval tot op een polynomiale factor, en we blijven daarom op dit niveau van abstractie. Stel dat we nu geldigheid of consistentie willen uitrekenen. Evaluatie der betrokken formules op elke lijn van de waarheidstafel is snel, zoals we zagen. Het probleem is het aantal lijnen. Voor formules met n basisbeweringen moeten we 2 n lijnen opschrijven, en daarmee hebben we exponentiële groei in de lengte der invoerformules. Preciezer nadenkend zien we dat consistentie vraagt om een certifikaat (een valuatie) dat moet worden getest of het de gegeven formule waar maakt, en we concluderen: Consistentie van propositielogische formules is in NP.

9 De kwantorlogica was wezenlijk ingewikkelder dan de propositielogica, en hier vinden we de volgende antwoorden voor de drie genoemde kerntaken. Modelcontrole neemt polynomiale ruimte (Pspace). Consistentie is onbeslisbaar. Modelvergelijking is in NP. Dit laatste feit komt omdat testen voor isomorfisme tussen twee grafen weer het typische NP-karakter heeft van: 'geef certifikaat, voer controle uit'. Complexiteitstheorie De wiskundige complexiteitstheorie bestudeert de fijnstructuur van berekeningen. Een belangrijk hulpmiddel hierbij is de zogenaamde Hiërarchie van Complexiteitsklassen P NP PSPACE EXPTIME... ONBESLISBAAR... Hierbij zijn allerlei inclusies van links naar rechts bewezen, die we hier verder niet bespreken. Iets meer informatie over belangrijke begrippen en resultaten in de complexiteitstheorie is te vinden in de uitgebreide tekst op webpagina van de cursus. Een moeilijk, maar glashelder over complexiteit met een sterke logische inslag is Ch. Papadimitriou, Computational Complexity, Addison-Wesley, 1995. Met name blijkt het mogelijk door vertalingen in logische formules alle centrale rekentaken, zoals Bereikbaarheid, Handelsreiziger, of Speloplossing, te reduceren tot logische taken zoals Evaluatie of Consistentie in propositielogica, of Modelcontrole in kwantorlogica. Dit illustreert weer het nauwe verband tussen redeneren en rekenen. P = NP? Kan propositielogica beslist worden in polynomiale tijd, en dus 'slimmer' dan waarheidstafels of tableaus? Anders gezegd, is de complexiteitshiërarchie 'echt'? Vele jaren zoeken heeft nooit wezenlijk snellere methoden opgeleverd voor Consistentie. Maar anderzijds is ook nog nooit een afdoend bewijs gevonden dat het echt complexer is dan evaluatie van formules. De algemene vraag hierachter is het P = NP probleem Zijn de complexiteitsklassen P en NP verschillend, of gelijk? Dit beroemde probleem werd voor het eerst gesteld rond 1970. Onlangs werd het opgenomen in de lijst van centrale open wiskundige problemen van deze tijd van het Cray Institute.

10 Discussie Redeneren en rekenen zijn nauw verbonden. De hier geschetste verbanden geven daarvan een eerste indruk, maar er zijn vele verdere raakvlakken. Men ziet deze interactie bijvoorbeeld ook in de geschiedenis van de wiskunde. Reeds Euclides "Elementen" had een nauwe samenhang tussen bewijzen van meetkundige stellingen, en constructies: procedures om meetkundige objecten te vinden. Op dezelfde manier is een er verband tussen computationeel-logische systemen en het opkomende gebruik van computer-bewijzen dan wel computer-hulpmiddelen in de wiskunde.