Kolmogorov-Komplexität -...

4
1 Kolmogorov-Komplexität 1. Einführung Kolmogorov-Komplexität ist die Theorie, welche von der Quantität der Informationen individueller Objekte handelt. Die Informationen sind durch dessen Beschreibung gegeben, was als Komprimierung angesehen werden kann. Deshalb gibt es drei verschiedene Anwendungsgebiete: a. stark komprimierbare Wörter b. nicht komprimierbare Wörter c. Wörter, die komprimierbar sind, was aber mit großer Anstrengung verbunden ist Nicht komprimierbare Wörter werden in der Kolmogorov-Komplexität auch als zufällige Wörter bezeichnet. Es darf aber nicht mit dem umgangssprachlichen Zufall verwechselt werden. π zum Beispiel ist zufällig, aber durch eine kurzes Programm beschreibbar und daher stark komprimierbar. Zufallsdefinition von „von Mises“ für unendl. Strings x: a) lim n->f n /n = p (f n ist die Anzahl der 1’en bis zur Stelle n in x) b) a) soll auch mit demselben p für jede unendliche Teilfolge a n1 a n2 ... gelten, welche durch eine „zulässige“ partielle Funktion ø berechnet wurde. Das Problem liegt aber an der Definition des „zulässigen“ ø. Ein Beispiel einer zufälligen Zahl, die aber nach der obigen Definition nicht zufällig ist, ist Champernownes’ Zahl 0.123456789101112131415.... Denn es ist leicht, ein ø anzugeben, was aus dem Index i die i-te Stelle berechnet. Darum versuchten Laplace und Kolmogorov einen anderen Ansatz, indem sie Zufälligkeit mit Mangel an Regelmäßigkeit interpretierten. Die 3 wichtigsten Personen des Themas sind: R.J. Solomonoff, Cambridge, USA A.N. Kolmogorov, Moskau, Sowjetunion G.J. Chaitin, New York, USA 2. mathematische Theorie Wir interpretieren Integer als binäre Strings unter folgender Bijektion: (0ε), (10), (21), (300), (401), (510), (611), (7000), ... |x| sei die Länge des binären Strings (oder Integer) x, also z.B. |7| = |000| = 3 Komplexität eines Objektes x: Sei S eine berechenbare Funktion, p natürliche Zahl und n(x) die Stelle von x in der sortierten Liste aller Strings. Dann: K S (x) := min{|p| : S(p) = n(x)} Man kann K S (x) auch als Länge des minimalen Programms p zur Erzeugung von x unter der von einer Turing-Maschine realisierten Funktion S verstehen. Die Frage ist natürlich, welches S man nimmt, um ein möglichst optimales Ergebnis zu erhalten. Würde keine untere Schranke K S existieren, hätte die Definition wenig Sinn. Jedoch existiert nach Turing ein optimales S, so dass für alle S’ und x gilt: K S (x) K S’ (x) + c S,S’ Demnach reicht es K(x) zu schreiben, da asymptotisch betrachtet die Komplexität für alle S gleich ist. Komplexität von x gegeben y: K f (x|y) = min{|p| : p aus {0,1}* & f(p,y)=x},

Transcript of Kolmogorov-Komplexität -...

Page 1: Kolmogorov-Komplexität - UserPagespage.mi.fu-berlin.de/alt/vorlesungen/sem0405/HandoutHartmann.pdf · 1 Kolmogorov-Komplexität 1. Einführung Kolmogorov-Komplexität ist die Theorie,

1

Kolmogorov-Komplexität1. Einführung

Kolmogorov-Komplexität ist die Theorie, welche von der Quantität der Informationenindividueller Objekte handelt. Die Informationen sind durch dessen Beschreibung gegeben, wasals Komprimierung angesehen werden kann. Deshalb gibt es drei verschiedeneAnwendungsgebiete:

a. stark komprimierbare Wörterb. nicht komprimierbare Wörterc. Wörter, die komprimierbar sind, was aber mit großer Anstrengung verbunden ist

Nicht komprimierbare Wörter werden in der Kolmogorov-Komplexität auch als zufälligeWörter bezeichnet. Es darf aber nicht mit dem umgangssprachlichen Zufall verwechselt werden.π zum Beispiel ist zufällig, aber durch eine kurzes Programm beschreibbar und daher starkkomprimierbar.Zufallsdefinition von „von Mises“ für unendl. Strings x:

