Theoretische Informatik 1 - Institut für Grundlagen der

Werbung
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
Theoretische Informatik 1
Teil 2
Bernhard Nessler
Institut für Grundlagen der Informationsverabeitung
TU Graz
SS 2010
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
Übersicht
1
Abstrakte Rechnermodelle: Registermaschinen
Algorithmusbegriff konkretisiert
Befehlssatz
formale Beschreibung
Codierung
2
Kostenmaße und Komplexität
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
3
Church-Turing These
Church-Turing These
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
Algorithmusbegriff konkretisiert
Befehlssatz
formale Beschreibung
Codierung
Begriff Algorithmus
Das Zehnte Hilbert’sche Problem2 (dt. Originaltext)
Eine diophantische (=ganzzahlige) Gleichung mit
irgendwelchen Unbekannten und mit ganzen rationalen
Zahlenkoeffizienten sei vorgelegt.
Man soll ein Verfahren angeben, nach welchem sich mittels
einer endlichen Anzahl von Operationen entscheiden läßt,
ob die Gleichung in ganzen Zahlen lösbar ist.
Hilbert hat also explizit und in definierter abstrakter Form nach einem Entscheidungsalgorithmus gefragt. Er war
davon überzeugt, daß es einen solchen prinzipiell immer gibt.
Tatsächlich konnte 1970 bewiesen werden, daß es keinen solchen Algorithmus geben kann.
2
David Hilbert präsentiert 1900 in Paris die 23 offenen Probleme der Mathematik
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
Algorithmusbegriff konkretisiert
Befehlssatz
formale Beschreibung
Codierung
Algorithmus konkretisiert
Verfahren, Operationen, endliche Anzahl
endliche, numerierte Anweisungsliste (Programm)
Rechenoperationen: + − ∗ ÷
(Zwischen-)Ergebnisse: r0 , r1 , . . . , rk , . . .
bedingte Verzweigung (JZERO), Sprung(GOTO)
Konstanten #k , direkte Adressierung rk
indirekte Adressierung rrk
definierter Haltebefehl: END
=⇒ Registermaschine (RAM)
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
Algorithmusbegriff konkretisiert
Befehlssatz
formale Beschreibung
Codierung
Schema einer Registermaschine (RAM)
1
Graphik aus: Asteroth, Baier: Theoretische Informatik, Pearson Studium
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
Algorithmusbegriff konkretisiert
Befehlssatz
formale Beschreibung
Codierung
Befehlssatz einer Registermaschine
LOAD x
STORE k
STORE ∗k
ADD x
SUB x
MULT x
DIV x
GOTO k
JZERO k
END
r0 := v (x)
rk := r0
rrk := r0
r0 := r0 + v (x)
r0 := max {0, r0 − v (x)}
r0 := r0 ∗ v (x)
r0
r0 := b v (x)
c
b := k
if r0 = 0 then b := k
b := 0
Argumentwert
x
v (x)
#k k
k
rk
∗k
rrk
Register:
∀i ∈ N0 : ri ∈ N0
b = 0 ≡ HALT
danach: b := b + 1 (außer nach Verzweigungen)
Falls R terminiert, erwarten wir das Ergebnis der Berechnung
im Accumulator r0 .
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
Algorithmusbegriff konkretisiert
Befehlssatz
formale Beschreibung
Codierung
Formale Beschreibung
Ein RM-Programm R = (π1 , . . . , πm ) ist eine endliche Sequenz
von Anweisungen.
Eine Registerbelegung R = {(j1 , rj1 ), (j2 , rj2 ), . . . , (jl , rjl )} ist
eine endliche Menge von Register-Wert-Paaren. Alle Register,
die nicht in R aufgezählt sind haben den Wert 0.
Die Eingabe für eine RM R soll ein Tuple von k Zahlen
x1 , . . . , xk ∈ N0 sein.
Die initiale Registerbelegung lautet:
R[x1 , . . . , xk ] = {(1, x1 ), (2, x2 ), . . . , (k , xk )}
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
Algorithmusbegriff konkretisiert
Befehlssatz
formale Beschreibung
Codierung
Konfigurationen
Definition (Konfiguration)
Die Konfiguration einer RM ist ein Tupel κ = (b, R), wobei
b ∈ N0 der nächste auszuführende Befehls ist und
R ⊂ N20 die aktuelle Registerbelegung darstellt.
Definition (Konfigurationsrelation −
→)
R
Sei κ = (b, R) und
κ0
=
(b0 , R 0 ),
dann ist κ −
→ κ0 wahr, gdw.
R
entweder πb ein Sprungbefehl nach b0 und R 0 = R ist,
oder b0 = b + 1 und R 0 = {(j, x)} ∪ (R \ {(i, y ) ∈ N20 |i = j}),
wobei j das von πb adressierte Register und x dessen neu
berechneter Inhalt ist.
Eine terminierte Konfiguration (0, R) hat keine Nachfolgekonfiguration.
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
Algorithmusbegriff konkretisiert
Befehlssatz
formale Beschreibung
Codierung
Konfigurationen
n
∗
R
R
Definition (−
→,−
→)
0
κ−
→ κ0 genau dann wenn κ = κ0 .
R
n+1
κ −−→ κ0
R
2
n
gdw ∃κ00 ∈ N × 2N0 : κ −
→ κ00 ∧ κ00 −
→ κ0
R
R
∗
−
→ ist die reflexive, transitive Hülle von −
→.
R
R
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
Algorithmusbegriff konkretisiert
Befehlssatz
formale Beschreibung
Codierung
Definition
Die durch R berechnete partielle Funktion fR : Nk 7→ N0 ist
gegeben durch

