Registermaschine: LOAD/STORE
⊂
Turingmaschine: π = (π, Σ, Γ, π΅, π0 , πΉ, πΏ). Zustandsmenge, Eingabealphabet, Bandalphabet Σ Γ,
≠
B=Blank, Startzustand, akzeptierende Endzustände, Zustandsüberführungsfunktion (π × Γ → π ×
Γ × {πΏ, π
, π})
NTM: π × Γ → π«(π × Γ × {πΏ, π
, π}) ( -> Menge). T(x) kürzeste akz.Rechnung wenn M x akz, sonst 1.
TM simuliert NTM: 2π(π‘(π)) − π§πππ‘ π(π (π) π‘(π)) − ππππ‘π§
Konfiguration π ∈ Γ ∗ × π × Γ ∗ Zustand, Bandinhalt und Kopfposition zu Zeitpunkt t
Kellerautomat: NPDA = (States Q, Eingabealphabet Σ, Kelleralphabet Γ, Überführungsfunktion δ,
Startzustand z0, Kellergrundsymbol Z0, akzeptierende Zustände F)
M akzeptiert L wenn M für jedes x auf L in endl. Schritten in Endzustand übergeht.
L ist rekursiv aufzählbar wenn es eine TM M gibt, die L akzeptiert.
M entscheidet L wenn M jedes x aus L akzeptiert und für alle y aus Kompl. L hält.
L ist entscheidbar wenn es eine TM M gibt, die L entscheidet.
Church-Turing-These: Die im intuitiven Sinn berechenbaren Funktionen sind genau die, die durch
Turingmaschinen berechenbar sind.
Halteproblem (allgemein): H = {<M>w | M ist eine det. 1-Band-TM, die gestartet mit w hält }
Nicht entscheidbar: Eingabe y, Falls y = <M>: MH ? <M> e H, ja: Endlosschleife, nein: halte
Rekursiv aufzählbar:
Halteproblem (initialies): Hε = {<M> | M ist det. 1-B-TM, die gestartet mit ε hält
Reduktion: Ist eine total berechenbare Fkt f: {0,1}*->{0,1}* für die gilt: x e L1 <=> f(x) e L 2... L1 <= L2
Sprachen:
Grammatik
Typ0: beliebig
Sprache
Rekursiv
aufzählbar
Automat
TM
Produktion
Abgeschlossen
Not
πΌ→π½
πΏ∗ , πΏ ⋅ πΏ,∪,∩
πΏΜ
∗
∗
πΌ ∈ π ππ
π½ ∈ π∗
Typ1:
Kontextsensitiv NTM lin s(n)
πΌπ΄π½ → πΌπΎπ½
∪,∩, πΏ ⋅ πΏ, πΏΜ
, πΏ∗
∗
π΄ ∈ π, πΌπ½ ∈ π
kontextsensitiv
πΎ ∈ π+
Typ2: kontextfrei Kontextfrei
N Stack PDA
π΄→πΎ
∪, πΏπ
, πΏ ⋅ πΏ, πΏ∗ , πΏ ∩, πΏΜ
∗
π΄ ∈ π, πΎ ∈ π
∩ πΏπππ
Typ3: regulär
regulär
DFA / NFA
π→π
∪,∩, πΏΜ
, πΏ ⋅ πΏ, πΏ∗
π΄ → ππ΅ ∨ π΄ → π΅π
=(Q,Σ,δ,q0,F)
π΄ → π, π΄ → π
π΄, π΅ ∈ π, π ∈ Σ
Grammatik: Tupel (V Varaiblen, Σ Alphabet Terminalen, S Startsymbol, P Menge von Produktionen)
Satz von Rice: Es ist nicht möglich irgendeinen nichttrivialen Aspekt des funktionalen Verhaltens einer
TM algorithmisch zu entscheiden. π ⊆ (π
= {π|π: {0,1}∗ → {0,1}∗ πππππβπππππ})πππ‘ ∅ ≠ π ≠
π
. ππππ(π)ππ π‘ πππβπ‘ πππ‘π πβππππππ.
DTIME(t(n)) = { L| es ex. Eine det . TM die L entscheidet }
NTIME(t(n)) = { L | es ex. NTM die L entscheidet }
CLIQUE = { <G,k> | G ist Graph der vollständigen Teilgraph der Größe k enthält } [NP-vollst]
Hammilton-Kreis: HC = { <G> | G enthält Hamilton-Kreis } (Graph, der jeden Knoten einmal enthält
Traveling-Salesperson: TSP = { <G,c,k> | Graph H mit Kantengewichtsfunktion c hat einen HamiltonKreis mit Gewicht <= k }
Vertex Cover: VC = {<G,k> | G hat Knotenüberdeckung der Größe k } [NP-vollst]
Polynomiell reduzierbar: L1<=L2, Laufzeit für Berechnung von f(x) ist O(|x|^k), k e N
NP-schwer: L ist np-schwer wenn ∀π ′ ∈ ππ: πΏ′ ≤π πΏ
NP-vollständig: πΏ ∈ ππ, πΏ ππ π‘ ππ − π πβπ€ππ
Satz von Cook:
Variable: x1..xn, Literal: x –x, Klausel der Länge n: n veroderte Literale, Ausdruck (KNF): Verundete
Klauseln. Size(Φ) = Unds + Oders.
Belegung: Abbildung c: V -> {true, false}, c(Φ) = Auswertung des Ausdrucks.
Eine KND heißt erfüllbar wenn es eine Belegung c gibt, so dass c(Φ)=true
Erfüllbarkeitsproblem (Statisfiability Prob) SAT = {<Φ> | Φ ist eine erfüllbare KNF } [NP-vollständig]
3SAT = {< Φ >| Φ ist KNF, jede Klausel hat 3 Literale aus 3 versch Variablen, Φ ist erfüllbar }
Binary Programming BP = {<A,b>|A e Mn,m(Z)*,b e Zn, Ex. y e {0,1}n : Ay <= b}
DFA – Äquivalenz von Zuständen: Zustände q, q‘ sind äquivalent wenn für alle Wörter w gilt:
d(q,w) e F <=> d(q‘, w) e F
NEQ
1. Paare mit einem akzeptierenden Zustand markieren
2. Solange noch ein Paar (pq) und ein Zeichen a sodass (d(p,a), d(q,a)) markiert ist, markiere
(pq).
NFA -> DFA
1. Potenzmenge der Zustände hinschreiben + Zustand für leere Menge
2. Kanten eintragen.
Rijk (DFA -> Regex)
π
π
ππ
= {π₯ ∈ Σ ∗ |πΏ(ππ , π₯) = ππ π’ππ ππππ ππβπ‘ππ ππ€ππ πβπππ§π’π π‘πππ βππ‘ πΌππππ₯ > π}
∗
π+1
π
π
π
π
π
ππ
= π
ππ
∪ π
π,π+1
(π
π+1,π+1
) π
π+1,π
Reguläre Pump-Eigenschaft: L hat RPE falls gilt: ∃π ∈ π ∀π§ ∈ πΏ, |π§| ≥ π ∃π’, π£, π€ ∈ Σ∗ , π§ = π’π£π€ mit
1. |π’π£| ≤ π 2. |π£| ≥ 1 3. ∀π ≥ 0: π’π£ π π€ ∈ πΏ
L ist reg. => L hat reg. PE. Nicht andersrum!
Kontextfreie Pump-Eigenschaft: L hat KFPE falls gilt: ∃π ∈ β ∀π§ ∈ πΏ, |π§| ≥ ππΏ ∃π’, π£, π€, π₯, π¦, π§ =
π’π£π€π₯π¦: 1. |π£π₯| ≥ 1 2. |π£π€π₯| ≤ π 3. ∀π ≥ 0: π’π£ π π€π₯ π π¦ ∈ πΏ
Grammatik beweisen:
⊇: „Jedes Wort in L kann durch meinen Grammatik erzeugt werden“: Regelfolgen anwenden
⊆: „Meine Grammatik kann nur Wörter in L erzeugen“: n’s zählen etc