Computergeschiedenis

Turing Machines en berekenbaarheidstheorie

Turing Machines en berekenbaarheidstheorie

De Turingmachine is de centrale theoretische constructie in de informatica. De Turing-machine is een abstract wiskundig rekenmodel. Het gebruik van Turing-machines helpt om uit te leggen wat berekening is door de zogenaamde "berekenbare functies" af te bakenen.”

Het vroege onderzoek van Alan Turing naar logica was gericht op een beroemd onopgelost probleem dat bekend staat als het Entscheidungsproblem. Het Entscheidungsproblem (ruwweg vertaald uit het Duits als het beslissingsprobleem) werd in 1928 voorgesteld door filosoof en wiskundige David Hilbert. Het probleem vroeg of er een algoritme was dat elke uitspraak in een formele taal zou beslissen.

Een formele taal is een systeem van axioma's en gevolgtrekkingsregels zoals die in rekenkunde of eerste-orde logica. De axioma's kunnen elk willekeurig symbool zijn, en de afleidingsregels kunnen elke lijst met regels zijn om die symbolen te manipuleren.  "Elke verklaring beslissen" betekende ofwel uitvoeren of de verklaring waar/onwaar was of uitvoeren of de verklaring afleidbaar/niet te achterhalen was. De volledigheidsstelling van Kurt Godel bewees dat een algoritme dat beslist over validiteit gelijkwaardig is aan een effectieve procedure die beslist over afleidbaarheid. Alan Turing's document uit 1936 "On Computable Numbers, with an Application to the Entscheidungsproblem", bewees een negatief resultaat, dat het onmogelijk was om algoritmisch elke uitspraak in een formeel systeem te beslissen.

Alan Turing

Om een ​​negatief resultaat voor het Entscheidungsprobleem te bewijzen, moest Turing het begrip van een algoritme formaliseren. Turing's formalisering van een algoritme was een wiskundig computermodel dat later bekend werd als de Turing-machine. Een Turingmachine heeft een eindige reeks toestanden waarin de machine zich kan bevinden. De Turingmachine heeft een oneindig lange tape die in vierkanten is verdeeld square. Op elk vierkant in de band staat een symbool dat is getrokken uit een eindige reeks symbolen. Op elk moment in de berekening leest de Turingmachine het symbool op een vierkant van de band. De Turingmachine kan dat symbool vervangen door een ander symbool en naar het vierkant naar rechts of naar het vierkant naar links gaan. De actie die de Turing-machine onderneemt, wordt automatisch bepaald door de staat waarin de machine zich bevindt. Nadat het vervangingssymbool en de verplaatsing naar een ander vierkant heeft plaatsgevonden, kan de Turingmachine overgaan naar een andere staat. Elke verschillende staat heeft een andere set regels over hoe symbolen te vervangen en in welke richting te bewegen.

Een zeldzame fysieke implementatie van het Turing Machine-ontwerp (zonder een oneindige tape)

De canonieke formulering van de Turing-machine bestaat meestal uit een binair alfabet van uitsluitend nullen en 1s. Deze formulering komt overeen met de intuïtie van moderne computerprogrammeurs, aangezien alle moderne computers binaire . gebruiken. In feite zijn Turing-machines neutraal met betrekking tot de grootte van het alfabet van symbolen. Een Turing-machine kan ook elk symbool gebruiken, of het nu een cijfer is of een ander type alfabet, zoals picturale symbolen of het Latijnse alfabet. Elke formulering van elk mogelijk eindig alfabet is aantoonbaar te herleiden tot een binaire Turing-machine.

Turingmachines gaan ervan uit dat er een oneindige hoeveelheid geheugen beschikbaar is. Geen enkele echte fysiek geïnstantieerde machine kan voldoen aan deze eis om een ​​Turing-machine te zijn. Een Turingmachine gaat er ook van uit dat een potentieel oneindige hoeveelheid tijd kan worden besteed aan het berekenen van de functie. Deze aannames zijn gedaan om de meest uitgebreide klasse van mogelijke functies te genereren voor Turing's definitie van berekenbare functies. De berekenbare functies van Turing zijn alle functies die door een Turing-machine kunnen worden berekend. Veel van deze berekenbare functies zijn mogelijk nooit berekenbaar door een fysiek geïnstantieerde machine omdat ze te veel tijd of geheugen vergen.

