Beispiel 3: Av erage vs. W orst Case Beispiel 4: V orhersage

Werbung
Beispiel 3: Average vs. Worst Case
Fallbeispiel: Sortieralgorithmen
B rekonstruiert π aus den Ergebnissen der Schlüsselvergleiche von
A. Wenn also A v Vergleiche braucht um π zu sortieren, so wird B
mit v bits Input den Output π produzieren.
Sei A ein beliebiges vergleichsbasiertes Sortierprogramm.
Wir wählen eine Permutation π von {1, . . . , n} die unkomprimierbar
ist; und zwar auch relativ zu A und zu folgendem Programm B:
Unter sehr allgemeinen Bedingungen gilt:
Wird eine untere Schranke (z.B. für die Zeit-, oder Platzkompl.
eines Algorithmus’) mit Hilfe eines
“Inkompressibilitäts-Arguments” gezeigt (vgl. Beispiele 1 und 2!)
so gilt diese Schranke nicht nur im ungünstigsten Fall, sondern
auch im Durchschnitt (bei gleichverteilten Inputs)
v ≥ C(π|A, B) ≥ log(n!)
Es gilt:
v ≥ log(n!) = n log n − O(n)
4
• für jedes (berechenbare) µ gilt: ∀x : M(x) ≥ cµ(x),
wobei die Konstante c nur von µ abhängt
P
•
n≥1 Sn ist durch eine Konstante beschränkt, wobei n = l(x)
und Sn ist das Quadrat des zu erwartenden Fehlers der
Abschätzung der Wahrscheinlichkeit von x gemäss µ durch M.
Zentrale Eigenschaften von M:
wobei K die “selbstbeschränkende” Kolmogorov-Komplexität von x
bezeichnet.
M(x) = 2−K(x)
Die “universelle Verteilung” M ist, cum grano salis, definiert als:
Annahme: µ ist berechenbar (keine wesentliche Einschränkung)
2
und zwar — auf Grund der Überlegungen von vorhin — nicht nur
im schlechtesten Fall, sondern auch im Durchschnitt!
Daher:
Grund: Die “meisten” Strings sind (fast) unkomprimierbar!
1
Genauer: Wir werden u.a. zeigen, dass der Anteil der Strings der
Länge n die mit weniger als n − c bits dargerstellt werden können
maximal 21c beträgt.
Wichtig: Das gilt auch für die relative Kolmogorov-Komplexität:
C(x|y) ≈ Länge des kleinsten Programm, das x bei Input y ausgibt.
Beispiel 4: Vorhersage
Ein zentrales Problem der AI (und anderer Gebiete) ist das der
(beweisbar optimalen) Vorhersage (Induktives Schliessen)
Die Essenz des Problems (vereinfacht, abstrakt):
• Errate jeweils folgende Bits einer unendlichen Bit-Kette auf
Grund der Kenntnis der bisherigen (endlichen) Bit-Folge.
µ(x0)
µ(x)
Sei µ die zu Grunde liegende Wahrscheinlichkeitsverteilung.
Die Wahrscheinlichkeit, dass 0 auf das Initialsegment x folgt ist
µ(0|x) =
Dabei ist µ unbekannt und soll geeignet abgeschätzt werden!
3
Zur Definition von C:
Ganz allgemein:
Sei S irgendeine Kollektion von Objekten und n : S 7→ N eine
beliebige (fixierte) Abbildung der Objekte als Zahlen bzw.
Binärstrings.
Relativ zu einer beliebigen Funktion f (Beschreibungsmethode)
definieren wir:
Cf (o) = min{l(p) : f (p) = n(o)}
dabei ist l(p) die Bit-Länge des Strings (Zahl) p
Erst wenn man verlangt, dass f berechenbar (partiell rekursiv) ist
erhält man eine nützliche Definition.
Diese “Einschränkung” ist aber noch nicht hinreichend.
5
Zentrales “Fundament” der Theorie der Kolmogorov-Kompl. ist das
Faktum, dass universelle Beschreibungsmethoden exisitieren!
Für ein präzise formuliertes Theorem, das diesem Faktum
entspricht, siehe Lemma 2.1.1, Seite 96.
7
Beschreibungsmethode f minorisiert Beschreibungsmethode g gdw:
∃c : ∀x : Cf (x) ≤ Cg (x) + c
Beobachtung: zu jedem endlichen Satz von Beschreibungsmethoden
f1 , . . . fn kann man ein f definieren, das alle fi minorisiert.
f und g heissen äquivalent wenn sie sich einander minorisieren.
Ab nun setzen wir voraus:
Beschreibungsmethoden sind berechenbar (programmierbar).
f heisst universell (auch: additiv opimal) g.d.w. für alle
berechenbaren g eine Konstante cf,g existiert, sodass:
∀x : Cf (x) ≤ Cg (x) + cf,g
(Lässt sich leicht auf mehrstellige Funktionen erweitern.)
Beobachtung: Alle universellen Beschreibungsmethoden sind
(paarweise) äquivalent!
6
Exkurs: selbstbeschränkende Codes (Prefix
Die Konkatenation von Strings kann Information zerstören!

 1x 0
 Ei−1 (l(x))x
für i > 0
für i = 0
Beispiel: Um aus xy =01101011110011011010011011110 eine
Darstellung jeweils von von x =0110101111001101 und
y =1010011011110 zu gewinnen, benötigen wir Information zur
“richtigen Trennung” von xy. Z.B. in Form l(x) (= 16 = 0001)
Dazu definieren wir:
Ei (x) =
Zur Erinnerung: l(x) ist die (Bit-)Länge von x [l(x) ≈ log(x)]
Wir schreiben x für E1 (x) = 1l(x) 0x
Es gilt: x = 2l(x) + 1
8
Eine konkrete universelle Maschine
Sei T0 , T1 , T2 , . . . eine effektive Aufzählung aller Turingmaschinen
und φ0 , φ1 , φ2 , . . . die entsprechenden berechneten (daher partiell
rekursiven) Funktionen. (Typ: N 7→ N.)
Universelle Turingmaschine U :
U erwartet Inputs der Form
mal
hn, pi = 11
. . . 1} 0 np [= np]
| {z
l(n)
dabei ist hn, pi als der (selbst-beschränkende!) Code der
Turingmaschine Nummer n, zusammen mit dem Input p (für Tn )
zu verstehen.
9
Relative Kolmogorov-Komplexität
Für alle natürlichen Zahlen x, y, p und jede (partielle)
berechenenbare Funktion φ sei die Kolmogorov-Komplexität von x
relativ zu y, bzgl. der Beschreibungsmethode φ, wie folgt definiert:
Cφ (x|y) = min{l(p) : φ(hy, pi) = x}
Wir verstehen p als ein Programm, das aus Input y eine
Beschreibung von x herstellt.
Wir schreiben Cφ (x|y) = ∞ falls kein solches Programm (bzgl. φ)
exisitiert.
Wichtig:
Wenn wir den Index der Beschreibungsmethode unterdrücken so
meinen wir φ = φ0 für T0 = U , wie oben beschrieben.
Ausserdem: C(x) = C(x|).
11
[auch: U (0p) = U (p)]
Interpretation: U simuliert Maschine Tn auf Input p.
Wir vereinbaren U = T0 .
Daher gilt:
φ0 (hn, pi) = φn (p)
Wir erhalten für die entsprechende Kolmogorov-Komplexität:
∀n : ∀x : Cφ0 (x) ≤ Cφn (x) + cφn
wobei cφn = 2l(n) + 1.
10
Durch Verwendung einer (berechenbaren) Paarungsfunktion
h·i : N × N 7→ N lässt sich dies leicht auf
relative Kolmogorov-Komplexität erweitern.
(Z.B. der oben definierten, besser jedoch einer bijektiven!)
Invarianztheorem
Theorem:
Es exisitiert eine universelle, berechenbare (d.h. partiell rekursive)
Funktion φ0 .
Genauer: für alle berechenbaren φ gilt
∀x: ∀y : Cφ0 (x|y) ≤ Cφ (x|y) + cφ
wobei cφ nur von φ aber nicht von x oder y abhängt.
12
“Zwei-Komponenten”-Beschreibung
C(x) = min{l(T ) + l(p) : T (p) = x} ± 1
+ O(1)
Gemäß unserer “Referenzmaschine” U bestehen Beschreibungen
von x aus 2 Teilen: einem selbeschränkend codiertem
Turingmaschinenprogramm Tn und einem Input p für Tn .
Alternative Terminologie: Tn ist die “Maschine” und p sein
“Programm” dafür.
Wegen U (0p) = U (p) gilt jedenfalls:
bzw.
C(x) = min{l(T ) + C(x|T ) : T ∈
{T0 , T1 , . . .}}
T kann man dabei als die kompakte Beschreibung der allgemeinen
Struktur von x verstehen (Regularität); p bzw. C(x|T ) als die
“individuelle Irregularität” von x.
Beispiel: x = 1000 mal ‘10011’
13
C(x|y) ≤ C(x) + c
Aus dem Beweis des Invarianztheorems folgt auch:
∃c: ∀x: ∀y: C(x) ≤ l(x) + c und
Weiters folgen einfache Eigenschaften von C(·):
• C(xx) ≤ C(x) + O(1)
• C(x|x) = O(1)
• |C(x) − C(xR )| = O(1), C(xR |x) = O(1)
14
Herunterladen