a) limn->∞fn/n = p (fn ist die Anzahl der 1’en bis zur Stelle n in x)b) a) soll auch mit demselben p für jede unendliche Teilfolge an1an2... gelten, welche

durch eine „zulässige“ partielle Funktion ø berechnet wurde.Das Problem liegt aber an der Definition des „zulässigen“ ø.Ein Beispiel einer zufälligen Zahl, die aber nach der obigen Definition nicht zufällig ist, istChampernownes’ Zahl 0.123456789101112131415.... Denn es ist leicht, ein ø anzugeben, wasaus dem Index i die i-te Stelle berechnet.Darum versuchten Laplace und Kolmogorov einen anderen Ansatz, indem sie Zufälligkeit mitMangel an Regelmäßigkeit interpretierten.

Die 3 wichtigsten Personen des Themas sind:• R.J. Solomonoff, Cambridge, USA• A.N. Kolmogorov, Moskau, Sowjetunion• G.J. Chaitin, New York, USA

2. mathematische Theorie

Wir interpretieren Integer als binäre Strings unter folgender Bijektion:(0ε), (10), (21), (300), (401), (510), (611), (7000), ...|x| sei die Länge des binären Strings (oder Integer) x, also z.B. |7| = |000| = 3

Komplexität eines Objektes x:Sei S eine berechenbare Funktion, p natürliche Zahl und n(x) die Stelle von x in der sortiertenListe aller Strings. Dann:

KS(x) := min|p| : S(p) = n(x)Man kann KS(x) auch als Länge des minimalen Programms p zur Erzeugung von x unter der voneiner Turing-Maschine realisierten Funktion S verstehen.

Die Frage ist natürlich, welches S man nimmt, um ein möglichst optimales Ergebnis zu erhalten.Würde keine untere Schranke KS existieren, hätte die Definition wenig Sinn. Jedoch existiertnach Turing ein optimales S, so dass für alle S’ und x gilt:

KS(x) ≤ KS’(x) + cS,S’Demnach reicht es K(x) zu schreiben, da asymptotisch betrachtet die Komplexität für alle Sgleich ist.

Komplexität von x gegeben y:Kf(x|y) = min|p| : p aus 0,1* & f(p,y)=x,

Page 2: Kolmogorov-Komplexität - UserPagespage.mi.fu-berlin.de/alt/vorlesungen/sem0405/HandoutHartmann.pdf · 1 Kolmogorov-Komplexität 1. Einführung Kolmogorov-Komplexität ist die Theorie,

2

wobei p Programm, y String, f Interpreter(TM Mf) und f(p, y)=x die Berechnung der Eingabep,y mit Ausgabe x auf Mf ist.

Invarianztheorem:Es existiert eine partiell, rekursive Funktion f, so dass für alle f’, x, y gilt:

Kf(x|y) ≤ Kf’(x|y) + cf’

Bsp: K(xx) ≤ K(x) + O(1)

2.1 Unkomprimierbarkeit

Aus dem Invarianztheorem folgt für alle x eine Konstante c existiert, so dass:K(x) ≤ |x| + c

Denn wähle einfach die Turing-Maschine, die die Eingabe einfach als Ausgabe nimmt.Doch es gibt 2n binäre Strings der Länge n, aber nur 2n-1 binäre Beschreibungen der Längekleiner als n. Demnach müssen Strings x mit K(x)≥|x| existieren. x mit dieser Eigenschaftheißen unkomprimierbar.

Bsp: Sei p(x) die kürzeste Beschreibung von x. Dann ist p unkomprimierbar, alsoK(p(x)) ≥ |p(x)| - c, für alle Strings x, ein c>0.

Bsp: Teilstrings eines unkomprimierbaren Strings können komprimierbar sein.

Die meisten Strings sind aber kaum komprimierbar. Denn mit |x|=n folgt, dass es für i=1,2,...nur 2n-i+1-1 binäre Beschreibungen der Länge kleinergleich (n-i) existieren. Also sind höchstens(2n-i+1-1)/2n der Strings auf eine Länger kleinergleich (n-i) komprimierbar.Für i=3 ergibt sich beispielsweise, dass 3/4 der Strings eine Beschreibung größer als (n-2)haben.

