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

Grafik Beziehungen wichtiger Komplexitätsklassen

Grafik

\(\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.

\(\underline{\textit{Polynomialzeitreduktion (mit Grafik)}}\)

Grafik

\(\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{Grafik:} \textit{GOTO, WHILE, TM und LOOP Zusammenhang}\)

Grafik

\(\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\)