diff --git a/latex b/latex index 4a98d7d..6c75936 160000 --- a/latex +++ b/latex @@ -1 +1 @@ -Subproject commit 4a98d7d3af358cc0a20bf9797fda643180f8135f +Subproject commit 6c75936b1872a110a86843b2ec0c25abed3f45f1 diff --git a/semester3/ti/parts/languages-problems/kolmogorov-complexity.tex b/semester3/ti/parts/languages-problems/kolmogorov-complexity.tex index 372b7da..98d9e66 100644 --- a/semester3/ti/parts/languages-problems/kolmogorov-complexity.tex +++ b/semester3/ti/parts/languages-problems/kolmogorov-complexity.tex @@ -12,7 +12,7 @@ Hier kommt die Kolmogorov-Komplexit zum Zuge: Sie bietet eine breit Gültige Def \begin{definition}[]{Kolmogorov-Komplexität} - Für jedes Wort $x \in \wordbool$ ist die \bi{Kolmogorov-Komplexität $K(x)$ des Wortes $x$} das Minimum der binären Längen der Pascal-Programme, die $x$ generieren. + Für jedes Wort $x \in \wordbool$ ist die \bi{Kolmogorov-Komplexität $K(x)$ des Wortes $x$} das Minimum der binären Längen der Pascal-Programme, die $x$ generieren. \end{definition} Hierbei ist mit der binären Länge die Anzahl Bits gemeint, die beim Übersetzen des Programms in einen vordefinierten Maschinencode entsteht. @@ -21,25 +21,35 @@ Ein Pascal-Programm in diesem Kurs ist zudem nicht zwingend ein Programm in der \begin{lemma}[]{Kolmogorov-Komplexität} - Für jedes Wort $x \in \wordbool$ existiert eine Konstante $d$ so dass $K(x) \leq |x| + d$ + Für jedes Wort $x \in \wordbool$ existiert eine Konstante $d$ so dass $K(x) \leq |x| + d$ \end{lemma} \inlineproof Für jedes $x \in \wordbool$ kann folgendes Programm $A_x$ verwendet werden: -\begin{minted}{pascal} -A_x: begin +\begin{code}{pascal} +$A_x$: begin write(x); end -\end{minted} +\end{code} Alle Teile, ausser $x$ sind dabei von konstanter Länge, also ist die Länge der Bit-repräsentation des Programms ausschliesslich von der binären Länge des Wortes $x$ abhängig. \proven -Für regelmässige Wörter gibt es natürlich Programme, bei denen das Wort nicht als komplette Variable vorkommt. +Für regelmässige Wörter gibt es natürlich Programme, bei denen das Wort nicht als komplette Variable vorkommt. Deshalb haben diese Wörter auch (meist) eine kleinere Kolmogorov-Komplexität. \fancydef{$K(n)$ für $n \in \N$} Die \bi{Kolmogorov-Komplexität einer natürlichen Zahl $n$} ist $K(n) = K(\text{Bin}(n))$, wobei $\text{Bin}(x) = \ceil{\log_2(x + 1)}$ % TODO: Verify correctness here -\inlinelemma Für jede Zahl $n \in \N - \{ 0 \}$ existiert ein Wort $w_n \in (\alphabets{bool})^n$ +\inlinelemma Für jede Zahl $n \in \N - \{ 0 \}$ existiert ein Wort $w_n \in (\alphabets{bool})^n$ so dass $K(w_n) \geq |w_n| = n$, oder in Worten, es existiert für jedes $n$ ein nicht komprimierbares Wort. + +Eine wichtige Eigenschaft der Kolmogorov-Komplexität ist, dass sie nicht wirklich von der gewählten Programmiersprache abhängt. +Man kann also beliebig auch \texttt{C++}, \texttt{Swift}, \texttt{Python}, \texttt{Java} oder welche auch immer, ohne dass die Kolmogorov-Komplexität um mehr als eine Konstante wächst (auch wenn diese bei \texttt{Java} sehr gross ist): + +\begin{theorem}[]{Unterschiedliche Programmiersprachen} + Für jede Programmiersprachen $A$ und $B$ existiert eine Konstante $c_{A,B}$, die nur von $A$ und $B$ abhängig ist, so dass für alle $x \in \wordbool$ gilt: + \begin{align*} + |K_A(x) - K_B(x)| \leq c_{A, B} + \end{align*} +\end{theorem} diff --git a/semester3/ti/ti-summary.pdf b/semester3/ti/ti-summary.pdf index 4e4e4a3..19b9414 100644 Binary files a/semester3/ti/ti-summary.pdf and b/semester3/ti/ti-summary.pdf differ diff --git a/semester3/ti/ti-summary.tex b/semester3/ti/ti-summary.tex index e8f6f59..f2817ff 100644 --- a/semester3/ti/ti-summary.tex +++ b/semester3/ti/ti-summary.tex @@ -1,6 +1,6 @@ \documentclass{article} -\newcommand{\dir}{~/projects/latex} +\newcommand{\dir}{../../latex} \input{\dir/include.tex} \load{full} \setLang{de}