Wir wollen eine Präfix-freie Kodierung von Turing-Maschinen und eine universelle Turing-Maschine U festlegen U, die bei Eingabe ( T , x )(T,x) (kodiert als Präfix-freier Code von T,T gefolgt von xx ) alle T-T Ausgaben bei Eingabe x ausgibt x(möglicherweise) beide laufen für immer). Definiert die Kolmogorov - Komplexität von xx , K ( x )K(x) , wie die Länge des kürzesten Programm pp , so dass U ( p ) = xU(p)=x .
TxT(x)≤|x|xT(x)≠K(x)lim inf | x | → ∞ T ( x ) = ∞lim inf|x|→∞T(x)=∞
Die Bedingungen sind notwendig, weil
(a) wennDann wäre es einfach, eine Zahl auszugeben, die sich trivial von K (x) unterscheidet, weil sie größer als | x | + c_U ist.T ( x ) ≰ | x | K ( x ) | x | + c UT(x)≰|x|K(x)|x|+cU
(b) Wenn lim inf | x | → ∞ T ( x ) < Clim inf|x|→∞T(x)<C erlaubt ist, können wir für fast alle Zahlen einfach 00 (oder eine andere Konstante) ausgeben , indem wir "zum Glück" höchstens eine davon erraten (endlich viele Zahlen), die zu 00 (zu einer anderen Konstante) auswerten und dort etwas anderes ausgeben. Wir können sogar \ limsup_ {| x | \ rightarrow \ infty} T (x) = \ infty garantieren, indem wir lim sup | x | → ∞ T ( x ) = ∞lim sup|x|→∞T(x)=∞etwas wie 2 log n2logn für x = 2 ^ n ausgeben x = 2 nx=2n.
Beachten Sie auch, dass unsere Aufgabe einfach wäre, wenn wir wissen, dass T ( x )T(x) nicht surjektiv ist, aber wenig darüber bekannt ist , sodass die Antwort möglicherweise von U abhängt UU, obwohl ich dies bezweifle.
Ich weiß, dass Beziehungen im Allgemeinen viel studiert werden, aber
Hat jemand jemals eine ähnliche Frage gestellt, bei der es unser Ziel ist, einen Algorithmus anzugeben, der keine Parameter ausgibt?
Meine Motivation ist dieses Problem http://arxiv.org/abs/1302.1109 .
Antworten:
Die Frage kann wie folgt umformuliert werden: , und wie Denis in den Kommentaren ausführt Dies ist für einige Codierungen falsch. Hier ist eine schwächere Aussage und ein versuchter Beweis dafür, der von keinerlei Details der Kodierung abhängt. Der Einfachheit halber gehe ich von einer Binärsprache aus:lim inf | x | → ∞ | T ( x ) - K ( x ) | =0liminf|x|→∞|T(x)−K(x)|=0
Sei eine berechenbare Funktion, die und erfüllt. . Dann . Informell kann es keine berechenbare Funktion verhindern, dass ein Ziel um die Kolmogorov-Komplexität jeder Saite herum getroffen wird, das unbegrenzt weit wächst.T : { 0 , 1 } ∗ → N 0 ≤ T ( x ) ≤ | x | lim inf | x | → ∞ T ( x ) = ∞ lim inf | x | → ∞ | T ( x ) - K ( x ) | < ∞T:{0,1}∗→N 0≤T(x)≤|x| liminf|x|→∞T(x)=∞ liminf|x|→∞|T(x)−K(x)|<∞
Um dies zu sehen, sei eine zufällige Bit-Zahl, dh und . Für alle solches zufälliges . Beachten Sie auch, dass es unendlich viele Werte von für die gilt. Dies folgt aus den Bedingungen, die an . Nun sei die kleinste Zeichenkette, so dass . Es ist klar, dass es eine Konstante so dass , weil undn b 0 ≤ n < 2 b K ( n ) ≥ b b n b | { T ( x ) = b } | ≥ 2 b T x n th T ( x ) = b c 1 K ( x ) > b - c 1 K ( x ) < b + c 2 Kn b 0≤n<2b K(n)≥b b n b |{T(x)=b}|≥2b T x nth T(x)=b c1 K(x)>b−c1 K ( n ) ≥ b n x c 2K(n)≥b n kann aus berechnet werden . Und es gibt eine Konstante so dass , weil auch von oben nur durch eine Konstante von mehr als ist und aus berechnet werden kann . Dann ist , und wir haben eine unendliche Anzahl von Möglichkeiten für (diejenigen mit einem Vorbild der Kardinalität von mindestens ), was eine unendliche Anzahl von Werten ergibt für sind wir also fertig.x c2 K(x)<b+c2 ( n ) b x n | K ( x ) - T ( x ) | < c 1 + c 2 b 2 b xK(n) b x n |K(x)−T(x)|<c1+c2 b 2b x
Eine Folge ist , dass für einige , unendlich oft. Man könnte also sagen, wir können nichts ausgeben, was nicht der Komplexität von Kolmogorov entspricht!c ≤ Z T ( x ) = K ( x ) + cc∈Z T(x)=K(x)+c
quelle
Ich denke das folgende funktioniert. Ich werde für die Kolmogorov-Komplexität verwendenC(x)
quelle