Hva er en Turing-maskin?
En Turing-maskin er en filosofisk konstruksjon for hvordan en datamaskin kan fungere, oppfunnet i 1936 av Alan Turing, en berømt engelsk matematiker og logiker på 1900-tallet. Ideene bak Turing-maskinen er grunnlaget for all moderne dataprogramvare og maskinvaresystemer som eksisterer fra 2011, selv om de faktiske konseptene Turing opprettet aldri ble brukt til å bygge en faktisk enhet på den tiden, og ble oppfunnet før digitale datamaskiner eksisterte i noen ekte form. Prinsippene som en Turing-maskin fungerer på inkluderer et sett med kontroller for inn- og utdata, maskinen for å behandle dataene i en eller annen form, og et sett med etablerte regler for hvordan disse dataene blir behandlet av maskinen.
Geniet bak Alan Turing oppdagelse var at enhver konsistent gruppe av symboler som representerer meningsfull informasjon, for eksempel matematiske symboler eller bokstaver som inneholder et språk, kunne behandles mekanisk av en maskin hvis de fikk et ordentlig sett med regler for behandlingen. Dette vil resultere i at det opprettes mekaniske enheter som kan stilles logiske spørsmål for komplekse problemer og raskt komme med habil svar. Turing-maskinen var en forløper i denne forbindelse til en datamaskinalgoritme, som er en samlet liste over datamaskininstruksjoner som sentrale prosesseringsenheter (CPUer) i datamaskiner er avhengige av for å fungere fra 2011.
Designet for Turing-maskinen var forenklet med dagens databehandlingsstandarder fra det 21. århundre, og dens fysiske funksjon hadde upraktiske egenskaper når det gjaldt implementering, men ideene den bygde på hadde et solid fundament. Maskinen besto av et bånd eller et bånd med påtrykte symboler på, som kunne leses av et hode når båndet ble ført over det. Når symbolene ble lest, ville de påkalle visse tilstander i maskinen, noe som ville rette båndets bevegelse og påvirke utgangsverdiene produsert av maskinen. Den analoge til moderne datasystemer fra 2011 ville være at båndet representerer dataprogramvarekode eller algoritmer, leseren er CPU, og utdataene vil være skjerm- og overføringssystemer som skjermer, høyttalere og skrivere, nettverkstrafikk og mer.
Ideene bak Turing-maskinen ble sett på som en grunnleggende funksjon for å utføre en hvilken som helst serie med beregninger, og kan også sammenlignes med hvordan den menneskelige hjernen fungerer. Turing selv og andre på hans tid trodde at Turing-maskinen kunne tilpasses til å utføre praktisk talt alle typer tenkelige beregninger og fungere som en universell maskin for å løse alle menneskelige problemer. Problemet som snart oppstod med konseptet, er imidlertid kjent som en Turing-tarpit, og viser til det faktum at selv om ethvert selvkonsequent sett med symboler kan behandles av en Turing-maskin, får en slik maskin til å gi meningsfulle svar på spørsmål stoler helt på stadig mer komplekse og flerlags sett med behandlingsregler.
Datavitenskapen opplevde snart problemer med hvordan programvare og maskinvaresystemer basert på Turing-maskinprinsipper kunne feste seg fast i meningsløse beregninger kjent som programløkker. Logiske begrensninger førte til tilpasninger av Turing-maskinens prinsipper, for eksempel de kvante og sannsynlige Turing-maskinene. En sannsynlig Turing-maskin benytter ideen om at flere bånd kjøres i maskinen samtidig for å produsere forskjellige resultater parallelt, som deretter blir vektet mot hverandre basert på sannsynligheten for hvilket resultat som mest sannsynlig er nøyaktig. Slike maskiner vil komme til konklusjoner på en måte som ligner på hvordan uklar logikkprogramvare fungerer i avanserte kontrollsystemer fra og med 2011.
En kvantecomputer basert på Turing-maskinprinsippet ville ha et bånd av uendelig lengde med celler med symboler i en evigvarende, ubestemt tilstand inntil de blir lest. Dette ville gi en form for parallellbehandling som ville være overlegen i forhold til databehandlingsprosedyrer som ble brukt på datamaskiner fra og med 2011. Quantum Turing-maskiner tilbyr muligheten til å lagre flere verdier i individuelle hukommelsesceller inntil de får tilgang, hvilket standard logikkbaserte datamaskiner ikke kan gjøre.