211service.com
Het blijvende belang van Turing
Toen Alan Turing 100 jaar geleden werd geboren, op 23 juni 1912, was een computer geen ding - het was een persoon. Computers, waarvan de meeste vrouwen waren, werden ingehuurd om urenlang repetitieve berekeningen uit te voeren. De praktijk dateert uit de jaren 1750, toen Alexis-Claude Clairaut twee collega-astronomen rekruteerde om hem te helpen bij het uitzetten van de baan van de komeet van Halley. Clairauts benadering was om de tijd in segmenten te verdelen en, met behulp van de wetten van Newton, de veranderingen in de positie van de komeet te berekenen toen deze Jupiter en Saturnus passeerde. Het team werkte vijf maanden en herhaalde het proces keer op keer terwijl ze langzaam de koers van de hemellichamen uitstippelden.
Tegenwoordig noemen we dit proces dynamische simulatie; Tijdgenoten van Clairaut noemden het een gruwel. Ze wilden een wetenschap van fundamentele wetten en mooie vergelijkingen, geen tabellen en tabellen met getallen. Toch maakte zijn team een nauwkeurige voorspelling van het perihelium van de komeet van Halley. In de daaropvolgende anderhalve eeuw domineerden computationele methoden de astronomie en techniek.
Dit verhaal maakte deel uit van ons nummer van maart 2012
- Zie de rest van het nummer
- Abonneren
Tegen de tijd dat Turing in 1931 naar King's College ging, werden menselijke computers voor een groot aantal verschillende doeleinden gebruikt - en vaak werden ze bijgestaan door rekenmachines. Ponskaarten werden gebruikt om weefgetouwen te controleren en de resultaten van de Amerikaanse volkstelling in tabelvorm te brengen. Telefoongesprekken werden omgeschakeld met behulp van nummers die op een ring werden gekozen en geïnterpreteerd door reeksen van 10-staps relais. Kassa's waren alomtegenwoordig. Een miljonair was niet alleen een zeer rijk persoon, het was ook een mechanische rekenmachine die zich met verbazingwekkende snelheid kon vermenigvuldigen en delen.
Al deze machines waren fundamenteel beperkt. Ze waren niet alleen langzamer, minder betrouwbaar en veel minder geheugen dan de huidige computers. Cruciaal was dat de reken- en schakelmachines van de jaren dertig - en de machines die nog vele jaren zouden worden geïntroduceerd - elk voor een specifiek doel werden gebouwd. Sommige machines konden manipulaties met wiskunde uitvoeren, sommige konden zelfs een veranderlijke volgorde van instructies volgen, maar elke machine had een eindig repertoire aan nuttige bewerkingen. De machines waren niet voor algemeen gebruik. Ze waren niet programmeerbaar.
Dingen beoordeeld
Turing's Cathedral: de oorsprong van het digitale universum
George Dyson
Pantheon-boeken, 2012Toen computers nog menselijk waren
David Alan Grier
Princeton University Press, 2005
Alan Turing: The Enigma
Andrew Hodges
Simon & Schuster, 1983
Ondertussen zat de wiskunde in de problemen.
In het begin van de jaren twintig had de grote Duitse wiskundige David Hilbert voorgesteld om alle wiskunde te formaliseren in termen van een klein aantal axioma's en een reeks consistente bewijzen. Hilbert had een techniek voor ogen die zou kunnen worden gebruikt om willekeurige wiskundige uitspraken te valideren - om een uitspraak zoals x + y = 3 en x - y = 3 te nemen en te bepalen of deze waar of onwaar was. Deze techniek zou niet afhankelijk zijn van inzicht of inspiratie van de kant van de wiskundige; het moest herhaalbaar, leerbaar en rechttoe rechtaan genoeg zijn om door een computer te worden gevolgd (in Hilberts zin van het woord). Zo'n systeem om uitspraken te bewijzen zou inderdaad krachtig spul zijn, want veel aspecten van de fysieke wereld kunnen gemakkelijk worden beschreven als een reeks vergelijkingen. Als men een herhaalbare procedure zou kunnen toepassen om erachter te komen of een wiskundige uitspraak waar of onwaar was, dan zouden fundamentele waarheden over natuurkunde, scheikunde, biologie – zelfs de menselijke samenleving – niet ontdekt kunnen worden door experimenten in het laboratorium, maar door wiskundigen op een schoolbord .
Maar in 1931 presenteerde Kurt Gödel, een Oostenrijkse logicus, zijn verwoestende onvolledigheidsstelling. Het toonde aan dat het voor elk bruikbaar wiskundesysteem mogelijk is om uitspraken te doen die waar zijn maar niet kunnen worden bewezen. Toen kwam Turing, die de laatste staak door het project van Hilbert dreef - en daarmee het pad uitstippelde voor de toekomst van computergebruik.
Zoals Turing aantoonde, is het probleem niet alleen dat sommige wiskundige uitspraken niet te bewijzen zijn; in feite is er geen methode te bedenken die in alle gevallen kan bepalen of een gegeven bewering al dan niet bewijsbaar is. Dat wil zeggen, elke bewering op het bord kan waar zijn, misschien niet waar, misschien niet te bewijzen... en het is vaak onmogelijk om te bepalen welke. Wiskunde was fundamenteel beperkt - niet door de menselijke geest, maar door de aard van wiskunde zelf.
Het briljante, verbazingwekkende was de manier waarop Turing zijn bewijs deed. Hij vond een logisch formalisme uit dat beschreef hoe een menselijke computer, die een complexe reeks wiskundige bewerkingen leerde volgen, deze daadwerkelijk zou uitvoeren. Turing begreep niet hoe het menselijk geheugen werkte, dus modelleerde hij het als een lange band die heen en weer kon bewegen en waarop symbolen konden worden geschreven, gewist en gelezen. Hij wist niet hoe menselijk leren werkte, dus modelleerde hij het als een reeks regels die de mens zou volgen, afhankelijk van het symbool dat op dat moment voor haar was en een soort interne gemoedstoestand. Turing beschreef het proces zo gedetailleerd dat er uiteindelijk niet eens een menselijke computer nodig was om het uit te voeren - een machine kon het in plaats daarvan doen. Turing noemde deze theoretische entiteit de automatische machine of een machine; tegenwoordig noemen we het een Turingmachine.
In een paper uit 1936 bewees Turing dat de a-machine elk computerprobleem kan oplossen dat kan worden beschreven als een opeenvolging van wiskundige stappen. Bovendien toonde hij aan dat de ene a-machine een andere a-machine kan simuleren. Wat de a-machine deze kracht gaf, was dat de band zowel gegevens als instructies kon opslaan. In de woorden van wetenschapshistoricus George Dyson, bevatte de band beide nummers die: gemeen dingen en getallen die doen dingen.
Het werk van Turing was transformatief. Het maakte de ontwerpers van vroege elektronische computers duidelijk dat rekenmachines geen enorme inventaris van dure instructies of bewerkingen nodig hadden - ze hadden alleen een paar registers nodig die altijd beschikbaar waren (de gemoedstoestand) en een geheugenopslag die zowel gegevens als code. De ontwerpers konden doorgaan met de wiskundige zekerheid dat de machines die ze aan het bouwen waren in staat zouden zijn om elk probleem op te lossen dat de mens zou kunnen programmeren.
Deze inzichten vormden de wiskundige formulering voor de digitale computers van vandaag, hoewel het John von Neumann was die de ideeën van Turing overnam en het ontwerp van de machines wordt toegeschreven. Het ontwerp van Von Neumann had een centrale kern die zowel instructies als gegevens uit het geheugen ophaalde, wiskundige bewerkingen uitvoerde, de resultaten opsloeg en vervolgens herhaalde. De machine kan indien nodig ook de inhoud van meerdere locaties in het geheugen opvragen. Wat we nu de von Neumann-architectuur noemen, vormt het hart van elke microprocessor en mainframe op de planeet. Het is dramatisch efficiënter dan de a-machine, maar wiskundig gezien is het hetzelfde.
Overigens verklaart deze essentiële eigenschap van computers waarom cyberbeveiliging een van de meest verontrustende problemen van de moderne tijd is. Om te beginnen toonde Turing aan dat alle a-machines gelijkwaardig zijn aan elkaar, wat het voor een aanvaller mogelijk maakt om een doelcomputer over te nemen en er een programma naar keuze van de aanvaller op te laten draaien. Omdat het niet altijd mogelijk is om te onderscheiden wat kan worden bewezen, kan een Turing-machine - ongeacht hoeveel geheugen, snelheid of tijd hij heeft - het ontwerp van een andere Turing-machine niet evalueren en op betrouwbare wijze bepalen of de tweede machine al dan niet enige input, zal ooit zijn berekeningen afmaken. Dit maakt perfecte virusdetectie onmogelijk. Het is onmogelijk voor een programma om een voorheen onzichtbaar stuk software te evalueren en te bepalen of het kwaadaardig is zonder het daadwerkelijk uit te voeren. Het programma kan goedaardig zijn. Of het kan jaren duren voordat het de bestanden van de gebruiker wist. Er is geen manier om het zeker te weten zonder het programma uit te voeren.
In 1938 begon Turing samen te werken met de Britse regering en hielp uiteindelijk bij het ontwerpen van een reeks machines om de codes te kraken die de Duitsers in de Tweede Wereldoorlog gebruikten. De beste bron voor dat verhaal is de biografie van Andrew Hodges Alan Turing: Het raadsel. Helaas werden sommige details over Turing's oorlogswerk pas in 2000 vrijgegeven, 17 jaar na Hodges' boek (en bijna 50 jaar nadat Turing zelfmoord pleegde). Als gevolg hiervan zijn zijn volledige bijdragen niet goed verteld.
Veel computergeschiedenissen wekken de indruk dat het een eenvoudige reeks technische beslissingen was om ponskaarten, vervolgens relais, vervolgens buizen en ten slotte transistors te gebruiken om computermachines te bouwen. Maar dat was het niet. Machines voor algemeen gebruik vereisten het fundamentele inzicht van Turing dat gegevens en code op dezelfde manier kunnen worden weergegeven. En onthoud dat alle hedendaagse computers zijn ontwikkeld met behulp van langzamere computers, die op hun beurt zijn ontworpen met nog steeds langzamere computers. Als Turing zijn ontdekking toen niet had gedaan, had de computerrevolutie misschien tientallen jaren vertraging opgelopen.
KINDEREN bijdragende redacteur Simson L. Garfinkel is universitair hoofddocent Computerwetenschappen aan de Naval Postgraduate School. Zijn standpunten vertegenwoordigen niet het officiële beleid van de regering van de Verenigde Staten of het ministerie van Defensie.