Unendliche Strings heißen O(log n) unkomprimierbar oder zufällig, wenn für alle n:K(x1:n) ≥ n – O(log n) gilt.

2.2 Selbstabgrenzende Beschreibung

Die selbstabgrenzende Beschreibung eins String x aus 0,1* sei x’, die wie folgt aussieht:Zuerst schreibt man die Länge von x binär (nach der bekannten Interpretation von Strings alsInteger), stopft hinter jedes Bit eine 0, außer nach dem letzten Bit eine 1 und schreibt danach xselbst binär.

Die Länge von x’ ist ungefähr log n + 2*log log n, wobei n die Länge von x ist.

Die selbstabgrenzende Beschreibung hat den Vorteil, dass a) von 2 beliebigen Beschreibungenkeine ein Präfix der anderen ist und b), dass die Länge in der Beschreibung enthalten und somitimplizit auch das Ende der selbigen bekannt ist.

2.3 Quantitative Schätzung von K

Kolmogorov: Sei A eine rekursiv aufzählbare Menge von Paaren (x,y), My=x : (x,y) in A.Dann gilt:

K(x|y)≤|d(My)|

Def: Sei A Teilmenge von 0,1* und A≤n := x aus A : |x| ≤ n. Dann heißt A spärlich, falls:limn->∞|A≤n|/2n = 0.

Satz: Spärliche Mengen A, die rekursiv sind, haben endlich viele unkomprimierbare Strings.

Page 3: Kolmogorov-Komplexität - UserPagespage.mi.fu-berlin.de/alt/vorlesungen/sem0405/HandoutHartmann.pdf · 1 Kolmogorov-Komplexität 1. Einführung Kolmogorov-Komplexität ist die Theorie,

3

Satz: Betrachte x als Integer nach der bekannten Bijektion. Dann gilt:a. |K(x+h) – K(x)| ≤ 2|h|b. Die Anzahl der x mit K(x)<|x|-m übersteigt nicht 2-m

c. Limx->∞K(x) = ∞

Bsp: K(x|n)≤K(x), wenn |x|=n. Meistens enthält aber die Länge von x kaum Informationen überx selbst. Also gilt K(x|n)=K(x)-c.Anders bei x=0n. Hier ist K(x) = K(n)+O(1), aber K(x|n) = O(1).

2.4 Unendlich zufällige Strings

Zu der bekannten Definition von „zufällig“, K(x1:n)≥n-c, gilt:Satz (Löv): Sei f(n) eine berechenbare Funktion mit ∑n 2-f(n)=∞. Dann existieren unendlich vielen mit K(x1:n)<n-f(n).

Bem: Gilt allerdings ∑n2-f(n) konvergiert, dann sind fast alle x mit |x|>n0 zufällig.

2.5 Algorithmische Eigenschaften von K

K sei wieder eine Funktion von Integer nach Integer. Dann gilt:Satz:

a. Die Funktion K(x) ist nicht partial rekursivb. Es existiert H(t,x), monoton fallend in t, mit limt->∞H(t,x) = K(x)

Satz: Für jede binäre Sequenz x=x1x2..., für die die Menge M=n : xn=1 rekursiv aufzählbar ist,gilt K(x1:n | n) ≤ log n + cM.

Bzardin: Setzt man zusätzliche Vorraussetzungen an die Berechnung, zum Beispiel, dass sie inbestimmter Zeit t berechnet werden soll, so steigt K(x) stark an.

2.6 A Priori Wahrscheinlichkeit: Die Solomonoff-Levin-Distribution

m(x) := ∑U(p)=X2-|p|,also die Wahrscheinlichkeit, dass ein zufällig generiertes Programm p als Eingabe für dieuniverselle Turing-Maschine x erzeugt.

Man kann zeigen, dass m(x)=2-K(x)±O(1)

3. Komprimierungsanwendungen

3.1 Eine Version von Gödels Theorem

