Computerhistorie

Turing-maskiner og beregnelighedsteori

Turing-maskiner og beregnelighedsteori

Turing-maskinen er den centrale teoretiske konstruktion inden for datalogi. Turing-maskinen er en abstrakt matematisk beregningsmodel. Brug af Turing-maskiner hjælper med at forklare, hvad beregning er ved at afgrænse de såkaldte ”beregningsfunktioner.”

Alan Turings tidlige forskning i logik fokuserede på et berømt uløst problem kendt som Entscheidungsproblem. Entscheidungsproblemet (groft oversat fra tysk som beslutningsproblemet) blev foreslået af filosofen og matematikeren David Hilbert i 1928. Problemet blev spurgt, om der var en algoritme, der ville afgøre alle udsagn på et formelt sprog.

Et formelt sprog er et system af aksiomer og slutningsregler som dem i aritmetisk eller førsteordens logik. Axiomerne kan være hvilke som helst symboler, og slutningsreglerne kan være en hvilken som helst liste over regler til manipulation af disse symboler.  "At beslutte hver sætning" betød enten at udsende, om udsagnet var sandt / falsk, eller at afgive, om udsagnet var afledt / underligt. Kurt Godels fuldstændighedssætning beviste, at en algoritme, der beslutter for gyldighed, svarer til en effektiv procedure, der beslutter for afledelighed. Alan Turings papir fra 1936 “Om beregningsværdige numre med en ansøgning til Entscheidungsproblemet” viste sig at være et negativt resultat, at det var umuligt at afgøre algoritmisk alle udsagn i et formelt system.

Alan Turing

For at bevise et negativt resultat for Entscheidungsproblemet havde Turing behov for at formalisere forestillingen om en algoritme. Turing's formalisering af en algoritme var en matematisk computermodel, der senere blev kendt som Turing-maskinen. En Turing-maskine har et endeligt sæt stater, som maskinen kan være i. Turing-maskinen har et uendeligt langt bånd, der er opdelt i firkanter. På hver firkant i båndet er der et symbol trukket fra et endeligt sæt symboler. På ethvert tidspunkt i beregningen læser Turing-maskinen symbolet på en bånds firkant. Turing-maskinen kan erstatte dette symbol med et andet symbol og flytte til enten firkanten til højre eller firkanten til venstre. Handlingen, som Turing-maskinen foretager, bestemmes automatisk af den tilstand, maskinen er i. Efter udskiftningssymbolet og flytning til en anden firkantet handling har fundet sted, kan Turing-maskinen skifte til en anden tilstand. Hver anden stat har forskellige regler om, hvordan symboler skal udskiftes, og hvilken retning de skal bevæge sig.

En sjælden fysisk implementering af Turing-maskindesignet (uden et uendeligt bånd)

Den kanoniske formulering af Turing-maskinen består normalt af et binært alfabet på udelukkende 0s og 1s. Denne formulering matcher intuitionen fra moderne computerprogrammerere, da alle moderne computere bruger binær. Faktisk er Turing-maskiner neutrale med hensyn til størrelsen på symbolets alfabet. En Turing-maskine kan også bruge ethvert symbol, hvad enten det er tal eller trukket fra enhver anden type alfabeter, såsom billedsymboler eller det latinske alfabet. Enhver formulering af ethvert muligt endeligt alfabet kan beviseligt reduceres til en binær Turing-maskine.

Turing-maskiner antager, at der findes en uendelig mængde hukommelse. Ingen ægte fysisk instanserede maskiner kan opfylde dette krav om at være en Turing-maskine. En Turing-maskine antager også, at der muligvis kan bruges uendelig lang tid på at beregne funktionen. Disse antagelser blev foretaget for at generere den mest ekspansive klasse af mulige funktioner til Turings definition af beregningsfunktioner. Turings beregningsfunktioner er alle funktioner, der kan beregnes af en Turing-maskine. Mange af disse beregningsfunktioner kan aldrig beregnes af nogen fysisk instantieret maskine, fordi de kræver for meget tid eller hukommelse.

Church-Turing-afhandlingen hævder ækvivalensen af ​​beregningsfunktioner og funktioner, der kan beregnes af en Turing-maskine. Dette indebærer, at alle funktioner, der ikke kan beregnes af Turing-maskiner, ikke kan beregnes efter nogen anden metode. David Hilbert havde forventet et positivt svar på Entscheidungsproblemet, hvilket ville betyde, at alle problemer kan beregnes. Turing's resultat har ført til opdagelsen af ​​mange uberegnelige problemer.

Det mest berømte uberegnelige problem er Halting Problem. Halting Problemet er problemet med at oprette en algoritme, der i almindelighed kan afgøre, om et computerprogram med dets input skal stoppe eller fortsætte for evigt. Mens der er specifikke tilfælde, hvor Halting-problemet kan løses, kan det ikke løses for alle computerprogrammer med nogen input. Dette resultat har haft vigtige konsekvenser for computerprogrammering, da computerprogrammerere skal være opmærksomme på muligheden for uendelige sløjfer og umuligheden af ​​at opdage alle uendelige sløjfer inden deres programmer køres.

En anden implikation af Turing-maskinen er muligheden for universelle Turing-maskiner. Implicit i Turings design er begrebet lagring af programmet, der ændrer dataene sammen med de data, det ændrer. Dette foreslog muligheden for almindelige og omprogrammerbare computere. Moderne computere er typisk universelle Turing-maskiner i den forstand, at de kan programmeres til at køre en hvilken som helst algoritme. Dette eliminerede behovet for forskellig hardware til hvert potentielt computerprogram og introducerede sondringen mellem hardware og software.

Turing-maskinmodellen førte direkte til opfindelsen af ​​computere, men det er ikke den samme tegning, der bruges til at konstruere moderne computere. Von Neumann-arkitekturen brugt som plan for moderne computere bruger det lagrede programkoncept implicit i Turing-maskinemodellen, men adskiller sig fra resten af ​​Turing-maskinemodellen på flere vigtige måder. De største forskelle er, at von Neumann-arkitekturen ikke bruger et læse-skrivehoved og i stedet inkluderer flere registre, tilfældig adgangshukommelse, databusser, et lille sæt grundlæggende maskininstruktioner og flere bitbehandlingsfunktioner. Von Neumann-arkitekturen tillader også eksplicit specialiserede input- og output-enheder såsom tastaturer og skærme.

Turing-maskinmodellen var den første matematiske model for beregning. Det førte direkte til opfindelsen af ​​fysiske computere. Fysiske computere har alle de samme muligheder, som Turing-maskiner har, forudsat at der er begrænset hukommelse og tidsbegrænsninger på faktisk beregning. Turing-formuleringen spiller stadig en central rolle i studiet af beregning. Computerforskere er stadig aktivt involveret i at undersøge, om specifikke funktioner kan beregnes af Turing-maskiner.

HD Remastered-spil til Linux, der aldrig tidligere havde haft en Linux-udgivelse
Mange spiludviklere og udgivere kommer med HD-remaster af gamle spil for at forlænge franchisens levetid. Venligst fans, der anmoder om kompatibilitet...
Sådan bruges AutoKey til at automatisere Linux-spil
AutoKey er et desktopautomatiseringsværktøj til Linux og X11, programmeret i Python 3, GTK og Qt. Ved hjælp af dets scripting og MACRO-funktionalitet ...
Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...