Optimierung & Operations Research |
Dozent: Florian Dahms, R 1-138
Referenzen
In diesem Kurs geht es um Methoden, mit denen wir schwierige Probleme optimal lösen können.
Anwendungen:
Voraussetzungen
Vektoren
\[ a = \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix} \in \mathbb{R}^3 \]
\[ a^T = \begin{bmatrix} 1 & 2 & 3 \end{bmatrix} \]
Punktprodukt
\[ a = \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix} \quad b = \begin{bmatrix} 4 \\ 5 \\ 6 \end{bmatrix} \]
\[ a \cdot b = a^T b = 1 \cdot 4 + 2 \cdot 5 + 3 \cdot 6 = 32 \]
Matrizen
\[ A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix} \in \mathbb{R}^{2 \times 3} \]
\[ A^T = \begin{bmatrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{bmatrix} \in \mathbb{R}^{3 \times 2} \]
Matrix-Vektor Produkt
\[ A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix} \quad b = \begin{bmatrix} 7 \\ 8 \\ 9 \end{bmatrix} \]
\[ A b = \begin{bmatrix} 1\cdot 7 + 2 \cdot 8 + 3 \cdot 9 \\ 4 \cdot 7 + 5 \cdot 8 + 6 \cdot 9 \end{bmatrix} = \begin{bmatrix} 50 \\ 122 \end{bmatrix} \]
Matrix-Matrix Produkt
\[ A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix} \in \mathbb{R}^{2 \times 3} \quad B = \begin{bmatrix} 7 & 10 \\ 8 & 11 \\ 9 & 12 \end{bmatrix} \in \mathbb{R}^{3 \times 2} \]
\[ A B = \begin{bmatrix} 1\cdot 7 + 2 \cdot 8 + 3 \cdot 9 & 1 \cdot 10 + 2 \cdot 11 + 3 \cdot 12 \\ 4 \cdot 7 + 5 \cdot 8 + 6 \cdot 9 & 4 \cdot 10 + 5 \cdot 11 + 6 \cdot 12 \end{bmatrix} \\= \begin{bmatrix} 50 & 68 \\ 122 & 167 \end{bmatrix} \in \mathbb{R}^{2 \times 2} \]
Es gilt $(A B)^T = B^T A^T$
Geschichte
Im 1. ersten Weltkrieg optimierte Großbritannien ihren Flotteneinsatz mit mathematischen Methoden, um den Verlust durch deutsche U-Boote zu minimieren.
Im 2. Weltkrieg wurde "Operations Research" zur eigenen Disziplin mit etwa 1000 beschäftigten Personen in Großbritannien.
Nach dem 2. Weltkrieg wurde viele der neuen Ansätze in der Industrie weiterverfolgt.
Im Rahmen der Vorlesung verwenden wir vor allem 3 Bibliotheken:
Lokale Python / Jupyter Installation:
Anaconda
In der Vorlesung wechseln wir immer wieder zwischen mathematischer Notation und Python Code
sum(i * x[i] for i in range(1, n + 1))
Achtung: Mathematiker starten Arrays bei 1,
Informatiker bei 0
sum((i+1) * x[i] for i in range(n))
Übungen in Jupyter
Bei mehr als 50% der Übungspunkte bekommt ihr 0.3 Notenpunkte Bonus auf die Prüfung.