Verifizierung deines Untergangs (NTM und Verifizierer)

| Back to Overview

NTM

Eine NTM ist praktisch eine normale DTM nur anstatt Übergangsfunktion hat sie eine Übergangsrelation:

Δ((Q{q})×Γ)×(Q×Γ×{L,R,N})\Delta \subseteq ((Q \setminus \{\overline{q}\}) \times \Gamma) \times (Q \times \Gamma \times \{L,R, N\})

Heißt der im Hintergrund liegende Automat ist bei einer DTM eine DFA und bei einer NTM ein NFA. Heißt es gibt mehrere Möglichkeiten wie der Automat weiter gehen kann.

Ein Rechenweg ist obviously eine Folge von Konfigurationen des NFA.

Ein Berechnungsbaum ist ein Baum, der alle möglichen Rechenwege enthält. Wurzel: Start, Knoten: Konfigurationen. mit der maximalen Verzweigung d=max{Δ(q,a)qQ{q},aΓ}d = \max \{| \Delta(q,a)| \mid q \in Q \setminus \{\overline{q}\}, a \in \Gamma\}

Ein NTM akzeptiert eine Eingabe, falls mindestens ein Rechenweg akzeptiert.

Die worst case Laufzeit eines NTM ist die Maximum der kürzesten akzeptierenden Rechenwege für alle Eingaben.

Bei einem NP Beweis sagen wir häufig, dass eine NTM eine Lösung rät, indem es halt einfach den besten Rechenweg nimmt.

Verifizierer

NTM sind irgendwie blöd mit umzugehen, deswegen ist (finde ich) leichter mit einem Verifizierer zu arbeiten.

xL    y{0,1},yp(x):Vx \in L \iff \exists y \in \{0,1\}^*, |y| \le p(|x|): V akzeptiert y#xy\#x

Ein Zertifikat ist ein String y{0,1}y \in \{0,1\}^*, der häufig die Lösung eines Problems für eine bestimmte Eingabe xx kodiert. Die Länge von yy muss ebenfalls polynomiell Beschränkt sein. Bsp: y=4y = 4

Ein Polynomialzeitverifizier ist dann Algorithmus, der dann entscheidet ob ein Zertifikat yy für eine Eingabe xx korrekt ist. Problem x+xx+x y=4y = 4 und die Eingabe ist x=2x = 2 dann ist yy korrekt.