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