\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.