add 00 (notes from monday)
This commit is contained in:
commit
a1d94bafae
105
00.md
Normal file
105
00.md
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
## Größenvergleiche zwischen Mengen
|
||||||
|
|
||||||
|
- $A \geq B \iff \exists f : A \to B \text{ mit } f \text{ surjektiv }$
|
||||||
|
- $A \leq B \iff \exists f : A \to B \text{ mit } f \text{ injektiv }$
|
||||||
|
- $A = B \iff \exists f : A \to B \text{ mit } f \text{ bijektiv }$
|
||||||
|
|
||||||
|
## Cantors Diagonalargument
|
||||||
|
|
||||||
|
## $\mathcal P(\mathbb N)$ ist überabzählbar, also $| \mathcal P(\mathbb N) | = | \mathbb R |$
|
||||||
|
|
||||||
|
# Berechenbarkeit
|
||||||
|
|
||||||
|
- Undefiniert (meist: hält nicht) = gibt keinen wert: $\perp$
|
||||||
|
- Nicht Berechenbar = gibt einen Wert aber keinen weg dorthin, wir wissen halt z.B. dass $x \in B$
|
||||||
|
- Partiell = mind. 1 eingabe undefiniert
|
||||||
|
- Nicht Berechenbar = mind. für 1 Eingabe ist die Ausgabe nicht berechenbar
|
||||||
|
|
||||||
|
# Turingmaschine
|
||||||
|
|
||||||
|
Gerne zeiger auf startposition zurückstellen
|
||||||
|
|
||||||
|
**Turing-Berechenbar** $\implies$ Berechenbar
|
||||||
|
|
||||||
|
Nach **Church-Turing-*These***: Berechenbar $\implies$ Turing-Berechenbar
|
||||||
|
|
||||||
|
**TM-Definition** immer aufschreiben: Septupel $(\text{Zustandsmenge}, \text{Eingabealphabet}, \text{Arbeitsalphabet}, \delta \text{funktion}, z_0, \square, \text{Akzeptierende Zustände})$
|
||||||
|
|
||||||
|
- 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**
|
||||||
|
- 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)
|
||||||
|
|
||||||
|
## Konfiguration
|
||||||
|
|
||||||
|
- Alphabets-Elemente links vom Zeiger + Aktueller Zustand + Elemente am und rechts vom Zeiger
|
||||||
|
+ bzw: Alphabets-Elemente links vom Zeiger + Aktueller Zustand + Zeigersymbol + Elemente rechts vom Zeiger
|
||||||
|
+ ignoriere blanks links/rechts vom "letzten" non-blank
|
||||||
|
|
||||||
|
## Gleichmächtige TMs
|
||||||
|
|
||||||
|
- Zweiband mit 1 oder 2 Zeiger(n)
|
||||||
|
- Nur Einseitig Unendlich
|
||||||
|
- Always-Moving (nur L und R, kein N)
|
||||||
|
- TM auf Eingabealphabet $\{ 0, 1 \}$
|
||||||
|
|
||||||
|
# Berechnungsmodelle
|
||||||
|
|
||||||
|
Primitiv-Rekursiv = LOOP < GOTO = WHILE = TM = µ-Rekursiv
|
||||||
|
|
||||||
|
## LOOP
|
||||||
|
|
||||||
|
Syntax:
|
||||||
|
|
||||||
|
- $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}$
|
||||||
|
|
||||||
|
jedes LOOP-programm berechnet eine **totale** funktion, d.h. es gibt kein $\perp$ (LOOP $\implies$ total)
|
||||||
|
|
||||||
|
Konventionen:
|
||||||
|
|
||||||
|
- Variablen sind by default $0$
|
||||||
|
- Eingaben sind $x_1, x_2, \dots$
|
||||||
|
- Ausgabe ist $x_0$
|
||||||
|
|
||||||
|
## Primitiv Rekursiv
|
||||||
|
|
||||||
|
Definition:
|
||||||
|
|
||||||
|
- Nullfunktion $null(n) = 0$
|
||||||
|
- Nachfolgerfunktion $succ(n) = n + 1$
|
||||||
|
- Projektionen $id(n) = 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, aber **nur**: $f(a, b, c) = f(a-1, b, c)$ (für $a > 0$)
|
||||||
|
+ Dabei gibt es Basisfall $g(b, c)$ für $a = 0$ und Rekursionsfall $h(f(a-1, b, c), a-1, b, c)$
|
||||||
|
|
||||||
|
ES IST SO SKUFFED DEFINIERT, MACH IMMER! EIN LOOP PROGRAMM
|
||||||
|
|
||||||
|
## µ-Rekursiv
|
||||||
|
|
||||||
|
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$
|
||||||
|
|
||||||
|
## WHILE / GOTO
|
||||||
|
|
||||||
|
WHILE ist wie LOOP, aber statt LOOP
|
||||||
|
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}$.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
µ-Rekursive (= WHILE/GOTO) Funktionen sind *nicht immer* total, können aber total sein.
|
||||||
|
|
||||||
|
## Universelle TM
|
||||||
|
|
||||||
|
Es existieren Universelle TMs, Universelle WHILE- und GOTO-Programme, die jegliches WHILE-/GOTO-Programm ausführen können
|
Loading…
x
Reference in New Issue
Block a user