24.04.2009| Optimierung in dynamischer Umgebung| 17
S p ra c h b e s c h re ib u n g e n u n d M a s c h in e n
Formal ist ein nichtdeterministischer endlicher Automat (NEA) (ohne ε-Übergänge) ein 5-Tupel Def:Ein (nichtdeterministischer) endlicher Automat (NFA) ist ein 5-Tupel (Q,Σ,δ,q 0,F), wobei Qeine endliche Menge von Zuständen ist, Σein endliches Alphabet δ: Q×Σ→2Q die Übergangsfunktion, q 0der Startzustand und F⊆Qdie Menge akzeptierender Endzustände. q 0q 3q 1 10,1 0q 2
0,1 0
0 1 q 0{q 0,q 1} {q 0} q 1-{q 2} q 2 {q 3} - q 3{q 3} {q 3}
Bsp.:
24.04.2009| Optimierung in dynamischer Umgebung| 18
S p ra c h b e s c h re ib u n g e n u n d M a s c h in e n
Satz: Sei N ein NFA und L = L(N). Dann gibt es einen DFA A mit L(A) = L Beweis: Sei N = (Q,∑,δ,q 0,F). Die folgende Konstruktion heißt auch “Potenzmengenkonstruktion”. Um A = (Q’,∑,δ‘,q’ 0,F’) zu definieren setzen wir: Q’= 2Q q’ 0= {q 0} F’= {R∈Q’| R ∩F ≠{} } δ‘(R,a) =∪
δ(r,a) = {q∈Q | es gibt ein r∈R mit q∈δ(r,a)} Dann gilt: w∈L(N) ⇔δ(q 0,w) ∩F≠{} ⇔δ(q‘ 0,w) ∈F‘ ⇔w∈L(A) Hierbei bedeutet δ(q,w), dass die Übergangsfunktionδmehrfach auf das Wort w angwendet wird, Buchstabe für Buchstabe und startend bei Zustand q.r∈R
24.04.2009| Optimierung in dynamischer Umgebung| 19
S p ra c h b e s c h re ib u n g e n u n d M a s c h in e n
Die Frage, ob ein w∈Σ* ein Wort aus einer Sprache L⊆Σ* ist, kann unterschiedlich schwierig zu lösen sein –Bsp 2.: In einem sehr komplizierten Fall ist sie nicht entscheidbar: geg: Codierung einer Random Access Machine (RAM, das entspricht in etwa einem herkömmlicher Computer mit unendlich viel Speicher), sowie ein w∈Σ* Frage: Hält die RAM bei Eingabe w? “nicht entscheidbar”heisst: es gibt keinen Algorithmus, der alle Instanzen das Problem lösen kann. (faszinierende Nebeneffekte, Busy Beaver)24.04.2009| Optimierung in dynamischer Umgebung| 20
R a n d o m A c c e s s M a s c h in e n
Programm Eingabe e∈{0,1}* Befehls-Akkumulator zählerbc(0) Ausgabe a∈{0,1}*
c(1)c(2)c(4)c(3)...
24.04.2009| Optimierung in dynamischer Umgebung| 21
R a n d o m A c c e s s M a s c h in e n
Ein/Ausgabe readc(0) := head(e); e := e \head(e); b := b+1; falls |e| > 0 c(0) := EOF; b := b + 1; sonst writea := a c(0); b := b + 1; Arithmetik addxc(0) := c(0) + c(x); b := b + 1; subxc(0) := c(0) –c(x); b := b + 1; falls c(x) < c(0) c(0) := 0; b := b + 1; sonst caddxc(0) := c(0) + x; b := b + 1; csubxanalog: Operation mit Konstante c24.04.2009| Optimierung in dynamischer Umgebung| 22
R a n d o m A c c e s s M a s c h in e n
Sprünge gotojb := j; if(c(0) R i) then gotoj; b := , R∈{<,>,=,≤,≥} endProgramm hält Speicherzugriffe direkt loadxc(0) := c(x); b := b + 1; storexc(i) := c(0); b := b + 1; indirekt iloadxc(0) := c(c(x)); b := b + 1; istorexc(c(i)) := c(0); b := b + 1;j falls c(0) R i b+1 sonst
24.04.2009| Optimierung in dynamischer Umgebung| 23
T u ri n g m a s c h in e n
Formal ist eine (1-Band) Turingmaschine ein 6-Tupel Def:Eine (deterministischer 1-Band) Turingmaschine ist ein 6-Tupel (Q,Σ,Γ,δ,q 0,F), wobei Qeine endliche Menge von Zuständen ist, Σein endliches Alphabet Γ:= Σ⋃{B}, B das so genannte Blank-Symbol δ: Q×Γ→Q×Γ×{R,N,L}die (partielle) Übergangsfunktion, q 0der Startzustand und F⊆Qdie Menge akzeptierender Endzustände.24.04.2009| Optimierung in dynamischer Umgebung| 24
T u ri n g m a s c h in e n
010BBBB Aktueller Zustand E Weiter Zustände: {A,B,C,D,F} Endzustand: {F} Zustandsübergangstabelleδ„Schreib/Lese Kopf“ „Programm“: Falls die Turingmaschine im Zustandqist und das Zeichen aliest, dann gehe in den Zustandq‘, überschreibeadurcha‘, und bewege den Kopf nach rechts, links oder gar nicht. Schreibweise: δ(q,a)=(q‘,a‘,R)
24.04.2009| Optimierung in dynamischer Umgebung| 25
T u ri n g m a s c h in e n
Eine Mehrband-Turingmaschine ist ein 6-Tupel Def:Eine (deterministischer 1-Band) Turingmaschine ist ein 6-Tupel (Q,Σ,Γ,δ,q 0,F), wobei Qeine endliche Menge von Zuständen ist, Σein endliches Alphabet Γ:= Σ⋃{B}, B das so genannte Blank-Symbol δ: Q×Γk →Q×Γk ×{R,N,L}k die (partielle) Übergangsfunktion, q 0der Startzustand und F⊆Qdie Menge akzeptierender Endzustände.24.04.2009| Optimierung in dynamischer Umgebung| 26
T u ri n g m a s c h in e n C h u rc h -T u ri n g H y p o th e s e : D ie v o n j e g lic h e r M a s c h in e b e re c h e n b a re n F u n k ti o n e n s in d g e n a u d ie , d ie v o n T u ri n g m a s c h in e n b e re c h e n b a r s in d .
Theorem 1: RAM und Turingmaschine können sich gegenseitig simulieren. Theorem 2:
24.04.2009| Optimierung in dynamischer Umgebung| 27
T u ri n g m a s c h in e n
Def.: Zeit-und Platzkomplexität Sei M eine determistische Turingmaschine (DTM), die für jede Eingabe hält. Zeitkomplexität: T M(x) := #Schritte, die M mit Eingabe x ausführt. Platzkomplexität: S M(x) := # verschiedener Speicherzellen, die der Kopf von M bei Eingabe x besucht. T M(n) = max{T M(x) | x∈∑≤n } Seien t,s: ℕ→ℕAbbildungen. Dann ist M t(n)-zeitbeschränkt und s(n)-platzbeschränkt, falls T M(n) ≤t(n) und S M(n) ≤s(n) für alle n∈ℕ.24.04.2009| Optimierung in dynamischer Umgebung| 28
T u ri n g m a s c h in e n
Wir sagen: „asympototisch wächst f nicht stärker als g“, genau dann, wenn ∃k > 0, n 0> 0∀n > n 0: f(n) ≤k*g(n) Man schreibt zudem auchf(n) ∈O(g(n)), d.h. f(n) ∈{ h: ℕ→ℕ| ∃k > 0, n 0> 0∀n > n 0: f(n) ≤k*g(n) } Satz: Jede t(n)-zeit, und s(n)-platzbeschränkte k-Band-DTM kann durch eine O(t(n)*s(n)) zeit-und O(s(n)) platzbeschränkte 1-Band DTM simuliert werden. Satz: Jede t(n)-zeitbeschränkte RAM kann durch eine O(t(n)3 ) zeitbe- schränkte DTM simuliert werden. (ohne Beweis)24.04.2009| Optimierung in dynamischer Umgebung| 29