entscheidungsprobleme, reduktion, pcp
This commit is contained in:
		
							parent
							
								
									a265bc52e4
								
							
						
					
					
						commit
						de1801cc1f
					
				
							
								
								
									
										109
									
								
								00.md
									
									
									
									
									
								
							
							
						
						
									
										109
									
								
								00.md
									
									
									
									
									
								
							| @ -28,7 +28,7 @@ Nach **Church-Turing-*These***: Berechenbar $\implies$ Turing-Berechenbar | ||||
| - die ersten 4 sind müde (EEEP) → 3× endlich, 4. ist partiell. | ||||
| - $z_0 \in \text{Akzeptierende Zustände}$ ist valide, **Akzeptieren $\neq$ Halten** | ||||
| - Anfangszustand des Bands besteht aus Eingabealphabet und Blanks, kann von TM auf ganzes Arbeitsalphabet erweitert werden | ||||
| - Turing-Maschine **hält gdw. $\delta(\dots) = \perp$, also Undefiniert** | ||||
| - Turing-Maschine **hält gdw. $\delta(\dots) = \perp$ , also Undefiniert** | ||||
| - Ausgabe steht meist auf Band, `bool` können aber auch als "liegt letzter zustand in Akzeptierenden Zuständen?" dargestellt werden | ||||
| - $\delta : (\text{Zustandsmenge}, \text{Arbeitsalphabet}) \to (\text{Arbeitsalphabet}, \{ L, N, R \}, \text{Zustandsmenge})$ (Reihenfolge may be different, me didnt verify | TODO) | ||||
| 
 | ||||
| @ -53,7 +53,7 @@ Primitiv-Rekursiv = LOOP < GOTO = WHILE = TM = µ-Rekursiv | ||||
| 
 | ||||
| Syntax: | ||||
| 
 | ||||
| - $x_i := x_j \{+,-\} c$ (NOTE: $x_i := x_j + 0$ $4-6=0$, d.h. **saturating subtraction bei LOOP, WHILE, und GOTO**) | ||||
| - $x_i := x_j \{+,-\} c$ (NOTE: $x_i := x_j + 0$ $4-6=0$ , d.h. **saturating subtraction bei LOOP, WHILE, und GOTO**) | ||||
| - $P_1 ; P_2$ | ||||
| - $\text{LOOP } x_i \text{ DO } P \text{ END}$ | ||||
| - no $\text{IF}$ | ||||
| @ -75,13 +75,13 @@ Definition: | ||||
| - Projektionen $id(n) = n, id_1(n,m) = n, id_2(n,m) = m, \dots$ | ||||
| - Kompositionen $f(a, g(b))$ (ohne rekursion) | ||||
|   + PR-Aufgebaute Funktionen $f(a, b, c) = g(i(a), j(b))$ | ||||
| - **Rekursive Aufrufe** sind möglich, z.B.: $r(a, b, c) = r(a-1, b, c)$ (für $a > 0$) | ||||
| - **Rekursive Aufrufe** sind möglich, z.B.: $r(a, b, c) = r(a-1, b, c)$ (für $a > 0$ ) | ||||
|   + Dabei gibt es **einen** Basisfall $r(0, b, c) = g(b, c)$ für $a = 0$ | ||||
|   + und **einen** Rekursionsfall $r(a+1,b,c) = h(r(a, b, c), a, b, c)$, | ||||
|   + und **einen** Rekursionsfall $r(a+1,b,c) = h(r(a, b, c), a, b, c)$ , | ||||
|   + wobei man nur $g$ und $h$ selbst wählen kann, nicht deren Argumente (die sind gegeben wie oben, man kriegt *nur* den | ||||
|     rekursiven Wert für $r(a-1,b,c$)$ in $h$ und sonst keinen! Aber Eingaben dürfen weggelassen werden) | ||||
|     rekursiven Wert für $r(a-1,b,c)$ in $h$ und sonst keinen! Aber Eingaben dürfen weggelassen werden) | ||||
|   + wobei $g$ und $h$ Primitiv Rekursiv sein müssen | ||||
|   + *Wir* schreiben beim Rekursionsfall (damit man es nicht so leicht falsch machen kann) $r(a+1, b, c)$, wobei nur *ein* $+1$, und auch *nur* $+1$, erlaubt ist | ||||
|   + *Wir* schreiben beim Rekursionsfall (damit man es nicht so leicht falsch machen kann) $r(a+1, b, c)$ , wobei nur *ein* $+1$ , und auch *nur* $+1$ , erlaubt ist | ||||
|   + Beispiel: $add(0, x) = x, \quad add(y+1, x) = succ(add(y,x))$ ist als PR: $g(x) \; : \; g = id, \quad h(add(y,x), y, x) \; : \; h = succ \circ id_1$ | ||||
| 
 | ||||
