Inden for beregningskompleksitetsteori er forholdet mellem en beregnelig funktion og eksistensen af en Turing-maskine, der kan beregne den, af fundamental betydning. For at forstå dette forhold skal vi først definere, hvad en beregnelig funktion er, og hvordan den relaterer sig til Turing-maskiner.
En beregnelig funktion, også kendt som en rekursiv funktion, er en matematisk funktion, der kan beregnes af en algoritme. Det er en funktion, for hvilken der findes en Turing-maskine, der, givet ethvert input, vil stoppe og producere det korrekte output for det input. Med andre ord er en beregnelig funktion en funktion, der effektivt kan beregnes af en Turing-maskine.
Turing-maskiner er på den anden side teoretiske computerenheder, der blev introduceret af Alan Turing i 1936. De består af et uendeligt bånd opdelt i celler, et læse/skrivehoved, der kan bevæge sig langs båndet, og et sæt stater, der styrer maskinens opførsel. Maskinen læser symbolerne på båndet, udfører visse handlinger baseret på dens nuværende tilstand og det symbol, den læser, og skifter til en ny tilstand. Denne proces fortsætter, indtil maskinen når en standsningstilstand.
Forholdet mellem en beregnelig funktion og eksistensen af en Turing-maskine, der kan beregne den, er baseret på begrebet Turing-fuldstændighed. En Turing-maskine siges at være Turing-komplet, hvis den kan simulere enhver anden Turing-maskine. Med andre ord kan en Turing-komplet maskine beregne enhver funktion, der kan beregnes af enhver anden Turing-maskine.
Givet denne definition kan vi sige, at hvis en funktion kan beregnes, så findes der en Turing-maskine, der kan beregne den. Omvendt, hvis en Turing-maskine kan beregne en funktion, så kan den funktion beregnes. Dette forhold er baseret på det faktum, at Turing-maskiner er universelle computerenheder, der er i stand til at simulere enhver anden Turing-maskine.
For at illustrere dette forhold, lad os overveje et eksempel. Antag, at vi har en beregnelig funktion, der tilføjer to tal. Vi kan definere en Turing-maskine, der tager to input, flytter læse-/skrivehovedet til det første tal på båndet, tilføjer det andet tal til det og udlæser resultatet. Denne Turing-maskine kan beregne additionsfunktionen, hvilket viser forholdet mellem en beregnelig funktion og eksistensen af en Turing-maskine, der kan beregne den.
Forholdet mellem en beregnelig funktion og eksistensen af en Turing-maskine, der kan beregne den, er baseret på begrebet Turing-fuldstændighed. En beregnelig funktion er en, der effektivt kan beregnes af en Turing-maskine, og en Turing-maskine er Turing-komplet, hvis den kan simulere en hvilken som helst anden Turing-maskine. Derfor, hvis en funktion kan beregnes, findes der en Turing-maskine, der kan beregne den, og omvendt.
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?
- 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.
- Hvordan beregner en Turing-maskine en funktion, og hvilken rolle spiller input- og outputbåndene?
- Hvad er en beregningsbar funktion i sammenhæng med beregningsmæssig kompleksitetsteori, og hvordan defineres den?