Berechenbarkeit und Komplexität
Berechenbarkeit und Komplexität für Informatiker
Berechenbarkeit und Komplexität für Informatiker
Fichier Détails
Cartes-fiches | 76 |
---|---|
Langue | Deutsch |
Catégorie | Informatique |
Niveau | Université |
Crée / Actualisé | 07.02.2015 / 18.01.2022 |
Lien de web |
https://card2brain.ch/box/berechenbarkeit_und_komplexitaet_
|
Intégrer |
<iframe src="https://card2brain.ch/box/berechenbarkeit_und_komplexitaet_/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Was sind Platzschranken?
Eine nichtdeterministische Maschine mit Platzschranke \(f: \mathbb{N} \rightarrow \mathbb{N}\) besitzt keinen Algorithmus, die auf Eingabe der Länge \(n \geq 0\) mehr als \(f(n)\) Felder des Bandes benutzt. Für alle Platzschranken gilt \(f \in \Omega(log(n))\)
Was sind Zeitschranken?
Eine nichtdeterministische Maschine mit Zeitschranke \(f: \mathbb{N} \rightarrow \mathbb{N}\) besitzt keinen Algorithmus, die auf Eingabe der Länge \(n \geq 0\)mehr als \(f(n)\) Rechenschritte machen kann, bevor das Band hält. Es sind auch \(n+1\) Zeitschritte erlaubt, um zu erkennen, wann das Band endet
Welche Platzklassen gibt es?
\(\textbf{DSPACE}(f)\) und \(\textbf{NSPACE}(f)\) für \(f \in \Omega(log(n))\)
Welche Zeitklassen gibt es?
\(\textbf{DTIME}(f) \) und \(\textbf{NTIME}(f) \) für \(f(n) \geq n \ ; \forall n\)
\(\underline{\textbf{DTIME(t)}}\)
\(L \subseteq \Sigma^*\)| es existiert eine determenistische Turingmaschine \(M\) mit \(L=L(M)\), die auf allen Eingaben der Länge \(n\) nach höchstens \(max \{ t(n),n+1 \}\)Schritten hält.
\(\underline{\textbf{NTIME(t)}}\)
\(L \subseteq \Sigma^*\)| es existiert eine determenistische Turingmaschine \(M\) mit \(L=L(M)\), die auf allen Eingaben der Länge \(n\) und bei allen Rechnungen nach höchstens \(max \{ t(n),n+1 \}\)Schritten hält.
\(\underline{\textbf{DSPACE(s)}}\)
\(L \subseteq \Sigma^*\)| es existiert eine determenistische Turingmaschine \(M \)mit \(L=L(M)\), die auf allen Eingaben der Länge \(n\) höchstens \(s(n)\) Arbeitsbandfelder benötigt.
\(\underline{\textbf{NSPACE(s)}}\)
\(L \subseteq \Sigma^*\)| es existiert eine determenistische Turingmaschine \(M \)mit \(L=L(M)\), die auf allen Eingaben der Länge \(n\) bei allen Rechnungen höchstens \(s(n)\) Arbeitsbandfelder benötigt.
\(\underline{\textbf{Beispiele für DSPACE(log(n))}}\)
\( \{ a^nb^nc^n | n \geq 1 \} \\ \{ w\$ w | w \in \Sigma^* \} \)
Die Menge PRIMES mit PRIMES = \(\{ p \in 1 \{ 0,1 \} ^* | \ p \) ist Binärcodierung einer Primzahl
\(\underline{\textbf{Beispiele für Zeitkonstruierbarkeit}}\)
- Polynomfunktionen
- \(f(n)=2^{p(n)}\) und p ist Polynomfunktion
\(\underline{\textbf{Beispiele für Platzkonstruierbarkeit}}\)
\( \lceil log_a^k (n) \rceil , a \geq 2, k \geq 1 \\ \sqrt[5]{n} \)
\(\underline{\textbf{Zusammenhang zeit- und platzkonstruierbar}}\)
\(f \ ist \ zeitkonstruierbar \Rightarrow f \ ist \ platzkonstruierbar\)
\(\underline{\textbf{Satz von Hennie-Stearns }}\)
Sei \(\forall n : f(n) \geq n\) , dann gilt:
\(DTIME(f) \subseteq NTIME(f) \subseteq DSPACE(f) \)
Die Funktion \(f(n)=17n^3-6n^2+3n+23\)ist
Die Funktion \(f(n)=2^{2^n}\) ist
Gebräuchliche Abkürzung für DSPACE, NSPACE, DTIME, NTIME
\(\textbf{L}=\textbf{DSPACE}(log(n)) \\ \textbf{NL}=\textbf{NSPACE}(log(n)) \\ \textbf{P}=\bigcup_{k \geq 1} \textbf{DTIME}(n^k) \\ \textbf{NP}=\bigcup_{k \geq 1} \textbf{NTIME}(n^k) \\ \textbf{PSPACE}=\bigcup_{k \geq 1} \textbf{DSPACE}(n^k) = \bigcup_{k \geq 1} \textbf{NSPACE}(n^k) \)
Welche Varianten algorithmischer Probleme gibt es?
- Entscheidungsvariante
- Berechnungsvariante
- Optimierungsvariante
\(\underline{\textit{Der Satz von Savitch}}\)
Sei \(s \in \Omega(log(n))\). Dann gilt:
\(\textbf{NSPACE}(s) \subseteq \textbf{DSPACE}(s^2) \)
\(\underline{\textit{Determenistischer Platzhierarchiesatz}}\)
Seien \(s_1, s_2: \mathbb{N} \rightarrow \mathbb{N} \) Funktionen, \(s_1 \notin \Omega (s_2), s_2 \in \Omega(log(n)) \) und \(s_2\) sei platzkonstruierbar. Dann gilt \(\textbf{DSPACE}(s_2) \backslash \textbf{DSPACE}(s_1) \neq \emptyset\) .
Alternativ:
\(\textbf{DSPACE}(f(n)) \subsetneq \textbf{DSPACE}(f(n) \cdot log(f(n)))\)
\(\underline{\textit{Deterministischer Zeithierarchiesatz}}\)
Seien \(t_1, t_2: \mathbb{N} \rightarrow \mathbb{N}\) Funktionen, \(t_1 \cdot log(t_1) \notin \Omega(t_2), \ t_2 \in \Omega(n \ log(n))\)und \(t_2\) sei zeitkonstruierbar. Dann gilt \(\textbf{DTIME}(t_2) \backslash \textbf{DTIME}(t_1) \neq \emptyset \).
Alternativ:
\(\textbf{DTIME}(f(n)) \subsetneq \textbf{DTIME}(f(n) \cdot log^2(f(n)))\)
\(\underline{\textit{Satz von Borodin}}\)
Sei r eine totale, berechenbare Funktion, \(r(n) \geq n\) für alle \(n\). Dann existiert effektiv eine totale, berechenbare Funktion \(s: \mathbb{N} \rightarrow \mathbb{N}\) mit der Eigenschaft \(s(n) \geq n+1\) für alle \(n\) und
\(\textbf{DTIME}(s) = \textbf{DTIME}(r \circ s)\).
\(\underline{\textit{Satz von Szelepcsenyi und Immerman}}\)
Sei \(f \in \Omega (log(n))\) dann gilt
\(\textbf{NSPACE}(f)=\textbf{CoNSPACE}(f)\)
\(\underline{\textit{Die Translationstechnik}}\)
Sei \(L \subseteq \Sigma^*\)eine Sprache, \(f:\mathbb{N} \rightarrow \mathbb{N}\) eine Funktion mit \(f(n) \geq n\) für alle \(n \geq 0\) und sei \(\$ \notin \Sigma\) ein neues Symbol. Definiere eine Sprache \(Pad_f(L)\) über dem erweiterten Alphabet \(\Sigma \cup \{ \$ \}\) durch
\(Pad_f (L) = \{w \$ ^{f(\vert w \vert)- \vert w \vert } \vert w \in L \}\).
Man beachte, dass auf diese Weise jedem Wort aus \(L\) mit Länge \(n\) ein Wort aus \(w\$^*\) der Länge \(f(n)\) zugeordnet wird.
\(\textit{Polynomialzeitreduktion}\)
Seien \(L \subseteq \Sigma^*\) und \(L' \subseteq \Sigma'^*\) zwei (Entscheidungs-)Probleme. Unter einer Reduktion des Problems \(L\) auf das Problem \(L'\) verstehen wir eine totale und berechenbare Abbildung \(f: \Sigma^* \rightarrow \Sigma'^*\) mit der Eigenschaft \(x \in L \Leftrightarrow f(x) \in L'\).
\(Was \ ist \ berechenbar?\)
Eine (evtl. partielle Funktion) \(f\colon \mathbb{N}^k \rightarrow \mathbb{N}\) ist berechenbar falls es ein Rechenverfahren bzw. Algorithmus gibt, das \(f\) berechnet, d.h. gestartet mit \( \mathbb{N}^k\) als Eingabe soll der Algorithmus nach endlich vielen Schritten mit der Ausgabe \(f(n_1, ..., n_k) \) stoppen
Was besagt die Churchsche These?
Die durch die formale Definition der Berechenbarkeit (Turing-, Loop-, While, GOTO, \( \mu \)-Rekursivität) erfasste Klasse von Funktionen stimmt genau mit der Klasse der im intuitiven Sinne berechenbaren Funktionen überein
Für die Berechenbarkeit gilt...
... dass ein Algorithmus existiert. Man muss ihn nicht explizit angeben.
Gilt für jede reelle Zahl r, das die zugeordnete Funktion \(f_r\) berechenbar ist?
Nein, denn es gibt überabzählbar viele reelle Zahlen, aber nur abzählbar viele Rechenverfahren. Je zwei verschiedene reelle Zahlen müssten dann zwei verschiedenen Rechenverfahren zugeordnet werden.
\(\underline{\textbf{Gödelscher Unvollständigkeitssatz}}\)
Jedes Beweissystem, durch das nur wahre arithmetische Aussagen beweisbar sind, ist notwendigerweise unvollständig.
\(\underline{Definition \ LOOP-Programm}\)
Eine Funktion \(f : \mathbb{N}^k \rightarrow \mathbb{N} \) heißt LOOP-berechenbar, falls es ein LOOP-Programm P gibt, das \(f\) in dem Sinne berechnet, dass P, gestartet mit \(n_1, \ ... \ , \ n_k \) in den Variablen \( x_1, ... , \ x_k \) (und 0 in den restlichen Variablen) stoppt mit dem Wert \(f(n_1, \ ... \ , \ n_k) \) in der Variablen \( x_0\).
\(\underline{Definition}\ von \ \textit{WHILE-Berechenbarkeit}\)
Eine Funktion \(f: \mathbb{N}^k \rightarrow \mathbb{N} \) heißt WHILE-berechenbar, falls es ein WHILE-Programm \(P\) gibt, das \(f\)in dem Sinne berechnet, dass \(P\), gestartet mit \(n_1,...,n_k\) in den Variablen \(x_1,...,x_k\) (und 0 in den restlichen Variablen) stoppt mit dem Wert \(f(n_1,...,n_k)\) in der Variablen \(x_0\) - sofern \(f(n_1,...,n_k)\) definiert ist, ansonsten stoppt \(P\) nicht.
\(\underline{Satz:} \textit{Kleenesche Normalform für WHILE-Programme}\)
Jede WHILE-berechenbare Funktion kann durch ein WHILE-Programm mit nur einer WHILE-Schleife berechnet werden.
Eine Mehrband-Turingmaschine kann auf \( k \ge 1\) vielen Bändern unabhängig voneinander operieren, d.h. ...
sie hat \(k\) Schreib-Leseköpfe, die in jedem Schritt lesen, schreiben und sich unabhängig voneinader bewegen können. Sie besitzt nicht mehr "Berechnungskraft" als das Einfach-Modell.
\(\underline{\textit{Satz zu Mehrband-Turingmaschinen}}\)
Zu jeder Mehrband-Turingmaschine M gibt es einen (Einband)Turingmaschine M' mit T(M) = T(M') bzw. so dass M' dieselbe Funktion berechnet wie M.
Sind alle LOOP-Programme total?
Ja, denn jedes Programm stoppt zwangsläufig nach endlicher Zeit.
Sind alle totalen und intuitiven Funktionen LOOP-berechenbar?
Nein, die Ackermannfunktion ist total und berechenbar, aber nicht LOOP berechenbar.
Wie konstruiert man IF-THEN-ELSE durch ein LOOP-Programm?
\( IF \ x = 0 \ THEN \ A \ END\)
\(y:=1; \\ LOOP \ x \ DO \ y:=0 \ END; \\ LOOP \ y \ DO \ A \ END\)