Obwohl fast alle Zahlen zufällig sind, können nur endlich viele als solches bewiesen werden.Denn Beschreibungen sind endlich und eine Beschreibung ≤k Bits kann keine Zahl mit >k Bitsals zufällig beweisen, denn der Beweis wäre eine Komprimierung dieser Zahl.

3.2 berechenbare Nummern sind nicht zufällig

Denn eine Beschreibung ist dann durch die Berechnung in O(1) gegeben.

Satz: unendlicher String x ist rekursiv ex. c>0, so dass f. a. n aus N: K(x1:n)≤K(n)+cAnalog: es existiert f: f(n)=x1:n, ∀ n.

Page 4: Kolmogorov-Komplexität - UserPagespage.mi.fu-berlin.de/alt/vorlesungen/sem0405/HandoutHartmann.pdf · 1 Kolmogorov-Komplexität 1. Einführung Kolmogorov-Komplexität ist die Theorie,

4

3.3 Ω, die Zahl der Weisheit

Def: Eine Zahl heißt normal, wenn jeder Block von Ziffern gleicher Länge mit gleicher,asymptotischer Wahrscheinlichkeit auftrifft.

Bsp: keine rationale Zahl ist normal, denn ihre Dezimaldarstellung ist entweder periodisch oderendlich. Aber fast jede reelle Zahl ist es. Champernowne’s Zahl ist zwar nicht zufällig, abernormal.

Es gilt, dass die meisten reellen Zahlen zufällig, also unkomprimierbar sind. Aber können wireine solche Zahl angeben. Von der Vorstellung her nicht, denn gibt man eineunkomprimierbare, unendliche reelle Zahl an, so hat man sie damit komprimiert.

Frage: Kann man eine reelle, zufällige Zahl errechnen?Zum Beispiel k=k1k2... mit ki=1 : U hält auf fi. Sonst 0.Aber Halteproblem ist unentscheidbar, also k unberechenbar.

Chaitin: Ω=∑xm(x)=∑x∑U(p)=x2-|p|

Also 0<Ω<1 und es ist Kolmogorov-zufällig und nicht berechenbar.Und kurioserweise kodiert es auch das Halteproblem.Genauer: Kennt man Ω1:n, so kann man über die ersten 2n Programme sagen, ob sie halten odernicht.

4. schwaches Theorem über PrimzahlenMan kann nun mit Hilfe der Kolmogorov-Komplexität π(n) (die Anzahl der Primzahlen kleinerals n) abschätzen. Allgemein gilt, dass π(n)~n logn. Aber zusätzlich;Satz: π(n) = Ω((log n)/(loglog n))

5. Beweis unterer SchrankenMan kann nun die beschreibende Komplexität von Strings zum Beweis unterer Schrankennutzen. Dabei geht man wie folgt vor: Man nimmt sich einen unkomprimierbaren String x her,der wegen seiner Zufälligkeit als Eingabe gut geeignet ist. Dann nimmt man die gegenteiligeBehauptung an und führt diese zum Widerspruch, in dem man zeigt, dass x komprimierbar ist.

Gegeben sei eine normale TM mit einem Band, Schreib-Lese-Kopf und der Eingabe auf denersten n Felder des Bandes.Theorem: Es braucht Ω(n2) Schritte für die obige TM M um L = wwR | w in 0,1* zuerkennen.

Betrachte das Parallel-Rechen-Model der Priotitäts-PRAM. Sie besteht aus Prozessoren P(i),i=1,2,…,nO(1) und einer unendlichen Anzahl von geteilten Speicherzellen. Ein Rechenschritt derPRAM besteht aus 3 Teilen, den alle P(i) parallel ausführen: 1) Lesen eines Wertes aus demSpeicher, 2) Ausführen der Berechnung 3) Rückschreiben des WertesTheorem: Um n Integer-Zahlen zu addieren, jedes mit einer polynomiellen Anzahl an Bits,braucht es Ω(log n) parallele Schritte auf einer Prioritäts-PRAM.

Eine Matrix über GF(2) enthält nur Nullen und Einsen und als Operationen die boolescheMultiplikation und Addition.Theorem: Jede nxn-Matrix über GF(2) hat eine Untermatrix mit s Zeilen und n-r Spalten(r,s≤1/4n), so dass mindestens 1/2s linear unabhängige Zeilen existieren.