2
∗
 ⊥ : @R 0 ⊂ 2N0 : κ0 −
→ (0, R 0 )
R
fR (x1 , . . . , xk ) =
2
∗
 r0 : ∃R 0 ⊂ 2N0 : κ0 −
→ (0, R 0 ) ∧ (0, r0 ) ∈ R 0
R
wobei κ0 = (1, R[x1 , . . . , xk ]) die Startkonfiguration darstellt.
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
Algorithmusbegriff konkretisiert
Befehlssatz
formale Beschreibung
Codierung
Codierung des Input
Codierungen x1 , . . . , xn ∈ N gesucht für
Ganze Zahlen
⇒ xi = |x|, xi+1 = sign(x)
Rationale Zahlen
⇒ Vorkommateil, Nachkommateil, Vorzeichen
⇒ Zähler, Nenner, Vorzeichen
Graphen G(V , E)
⇒ Anzahl Knoten, quardatische Adjazenzmatrix aufzählen
⇒ Adjazenzmatrix zeilenweise binär verschlüsseln
Programm einer RM
⇒ zeilenweise, Befehlscode + Argument ∗ 20
Sinnvolle Kodierung: keine systematische Kompression
möglich.
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
Beispiel: Berechne x y
Startkonfiguration:
κ0 = (1, R[x, y ]), x, y ∈ N0
Gesucht: RM-Programm R, sodaß
fR (x, y ) = x y
Pseudocode für z = x y
z = 1;
while y > 0
z := z ∗ x;
y := y − 1;
wend
Bernhard Nessler
1
2
3
4
5
6
7
8
9
10
11
12
LOAD #1
STORE 3
LOAD 2
JZERO 11
SUB #1
STORE 2
LOAD 3
MULT 1
STORE 3
GOTO 3
LOAD 3
END
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
uniforme Kostenmaße
i
Es gilt: (1, R[x1 , . . . , xk ]) −
→ (bi , Ri ), mit bN = 0
R
Definition (uniforme Zeitkosten)
Die uniformen Zeitkosten der RM R bei Eingabe von
x1 , . . . , xk sind definiert als
u
tR
(x1 , . . . , xk ) = N
Definition (uniforme Platzkosten)
Die uniformen Platzkosten der RM R bei Eingabe von
x1 , . . . , xk sind definiert als
∞ X
1 ∃0 ≤ i ≤ N : ri,j 6= 0
u
sR
(x1 , . . . , xk ) =
0 ∀0 ≤ i ≤ N : ri,j = 0
j=0
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
Logarithmische Länge L(x)
Definition (Logarithmische Länge)
Sei x ∈ N0 , dann ist die Logarithmische Länge von x die
Anzahl der für die binäre Darstellung von x benötigten Bits.
1
: x =0
L(x) =
blog xc + 1
: x ≥1
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
logarithmische Zeitkosten
Definition (logarithmische Zeitkosten)
Die logarithmischen Zeitkosten der RM R bei Eingabe von
x1 , . . . , xk sind definiert als

