Lably
Skip to content

Constructible function

Concept in complexity theory

  • 2 min read
  • 4 chapters

Related on Lably

Through Natural number, Turing machine and Big O notation

Time-constructible

Let the Turing machine be defined in the standard way, with an alphabet that includes the symbols 0,1. It has a standard input tape containing zeros except for an input string. Let 1n denote a string composed of n ones. That is, it's the unary representation of n. Let |n| be the binary representation.

A function f is called time-constructible if there exists a Turing machine M such that the computation M(1n) halts in O(f(n)) steps with value |f(n)|.

This definition may use M(1n)=1f(n) instead, since the two can be interconverted in O(f(n)) steps.

Fully time-constructable

There is also a notion of a fully time-constructible function.

A function f is called fully time-constructible if there exists a Turing machine M, such that for all but finitely many n, M(1n) halts in exactly f(n) steps. This definition is slightly less general than the first, but for most applications, either definition can be used. The following equivalence theorem shows that these two concepts are equivalent for most functions used in practice:

Theorem. If f is a function such that there exists ϵ>0 such that, for all but finitely many n, f(n)≥(1+ϵ)n (that is, if f(n)−n=Ω(n)), then f is time-constructible if and only if it is fully time-constructible.

Sign in to keep reading

3 more chapters are free with a Lably account.

More in Theoretical computer science