Hvad er en Turing-maskine?
En Turing-maskine er en filosofisk konstruktion til, hvordan en computer kan fungere, opfundet i 1936 af Alan Turing, en berømt engelsk matematiker og logiker i det 20. århundrede. Ideerne bag Turing-maskinen er grundlaget for al moderne computersoftware og hardwaresystemer, der findes fra 2011, skønt de faktiske koncepter, Turing oprettet, aldrig blev brugt til at opbygge en faktisk enhed på det tidspunkt, og blev opfundet, før digitale computere eksisterede i nogen ægte form. De principper, hvorpå en Turing-maskine fungerer, inkluderer et sæt kontroller til input- og outputdata, maskinen til behandling af dataene i en eller anden form og et sæt af etablerede regler for, hvordan disse data behandles af maskinen.
Det geni bag Alan Turing's opdagelse var, at enhver konsistent gruppe af symboler, der repræsenterer meningsfuld information, såsom matematiske symboler eller bogstaver, der indeholder et sprog, kunne behandles mekanisk af en maskine, hvis de fik et ordentligt sæt regler for deres behandling. Dette ville resultere i oprettelse af mekaniske enheder, der kunne stilles logiske spørgsmål til komplekse problemer og hurtigt komme med uvante svar. Turing-maskinen var en forløber i denne henseende til en computeralgoritme, som er en samlet liste over computerinstruktioner, som centrale behandlingsenheder (CPU'er) i computere er afhængige af for at fungere fra 2011.
Designet til Turing-maskinen var forenklet efter nutidens computerstandarder i det 21. århundrede, og dens fysiske funktion havde upraktiske forhold med hensyn til dens implementering, men ideerne, hvorpå den blev bygget, havde et solidt fundament. Maskinen bestod af et bånd eller et bånd med påtrykte symboler på det, som kunne læses af et hoved, når båndet blev ført over det. Når symbolerne blev læst, ville de påkalde bestemte tilstande i maskinen, hvilket ville dirigere båndets bevægelse og påvirke outputværdierne produceret af maskinen. Den analoge til moderne computersystemer fra 2011 ville være, at båndet repræsenterer computersoftwarekode eller -algoritmer, læseren er CPU'en, og output er display- og transmissionssystemer som skærme, højttalere og printere, netværkstrafik og mere.
Ideerne bag Turing-maskinen blev set som en grundlæggende funktion ved at udføre enhver række beregninger og kunne også sammenlignes med, hvordan den menneskelige hjerne fungerer. Turing selv og andre på hans tid troede, at Turing-maskinen kunne tilpasses til at udføre praktisk talt enhver form for tænkelige beregninger og fungere som en universel maskine til at løse alle menneskelige problemer. Det spørgsmål, der snart opstod med konceptet, er imidlertid kendt som en Turing-tarpit, og henviser til det faktum, at selvom ethvert selvkonsequent sæt symboler kan behandles af en Turing-maskine, får en sådan maskine til at give meningsfulde svar på spørgsmål er helt afhængige af stadig mere komplekse og flerlags sæt behandlingsregler.
Computervidenskab mødte snart problemer med, hvordan software og hardwaresystemer baseret på Turing-maskins principper kunne klæbes sammen i meningsløse beregninger, der kaldes programsløjfer. Logiske begrænsninger førte til tilpasninger af Turing-maskins principper, såsom kvantitets- og sandsynligheds-Turing-maskiner. En sandsynlig Turing-maskine anvender ideen om, at der køres flere bånd i maskinen samtidig til at producere forskellige resultater parallelt, som derefter vægtes mod hinanden baseret på sandsynligheden for, hvilket resultat sandsynligvis er nøjagtigt. Sådanne maskiner vil nå frem til konklusioner på en måde, der ligner, hvordan fuzzy logic-software fungerer i avancerede kontrolsystemer fra 2011.
En kvantecomputer baseret på Turing-maskinprincippet ville have et bånd i uendelig længde med celler af symboler i en evig, ubestemt tilstand, indtil de læses. Dette ville give mulighed for en form for parallelbehandling, som ville være langt bedre end databehandlingsprocedurer, der blev brugt i computere fra og med 2011. Quantum Turing-maskiner tilbyder muligheden for at gemme flere værdier i individuelle hukommelsesceller, indtil de er tilgængelige, hvilket standardlogikbaserede computere ikke kan gøre.