mirror of
https://github.com/janishutz/eth-summaries.git
synced 2026-01-11 13:38:24 +00:00
111 lines
4.1 KiB
TeX
111 lines
4.1 KiB
TeX
\documentclass{article}
|
|
|
|
\input{~/projects/latex/dist/recommended.tex}
|
|
|
|
\usetikzlibrary{automata, positioning, arrows.meta}
|
|
\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}}
|
|
|
|
\setup{Theoretical Computer Science - Compact}
|
|
|
|
\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{2.5cm}
|
|
\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{2cm}
|
|
\begin{center}
|
|
HS2025, ETHZ\\[0.2cm]
|
|
\begin{Large}
|
|
Compact 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}
|
|
\section{Introduction}
|
|
This summary aims to provide a simple, easy to understand and short overview over the topics covered, with approaches for proofs, important theorems and lemmas,
|
|
as well as definitions.
|
|
|
|
It does not aim to serve as a full replacement for the book or my main summary, but as a supplement to both of them.
|
|
|
|
It also lacks some formalism and is only intended to give some intuition, six pages are really not enough for a formal and complete overview of the topic.
|
|
|
|
As general recommendations, try to substitute possibly ``weird'' definitions in multiple choice to see a definition from the book.
|
|
|
|
All content up to Chapter \ref{sec:reductions} is relevant for the midterm directly.
|
|
|
|
The content for the endterm exam as of HS2025 starts in Chapter \ref{sec:reductions}.
|
|
All prior content is still relevent to the extent that you need an understanding of the concepts treated there
|
|
|
|
|
|
|
|
\input{parts/01_words-alphabets.tex}
|
|
\input{parts/02_finite-automata.tex}
|
|
\input{parts/03_turing-machines.tex}
|
|
\input{parts/04_computability.tex}
|
|
\input{parts/05_complexity.tex}
|
|
\input{parts/06_grammars.tex}
|
|
|
|
|
|
|
|
\end{document}
|