\documentclass{article} \input{~/projects/latex/dist/full.tex} \setLang{de} \setup{Theoretische Informatik} \newcommand{\hdelta}{\hat{\delta}} \newcommand{\qacc}{q_{\text{accept}}} \newcommand{\qrej}{q_{\text{reject}}} \newcommand{\ldiag}{L_{\text{diag}}} \newcommand{\lempty}{L_{\text{empty}}} \renewcommand{\tc}{\text{Time}} \newcommand{\spc}{\text{Space}} \usetikzlibrary{automata, positioning, arrows.meta} \begin{document} \startDocument \usetcolorboxes \vspace{1cm} \begin{center} \begin{tikzpicture}[node distance = 1cm and 2cm, >={Stealth[round]}] \node[state, initial left, accepting] (q0p0) {$q_0, p_0$}; \node[state] (q0p1) [right=of q0p0] {$q_0, p_1$}; \node[state] (q0p2) [right=of q0p1] {$q_0, p_2$}; \node[state, accepting] (q1p0) [below=of q0p0] {$q_1, p_0$}; \node[state] (q1p1) [right=of q1p0] {$q_1, p_1$}; \node[state] (q1p2) [right=of q1p1] {$q_1, p_2$}; \node[state, accepting] (q2p0) [below=of q1p0] {$q_2, p_0$}; \node[state, accepting] (q2p1) [right=of q2p0] {$q_2, p_1$}; \node[state, accepting] (q2p2) [right=of q2p1] {$q_2, p_2$}; \path[->] % Level 0 (q0p0) edge node [above] {a} (q0p1) (q0p1) edge node [above] {a} (q0p2) (q0p2) edge [bend right] node [above] {a} (q0p0) % Level 0 to level 1 (q0p0) edge node [right] {b} (q1p0) (q0p1) edge node [right] {b} (q1p1) (q0p2) edge node [right] {b} (q1p2) % Level 1 to level 2 (q1p0) edge node [above] {a} (q2p1) (q1p1) edge node [above] {a} (q2p2) (q1p2) edge node [right, xshift=0.3cm] {a} (q2p0) % Level 2 to level 1 (q2p0) edge node [right] {b} (q1p0) (q2p1) edge node [above left, yshift=0.1cm] {b} (q1p1) (q2p2) edge node [right] {b} (q1p2) % Level 2 (q2p0) edge node [above] {a} (q2p1) (q2p1) edge node [above] {a} (q2p2) (q2p2) edge [bend left] node [below] {a} (q2p0) % ──────────────────────────────────────────────────────────────────── % Loops on level 1 (q1p0) edge [loop left] node {b} () (q1p1) edge [loop left] node {b} () (q1p2) edge [loop left] node {b} (); \end{tikzpicture} \end{center} \vspace{3cm} \begin{center} \begin{Large} ``\textit{Sie können also alle C Programme in Kanonischer Ordnung aufzählen. Sollten Sie dies tun? Wahrscheinlich nicht. Was aber zählt ist, sie \textbf{können} es tun}'' \end{Large} \hspace{3cm} - Prof. Dr. Dennis Komm, 2025 \end{center} \vspace{3cm} \begin{center} HS2025, ETHZ\\[0.2cm] \begin{Large} Summary of the book \color{MidnightBlue}\fbox{\href{https://link.springer.com/book/10.1007/978-3-658-06433-4}{Theoretische Informatik}}\color{black} \end{Large}\\[0.2cm] by Prof. Dr. Juraj Hromkovic \end{center} \newpage \printtoc{Orange} \begin{scriptsize} \begin{itemize} \item \textit{Note: Definitions, Lemmas, etc are often 1:1 copies from the book or paraphrased (as I did not find an easier way of stating them)} \item \textit{Note: In case I forgot to add the PDF page numbers, the PDF page number is given by $P_{\text{PDF}} = P_{\text{Book}} + 15$} \end{itemize} \end{scriptsize} \newpage % Combinatorics \input{parts/combinatorics.tex} % ┌ ┐ % │ Alphabets │ % └ ┘ \newsection \section{Alphabete, Wörter, Sprachen und Darstellung von Problemen} \stepcounter{subsection} \input{parts/01_languages-problems/00_alphabet.tex} \input{parts/01_languages-problems/01_algorithmic-problems.tex} \input{parts/01_languages-problems/02_kolmogorov-complexity.tex} % ──────────────────────────────────────────────────────────────────── % ┌ ┐ % │ Automata │ % └ ┘ \newsection \section{Endliche Automaten} \stepcounter{subsection} \input{parts/02_finite-automata/00_representation.tex} \input{parts/02_finite-automata/01_simulations.tex} \input{parts/02_finite-automata/02_proofs-of-nonexistance.tex} \input{parts/02_finite-automata/03_non-determinism.tex} \newsection \section{Turing-Maschinen} \setcounter{subsection}{2} \input{parts/03_turing_machines/00_intro.tex} \input{parts/03_turing_machines/01_multi-band-church-thesis.tex} \input{parts/03_turing_machines/02_non-deterministic.tex} \newsection \section{Berechenbarkeit} \stepcounter{subsection} \input{parts/04_computability/00_intro.tex} \input{parts/04_computability/01_reduction.tex} \input{parts/04_computability/02_rice.tex} \input{parts/04_computability/03_kolmogorov.tex} \newsection \section{Komplexitätstheorie} \stepcounter{subsection} \input{parts/05_complexity/00_intro.tex} \input{parts/05_complexity/01_class_p.tex} \input{parts/05_complexity/02_non-deterministic-complexity.tex} \input{parts/05_complexity/03_class-np.tex} \input{parts/05_complexity/04_np-completeness.tex} \newsection \section{Grammatiken} \stepcounter{subsection} \input{parts/06_grammars/00_intro.tex} \end{document}