En Turing-maskine er en teoretisk beregningsmodel, der blev introduceret af Alan Turing i 1936. Den består af et uendeligt langt bånd opdelt i celler, et læse/skrivehoved, der kan bevæge sig langs båndet, og en kontrolenhed, der bestemmer maskinens adfærd . Båndet er til at begynde med blankt, og input til maskinen leveres på et separat inputbånd. Outputtet af beregningen skrives på et outputbånd.
For at beregne en funktion følger en Turing-maskine et sæt instruktioner kaldet et program. Programmet specificerer, hvordan maskinen skal opføre sig baseret på dens aktuelle tilstand og det symbol, den læser fra båndet. Maskinen starter i en starttilstand, og den udfører gentagne gange følgende trin:
1. Læs: Maskinen læser symbolet under læse-/skrivehovedet.
2. Proces: Baseret på den aktuelle tilstand og det læste symbol, bestemmer maskinen den næste tilstand og det symbol, der skal skrives på båndet.
3. Flyt: Maskinen flytter læse/skrivehovedet en celle til venstre eller højre.
4. Gentag: Maskinen går tilbage til trin 1 og fortsætter, indtil den når en standsningstilstand.
Inputbåndets rolle er at levere input til beregningen. Indtastningsbåndet er til at begynde med udfyldt med inputsymbolerne, som læses af maskinen under beregningen. Indtastningsbåndet er skrivebeskyttet, hvilket betyder, at maskinen ikke kan ændre indholdet.
Outputbåndets rolle er at gemme outputtet fra beregningen. Efterhånden som maskinen behandler inputsymbolerne, kan den skrive symboler på outputbåndet for at producere det ønskede output. Outputbåndet er skrivebeskyttet, hvilket betyder, at maskinen kun kan skrive til det og ikke kan læse dets indhold.
Turing-maskinens evne til at beregne funktioner er baseret på dens evne til at manipulere symboler på båndet i henhold til et sæt regler. Disse regler giver maskinen mulighed for at udføre aritmetiske operationer, logiske operationer og andre beregninger. Ved at følge disse regler kan en Turing-maskine simulere enhver algoritmisk beregning.
Overvej for eksempel en Turing-maskine, der beregner summen af to tal. Indtastningsbåndet ville indeholde de to tal, adskilt af et særligt symbol. Maskinen ville læse inputsymbolerne, udføre tilføjelsesoperationen og skrive resultatet på outputbåndet.
En Turing-maskine beregner en funktion ved at følge et sæt instruktioner specificeret af et program. Indgangsbåndet leverer input til beregningen, og outputbåndet gemmer outputtet fra beregningen. Maskinen manipulerer symboler på båndet for at udføre beregninger, så den kan simulere enhver algoritmisk beregning.
Andre seneste spørgsmål og svar vedr Beregnelige funktioner:
- Hvad betyder det, at forskellige varianter af Turing-maskiner er ækvivalente med hensyn til computerkapacitet?
- Forklar forholdet mellem en beregnelig funktion og eksistensen af en Turing-maskine, der kan beregne den.
- Hvad er betydningen af, at en Turing-maskine altid stopper, når den beregner en beregnelig funktion?
- Kan en Turing-maskine modificeres til altid at acceptere en funktion? Forklar hvorfor eller hvorfor ikke.
- Hvad er en beregningsbar funktion i sammenhæng med beregningsmæssig kompleksitetsteori, og hvordan defineres den?