| ES IST SO SKUFFED, MACH IMMER! EIN LOOP PROGRAMM | ||||
| @ -90,16 +90,16 @@ ES IST SO SKUFFED, MACH IMMER! EIN LOOP PROGRAMM | ||||
| 
 | ||||
| Zusatz zur Definition der Primitiv Rekursiven Funktionen: | ||||
| 
 | ||||
| $\mu f (a, b, c) = \min \{ n \vert f(n, a, b, c) = 0 \text{ und } f(m, a, b, c) \text{ definiert für alle } m < n \}$, \ | ||||
| d.h. probier alle $n \in \mathbb N_0$ in aufsteigender Reihenfolge bis $f(n, \dots) = 0$, dann return $n$, sonst keep searching. If $f(n, \dots) \neq 0$, dann ist $\mu f (\dots)$ undefiniert, also $\perp$ | ||||
| $\mu f (a, b, c) = \min \{ n \vert f(n, a, b, c) = 0 \text{ und } f(m, a, b, c) \text{ definiert für alle } m < n \}$ , \ | ||||
| d.h. probier alle $n \in \mathbb N_0$ in aufsteigender Reihenfolge bis $f(n, \dots) = 0$ , dann return $n$ , sonst keep searching. If $f(n, \dots) \neq 0$ , dann ist $\mu f (\dots)$ undefiniert, also $\perp$ | ||||
| 
 | ||||
| ## WHILE / GOTO | ||||
| 
 | ||||
| WHILE ist wie LOOP, aber statt LOOP | ||||
| mit $\text{WHILE } x_i \neq 0 \text{ DO } P \text{ END}$. | ||||
| mit $\text{WHILE } x_i \neq 0 \text{ DO } P \text{ END}$ . | ||||
| 
 | ||||
| GOTO ist wie LOOP, aber statt LOOP | ||||
| mit Sprüngen $\text{GOTO } M_i$ und $\text{IF } x_i = c \text{ THEN GOTO } M_i$, und der Stopanweisung $\text{HALT}$. | ||||
| mit Sprüngen $\text{GOTO } M_i$ und $\text{IF } x_i = c \text{ THEN GOTO } M_i$ , und der Stopanweisung $\text{HALT}$ . | ||||
| 
 | ||||
| Man kann jedes WHILE-Programm mit in eines mit nur *einem* WHILE-Loop umschreiben, \ | ||||
| und jedes GOTO-Programm in eines mit nur einem *Rück*sprung umschreiben. | ||||
| @ -108,4 +108,91 @@ und jedes GOTO-Programm in eines mit nur einem *Rück*sprung umschreiben. | ||||
| 
 | ||||
| ## Universelle TM | ||||
| 
 | ||||
| Es existieren Universelle TMs, Universelle WHILE- und GOTO-Programme, die jegliches WHILE-/GOTO-Programm ausführen können | ||||
| Es existieren Universelle TMs, Universelle WHILE- und GOTO-Programme, die jegliches WHILE-/GOTO-Programm ausführen können. | ||||
| 
 | ||||
| Das geht mit nur Primitiver Rekursion (z.B. LOOP) **nicht**! | ||||
| 
 | ||||
| # Entscheidungsprobleme | ||||
| 
 | ||||
| $\exists A, \overline A \in U$ und $x \in U$ . | ||||
| Frage: $x \in A$ ? (Wenn nicht, dann $x \in \overline A$ ). | ||||
| 
 | ||||
| - Ist $n \in \mathbb N$ gerade? ( $\text{EVEN} \subseteq \mathbb N$ ) | ||||
| - Ist die aussagenlogische Formel $F$ erfüllbar? ( $\text{SAT} \subseteq$ Menge aller aussagenlogischen Formeln) | ||||
| - Halteproblem $H$ : Hält die TM auf der Eingabe $x$ ? ( $H \subseteq$ Menge aller TMs und ihrer Eingaben) | ||||
|   + Halteproblem auf dem leeren Band $H_0$ , wie oben nur mit $x =$ leeres Band (ist auch nur semi-entscheidbar) | ||||
| 
 | ||||
| ## Entscheidbarkeit | ||||
| 
 | ||||
| Problem $P$ ist entscheidbar $\iff$ die Charakteristische Funktion $f$ existiert und ist berechenbar, | ||||
| mit $f = \begin{cases} 1, & x \in A, 0, & x \in \overline A \end{cases}$ | ||||
| 
 | ||||
| Entscheidbar $\iff$ Semi-Entscheidbar ( $x \in A \to 1, x \in \overline A \to 0$ oder $\perp$ ) und Co-Semi-Entscheidbar ( $x \in \overline A \to 0, x \in A \to 1$ oder $\perp$ ) | ||||
| 
 | ||||
