84 lines
2.3 KiB
TeX
84 lines
2.3 KiB
TeX
\section{Algorithmen}
|
|
|
|
\subsection{Teilsummenproblem}
|
|
|
|
Ist ein NP-vollständiges Problem.
|
|
|
|
Jede Zahl darf nur einmal verwendet werden.
|
|
In der Summe muss eine bestimmte Zahl erreicht werden.
|
|
|
|
\subsection{3-SAT Problem}
|
|
|
|
Ist ein NP-vollständiges Problem.
|
|
|
|
Finden einer Belegung an Variablen, sodass eine Formel erfüllt wird.
|
|
|
|
Die Formel hat die Form:
|
|
|
|
\[
|
|
(x_1 \lor x_2 \lor x_3) \land (x_4 \lor x_5 \lor x_6) \land \ldots
|
|
\]
|
|
|
|
\subsubsection{Umwandlung in Teilsummenproblem}
|
|
|
|
Zielzahl:
|
|
\[
|
|
1 \dots 1 \ 4 \dots 4
|
|
\]
|
|
mit $1$ für jede Variable und $4$ für jede Klausel (Klammer).
|
|
|
|
Zahlen aus denen die Summe gebildet wird:
|
|
|
|
\textbf{1. Teil}: 1 an der Stelle der Variable, 0 ansonsten
|
|
|
|
\textbf{2. Teil}: 1 an der Stelle an der Die Variable in der Klausen positiv/negativ vorkommt, 0 ansonsten
|
|
|
|
\begin{tabular}{c | l | l}
|
|
Variable & positive Belegung & negative Belegung \\
|
|
& (1er wenn positiv) & (1er wenn negativ) \\
|
|
\hline
|
|
$x_1$ & $0 \dots 001 \ pos_1 \dots pos_n$ & $0 \dots 001 \ neg_1 \dots neg_n$ \\
|
|
$x_2$ & $0 \dots 010 \ pos_1 \dots pos_n$ & $0 \dots 010 \ neg_1 \dots neg_n$ \\
|
|
$x_3$ & $0 \dots 100 \ pos_1 \dots pos_n$ & $0 \dots 100 \ neg_1 \dots neg_n$ \\
|
|
\dots & \dots & \dots
|
|
\end{tabular}
|
|
|
|
\subsection{Programmablaufplan}
|
|
|
|
\subsubsection{Allgemeinheit}
|
|
Löst eine Klasse von Problemen.
|
|
|
|
\subsubsection{Ausführbarkeit}
|
|
Jeder Schritt ist ausführbar.
|
|
|
|
\subsubsection{Determinismus}
|
|
Jeder Schritt ist eindeutig, unabängig von Ein und Ausgaben.
|
|
|
|
\subsubsection{Determiniertheit}
|
|
Bei gleichen Eingaben, gleiche Ausgaben.
|
|
|
|
\subsubsection{Finitheit}
|
|
Beschreibung besitzt endliche Länge.
|
|
|
|
\subsubsection{Terminierung}
|
|
Die Ausführung endet bei einer endlichen Eingabe
|
|
|
|
\subsubsection{Dynamische Finitheit}
|
|
Beschränkter Resourcenverbrauch bei endlicher Eingabe.
|
|
|
|
\subsubsection{Komplexität}
|
|
Die Laufzeit / Resourcenverbrauch ist abschätzbar.
|
|
|
|
\subsection{Hoare-Kalkül}
|
|
|
|
\subsubsection{Vorbedingung}
|
|
Bedingung die vor der Ausführung der Zeile gelten muss.
|
|
|
|
\subsubsection{Nachbedingung}
|
|
Bedingung die nach der Ausführung der Zeile gelten muss.
|
|
|
|
\subsubsection{Schleifenbedingung}
|
|
Bedingung die vor jedem Schleifendurchlauf gelten muss.
|
|
|
|
\subsubsection{Schleifeninvariante}
|
|
Bedingung die vor und nach jedem Schleifendurchlauf gelten muss.
|