Konstruerbar funktion
I komplexitetsteorin är en tidskonstruerbar funktion en funktion f från naturliga tal till naturliga tal med egenskapen att f ( n ) kan konstrueras från n av en Turingmaskin i ordningens tid f ( n ). Syftet med en sådan definition är att utesluta funktioner som inte ger en övre gräns för körtiden för någon Turing-maskin.
Tidskonstruerbara definitioner
00 Det finns två olika definitioner av en tidskonstruerbar funktion. I den första definitionen kallas en funktion f tidskonstruerbar om det finns ett positivt heltal n och Turingmaskin M som, givet en sträng 1 n bestående av n ettor, stannar efter exakt f ( n ) steg för alla n ≥ n . I den andra definitionen kallas en funktion f tidskonstruerbar om det finns en Turingmaskin M som, givet en sträng 1 n , matar ut den binära representationen av f ( n ) i O ( f ( n )) tid (en unär representation) kan användas istället, eftersom de två kan omvandlas i O ( f ( n )) tid).
Det finns också en föreställning om en fullt tidskonstruerbar funktion. En funktion f kallas fullt tidskonstruerbar om det finns en Turingmaskin M som, givet en sträng 1 n bestående av n ettor, stannar efter exakt f ( n ) steg. Denna definition är något mindre generell än de två första, men för de flesta tillämpningar kan båda definitionerna användas.
Utrymmeskonstruerbara definitioner
00 är en funktion f rymdkonstruerbar om det finns ett positivt heltal n och en Turingmaskin M som, givet en sträng 1 n bestående av n ettor, stannar efter att ha använt exakt f ( n ) celler för alla n ≥ n . På motsvarande sätt är en funktion f rymdkonstruerbar om det finns en Turingmaskin M som, givet en sträng 1 n bestående av n ettor, matar ut den binära (eller unära) representationen av f ( n ), samtidigt som den endast använder O ( f ( n ) . )) Plats.
En funktion f är också fullt rymdkonstruerbar om det finns en Turingmaskin M som, givet en sträng 1 n bestående av n ettor, stannar efter att ha använt exakt f ( n ) celler.
Exempel
Alla vanliga funktioner f ( n ) (såsom n , n k , 2 n ) är tids- och rumskonstruerbara så länge som f ( n ) är åtminstone cn för en konstant c > 0. Ingen funktion som är o ( n ) kan vara tidskonstruerbar om den inte så småningom är konstant, eftersom det inte finns tillräckligt med tid för att läsa hela inmatningen. Däremot en rymdkonstruerbar funktion.
Ansökningar
Tidskonstruerbara funktioner används i resultat från komplexitetsteorin som tidshierarkisatsen . De är viktiga eftersom tidshierarkisatsen bygger på Turing-maskiner som måste avgöra i O ( f ( n )) tid om en algoritm har tagit fler än f ( n ) steg. Detta är naturligtvis omöjligt utan att kunna beräkna f ( n ) under den tiden. Sådana resultat är typiskt sant för alla naturliga funktioner f men inte nödvändigtvis sant för artificiellt konstruerade f . För att formulera dem exakt är det nödvändigt att ha en exakt definition för en naturlig funktion f för vilken satsen är sann. Tidskonstruerbara funktioner används ofta för att ge en sådan definition.
Rymdkonstruerbara funktioner används på liknande sätt, till exempel i rymdhierarkisatsen .
Den här artikeln innehåller material från constructible på PlanetMath , som är licensierad under Creative Commons Attribution/Share-Alike-licensen .