[TI] Introduction to automata

This commit is contained in:
2025-10-02 11:21:34 +02:00
parent ef1aff082f
commit b73c287341
6 changed files with 42 additions and 3 deletions

View File

@@ -0,0 +1,27 @@
\subsection{Darstellung}
Folgende Fragen müssen zur Definition eines Berechnungsmodells beantwortet werden:
\begin{enumerate}
\item Welche elementaren Operationen stehen zur Verfügung (um das Programm zusammenzustellen)?
\item Wie funktioniert der Speicher?
\item Wie funktioniert die Eingabe (und welches Alphabet verwendet sie)?
\item Wie funktioniert die Ausgabe (und welches Alphabet verwendet sie)?
\end{enumerate}
Endliche Automaten haben keinen Speicher, mit Ausnahme des Zeigers (can be understood similarly to a program counter)
Ein endlicher Automat mit dem Eingabealphabet $\Sigma = \{ a_1, \ldots, a_k \}$ darf nur den Operationstyp \texttt{select} verwenden.
\begin{align*}
\texttt{select } input & = a_1 \texttt{ goto } i_1 \\[-0.2cm]
\vdots \\
input & = a_k \texttt{ goto } i_k
\end{align*}
Alternativ, falls $|\Sigma| = 2$ (typischerweise für $\alphabets{bool}$), kann man statt \texttt{select} auch \texttt{if\dots then\dots else} nutzen.
Typischerweise werden solche Programme für Entscheidungsprobleme genutzt und die Checks sind dann:
\begin{align*}
\texttt{if } input = 1 \texttt{ then goto } i \texttt{ else goto } j
\end{align*}
Wir wählen eine Teilmenge $F \subseteq \{ 0, \ldots, m - 1 \}$, wobei $m$ die Anzahl Zeilen des Programms ist.
Ist die Zeile auf der das Programm endet ein Element von $F$, so akzeptiert das Programm die Eingabe.
Die Menge $F$ wird auch die \bi{vom Programm akzeptierte Sprache} genannt
%
Ein Programm $A$ arbeitet dann Buchstabe für Buchstabe das Eingabewort ab und springt so also kontinuierlich durch das Programm bis die Eingabe endet.
Mit formaleren Begriffen ist das Eingabewort als \bi{Band} dargestellt, welches von einem \bi{Lesekopf}, der sich nur nach links oder rechts bewegen kann gelesen wird und die gelesene Eingabe dann dem \bi{Programm} weitergibt.

Binary file not shown.

View File

@@ -52,13 +52,25 @@
\input{parts/combinatorics.tex} \input{parts/combinatorics.tex}
% ┌ ┐
% │ Alphabets │
% └ ┘
\newsection \newsection
\section{Alphabete, Wörter, Sprachen und Darstellung von Problemen} \section{Alphabete, Wörter, Sprachen und Darstellung von Problemen}
\input{parts/languages-problems/alphabet.tex} \stepcounter{subsection}
\input{parts/languages-problems/algorithmic-problems.tex} \input{parts/01_languages-problems/00_alphabet.tex}
\input{parts/languages-problems/kolmogorov-complexity.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}
\end{document} \end{document}