| **→ $H$ ist nur Semi-Entscheidbar, nicht Entscheidbar**. | ||||
| 
 | ||||
| Gleiches gilt laut **Satz von Rice** für *jegliche* nichttriviale Eigenschaft von Algorithmen (TMs), | ||||
| also jedes Entscheidungsproblem $\emptyset \subset A \subset \text{Alle möglichen Turingmaschinen}$ ist *unentscheidbar* (*kann* aber semi-entscheidbar sein). | ||||
| <small><small>(bezogen auf Algorithmen, ohne inputs)</small></small> | ||||
| 
 | ||||
| ## Rekursiv Aufzählbar | ||||
| 
 | ||||
| $A$ ist rekursiv aufzählbar, wenn eine totale, berechenbare, *surjektive* (ganz $A$ abgedeckt) Funktion $f : \mathbb N \to A$ | ||||
| 
 | ||||
| ## Arithmetische Aussagen | ||||
| 
 | ||||
| $WA$ = Wahre Arithmetische Aussagen | ||||
| 
 | ||||
| $WA$ ist Unentscheidbar, und auch weder semi- noch co-semi-entscheidbar, da $WA$ Überabzählbar Unendlich ist. | ||||
| 
 | ||||
| # Reduktion | ||||
| 
 | ||||
| Seien $A, B \subseteq U$ zwei Entscheidungsprobleme. | ||||
| 
 | ||||
| Es ist $A$ auf $B$ reduzierbar, d.h. $A \preceq B$ , falls es eine Reduktion gibt: | ||||
| 
 | ||||
| Eine Reduktion ist eine totale, berechenbare Funktion $f : U \to U$ , sodass $x \in A \iff f(x) \in B$ | ||||
| 
 | ||||
| Falls $A \preceq B$ und $B$ entscheidbar (bzw. (co-)semi-entscheidbar), dann gilt das auch für $A$ . | ||||
| 
 | ||||
| $\to$ Wir reduzieren $A$ auf $B$ , $A \preceq B$ , und nehmen dann (mind.) die Entscheidbarkeit von $B$ auch für $A$ an. | ||||
| 
 | ||||
| Dabei gilt: | ||||
| 
 | ||||
| - $A$ entscheidbar $\iff$ $A$ semi- und co-semi-entscheidbar | ||||
| - $A$ semi-entscheidbar $\iff$ $\overline A$ co-semi-entscheidbar | ||||
| - aus $A \preceq B$ folgt: | ||||
|   + $A$ entscheidbar $\Leftarrow$ B entscheidbar | ||||
|     + und das gleiche mit (co-)semi-entscheidbar | ||||
|   + $A$ unentscheidbar $\implies$ B unentscheidbar | ||||
|     + und das gleiche mit (co-)semi-entscheidbar | ||||
| - $A \preceq B \land B \preceq C \implies A \preceq C$ | ||||
| 
 | ||||
| # PCP und MPCP | ||||
| 
 | ||||
| Not really gonna explain what PCP is. | ||||
| We add top to left string, bottom to right string, want them to be equal. | ||||
| 
 | ||||
| PCP ist nur semi-entscheidbar. | ||||
| 
 | ||||
| Beispiel: $\begin{pmatrix} \text{aa} \\ \text{b} \end{pmatrix}, \begin{pmatrix} \text{b} \\ \text{bb} \end{pmatrix}, \begin{pmatrix} \text{ba} \\ \text{a} \end{pmatrix}, \begin{pmatrix} \text{b} \\ \text{aa} \end{pmatrix}$ | ||||
| 
 | ||||
| Mögliche Lösungen: 23, 2413, 2323, 232413, $\dots$ | ||||
| 
 | ||||
| # P und NP | ||||
| 
 | ||||
| **P** (Polynomiell) ist die Menge der in Polynomieller Zeit von einer (deterministischen) Turing-Maschine entscheidbaren Probleme. | ||||
| 
 | ||||
| **NP** ist die Menge der in Polynomieller Zeit von einer *nicht-deterministischen* Turing-Maschine entscheidbaren Probleme. | ||||
| 
 | ||||
| ## NP-Hart | ||||
| 
 | ||||
| Mind. so schwer wie alle Probleme in NP | ||||
| 
 | ||||
| ## NP-Vollständig | ||||
| 
 | ||||
| Ein Problem ist NP-Vollständig, wenn es NP-Hart ist und in NP liegt. | ||||
| 
 | ||||
| SAT ist NP-Vollständig. | ||||
| 
 | ||||
| ## Polyzeit-Reduktion ( $\preceq_p$ ) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user