De Church-Turing Thesis beweert de gelijkwaardigheid van berekenbare functies en functies die kunnen worden berekend door een Turing-machine. Dit houdt in dat alle functies die niet door Turingmachines kunnen worden berekend, niet op een andere manier kunnen worden berekend. David Hilbert had een positief antwoord verwacht op het Entscheidungsprobleem, wat zou betekenen dat alle problemen berekenbaar zijn. Turing's resultaat heeft geleid tot de ontdekking van veel onberekenbare problemen.

Het bekendste onberekenbare probleem is het stopprobleem. Het haltingprobleem is het probleem van het creëren van een algoritme dat in het algemeen kan beslissen of een computerprogramma met zijn invoer zal stoppen of voor altijd zal doorgaan. Hoewel er specifieke gevallen zijn waarin het Halting-probleem kan worden opgelost, kan het niet voor elk computerprogramma met enige invoer worden opgelost. Dit resultaat heeft belangrijke gevolgen gehad voor computerprogrammering, aangezien computerprogrammeurs zich bewust moeten zijn van de mogelijkheid van oneindige lussen en de onmogelijkheid om alle oneindige lussen te detecteren voordat hun programma's worden uitgevoerd.

Een andere implicatie van de Turing-machine is de mogelijkheid van universele Turing-machines. Impliciet in het ontwerp van Turing is het concept van het opslaan van het programma dat de gegevens wijzigt naast de gegevens die het wijzigt. Dit suggereerde de mogelijkheid van computers voor algemeen gebruik en herprogrammeerbare. Moderne computers zijn typisch universele Turing-machines in die zin dat ze kunnen worden geprogrammeerd om elk algoritme uit te voeren. Dit elimineerde de noodzaak voor verschillende hardware voor elk potentieel computerprogramma en introduceerde het onderscheid tussen hardware en software.

Het Turing-machinemodel leidde rechtstreeks tot de uitvinding van computers, maar het is niet dezelfde blauwdruk die wordt gebruikt om moderne computers te ontwikkelen. De von Neumann-architectuur die als blauwdruk voor moderne computers wordt gebruikt, maakt gebruik van het concept van opgeslagen programma's dat impliciet in het Turing-machinemodel zit, maar verschilt op verschillende belangrijke manieren van de rest van het Turing-machinemodel. De grootste verschillen zijn dat de von Neumann-architectuur geen lees-schrijfkop gebruikt en in plaats daarvan meerdere registers, willekeurig toegankelijk geheugen, databussen, een kleine set basismachine-instructies en verwerkingsmogelijkheden voor meerdere bits bevat. De von Neumann-architectuur maakt ook expliciet gebruik van gespecialiseerde invoer- en uitvoerapparaten zoals toetsenborden en monitoren.

Het Turing-machinemodel was het eerste wiskundige rekenmodel. Het leidde rechtstreeks tot de uitvinding van fysieke computers. Fysieke computers hebben allemaal dezelfde mogelijkheden als Turing-machines, uitgaande van een beperkt geheugen en tijdsbeperkingen voor de daadwerkelijke berekening. De Turing-formulering speelt nog steeds een centrale rol in de studie van berekeningen. Computerwetenschappers zijn nog steeds actief betrokken bij het onderzoeken of bepaalde functies berekenbaar zijn door Turingmachines.

Hoe League Of Legends op Ubuntu 14 te installeren.04
Als je fan bent van League of Legends, dan is dit een kans voor jou om League of Legends te testen. Merk op dat LOL wordt ondersteund op PlayOnLinux a...
Installeer de nieuwste OpenRA Strategy Game op Ubuntu Linux
OpenRA is een Libre/Free Real Time Strategy-game-engine die de vroege Westwood-games nabootst, zoals de klassieke Command & Conquer: Red Alert. Gedist...
Installeer de nieuwste Dolphin Emulator voor Gamecube & Wii op Linux
Met de Dolphin Emulator kun je de door jou gekozen Gamecube- en Wii-spellen spelen op Linux Personal Computers (pc). Omdat het een vrij beschikbare e...