1
πb =GOTO|END


i


L(ri,0 )
πb =JZERO op

i


L(ri,0 )+L(op)
πb =ADD|SUB|MULT |DIV #op

i

 L(ri,0 )+L(op)
πb =STORE op


i

N−1
πb =ADD|SUB|MULT |DIV op
X  L(ri,0 )+L(op)+L(ri,op )
i
L(r )+L(op)+L(r
)
πb =STORE ∗op
tR (x1 , . . . , xk ) =
i
 L(ri,0 )+L(op)+L(ri,op )+
i,0
i,op
i=0 


+L(ri,r
)
πb =ADD|SUB|MULT |DIV ∗op


i,op
i
 L(op)

πb =LOAD #op

i


L(op)+L(r
)
πb =LOAD op


i
 L(op)+L(ri,op )+L(r
)
π =LOAD ∗op
i,op
Bernhard Nessler
i,ri,op
bi
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
logarithmische Platzkosten
Definition (logarithmische Platzkosten)
Die logarithmischen Platzkosten der RM R bei Eingabe von
x1 , . . . , xk sind definiert als
∞ X
max0≤i≤N L(ri,j ) ∃0 ≤ i ≤ N : ri,j =
6 0
sR (x1 , . . . , xk ) =
0
∀0 ≤ i ≤ N : ri,j = 0
j=0
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
Beispiel x y , Kosten pro Befehl
1 LOAD #1
2 STORE 3
3 LOAD 2
4
5
6
7
8
9
10
11
12
JZERO 11
SUB #1
STORE 2
LOAD 3
MULT 1
STORE 3
GOTO 3
LOAD 3
END
r0 ← 1
r3 ← r0
r0 ← r2
r0
r0
r2
r0
r0
r3
?
=0
← r0 − 1
← r0
← r3
← r0 ∗ r1
← r0
r0 ← r3
Bernhard Nessler
uniform
1
1
1
1
1
1
1
1
1
1
1
1
logarithmisch
1
3
2 + L(r2 )
L(r0 )
L(r0 ) + 1
2 + L(r0 )
2 + L(r3 )
L(r0 ) + 1 + L(r1 )
2 + L(r0 )
1
2 + L(r3 )
1
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
Beispiel x y
Uniforme Zeitkosten:
u
tR
(x, y ) = 4 +
Zeile 1-4
+ 8y +
Zeile 5-10,3,4; y Durchläufe
+2
Zeile 11,12
= 8y + 6
Logarithmische Zeitkosten:
P
( yi=1 L(i) ≈ y (L(y ) − 1))
tR (x, y ) = 9 + 2L(y ) + yL(x)
P
P
+ 4 yi=1 L(i) + 3L(x) yi=1 i − yL(x) + 11y
3
3
≈ y 2 L(x) + (4y + 2)L(y ) + y (7 − L(x)) + 9
2
2
Bernhard Nessler
Theoretische Informatik 1
Z 1-4,11-12
Z 5-10,3-4
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
Komplexität
Definition (Zeitkomplexität, Laufzeit)
Die Zeitkomplexität TR (n) einer RM R in Abhängigkeit der
logarithmischen Länge n der Eingabe ist definiert als
TR (n) =
max
(x1 ,...,xk )∈Nk0 : L(x1 )+···+L(xk )≤n
tR (x1 , . . . , xk )
TR (n) = f (n) ⇒ tR (x1 , . . . , xk ) ≤ f (L(x1 ) + . . . + L(xk ))
Definition (Platzkomplexität, Speicherbedarf)
Die Platzkomplexität SR (n) einer RM R in Abhängigkeit der
logarithmischen Länge n der Eingabe ist definiert als
SR (n) =
max
(x1 ,...,xk )∈Nk0 : L(x1 )+...+L(xk )≤n
Bernhard Nessler
sR (x1 , . . . , xk )
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
Beispiel x y , Komplexität TRu
Unter dem uniformen Kostenmaß:
u
tR
(x, y ) = 8y + 6
ny
<= 8 · 2
L(x) = nx , L(y ) = ny
+6
u
TR
(n) <= 8 · 2n−1 + 6
n = nx + ny
= O(2n )
Linear im Eingabewert heißt exponentiell in der Eingabelänge!
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
Beispiel x y , Komplexität TR
Unter dem logarithmischen Kostenmaß:
3 2
3
y L(x) + (4y + 2)L(y ) + y (7 − L(x)) + 9
2
2
3
3
≤ 22ny nx + (4 · 2ny + 2)ny + 2ny (6 − nx ) + 9
2
2
tR (x, y ) =
3 2n
3
2 n + (4 · 2n + 2)n + 2n (6 − n) + 9
2
2
3
5
≤ n22n + n2n + 6 · 2n + 2n + 9
2
2
= O(n22n )
TR (n) ≤
also sogar superexponentielle Laufzeit (∈
/ O(poly (n)))
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
uniforme vs. logarithmische Kosten
Ein Problem heißt effizient lösbar, wenn es eine Registermaschine R gibt, die das Problem in polynomieller Zeit löst.
Solange man nur die Frage der polynomiellen Laufzeit
beantworten möchte, kann man unter folgenden
Voraussetzungen das uniforme Kostenmaß verwenden.
u (n) = O(poly (n)))
TR
maxi,j L(ri,j ) = O(poly (n))
Sind beide Voraussetzungen erfüllt, dann gilt
TR (n) = O(poly (n))
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
Beweisskizze
u
tR
(x1 , . . . , xk ) =
N−1
X
1
i=0
tR (x1 , . . . , xk ) =
N−1
X
i=0
{1 | L(op) | L(ri,op ) | L(ri,ri,op )}
{z
}
|
bis zu 4 Summanden
h(x1,...,k ) := max L(ri,j ) und H(n) =
i,j
tR (x1,...,k ) ≤ 4
N−1
P
i=0
TR (n) ≤
⇒
max
L(x1 )+...+L(xk )≤n
h(x1,...,k )
u (x
h(x1,...,k ) = 4tR
1,...,k ) · h(x1,...,k )
max
L(x1 )+...+L(xk )≤n
u (x
u
(4tR
1,...,k ) · h(x1,...,k )) ≤ 4TR (n) · H(n)
u (n) · H(n))
TR (n) = O (TR
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
RM ohne Luxus
Das RM - Modell kann ohne Verlust der Berechnungsstärke
stark eingeschränkt werden und verzichten auf:
Multiplikation (ersezten durch Addition und HALF)
Division (ersetzen durch Subtraktion und HALF)
Indirekte Adressierung (mühsam)
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
uniformes Kostenmaße
logarithmische Kostenmaße
Komplexität
Effizienz
Beispiele
Von einer Registermaschine R ist die uniforme Zeitkomplexität
u bekannt. Berechne daraus die bestmögliche Abschätzung
TR
der logarithmischen Zeitkomplexität (H(n) unbekannt).
a) allgemein
b) falls R kein MULT enthält
Zeige: Zu jeder Registermaschine R existiert eine Registermaschine R0 , die weder MULT noch DIV benützt, so daß
fR0 = fR und
TR0 (n) = O(TR (n)2 )
Bernhard Nessler
Theoretische Informatik 1
Abstrakte Rechnermodelle: Registermaschinen
Kostenmaße und Komplexität
Church-Turing These
Church-Turing These
Church-Turing These
Church-Turing These
Die Klasse der intuitiv berechenbaren Funktion ist genau
die Klasse der Turing-berechenbaren (durch ein Turingvollständiges Prozessmodell berechenbaren) Funktionen.
Turing, Church (u.a.) haben bewiesen, daß der λ-calculus bzw. Rekursionen
sowie Turing-äquivalente Maschinen (z.B. Registermaschinen)
Turing-vollständige Prozessmodelle sind.
Erweiterte Church’sche These
Jedes sinnvolle Prozessmodell kann effizient auf einem Standardmodell (Turing-Maschine, Registermaschine) simuliert werden. Effizient heißt, daß der Zeitverlust maximal polynomiell ist
Diese These ist für alle bekannten Prozessmodelle bewiesen.
Bernhard Nessler
Theoretische Informatik 1
Herunterladen