Optimization & Operations Research |
Instructor: Florian Dahms, R 1-138
References
This course is about methods with which we can solve difficult problems optimally.
Applications:
Prerequisites
Vectors
\[ a = \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix} \in \mathbb{R}^3 \]
\[ a^T = \begin{bmatrix} 1 & 2 & 3 \end{bmatrix} \]
Dot product
\[ 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 \]
Matrices
\[ 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-vector product
\[ 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 product
\[ 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} \]
It holds that \((A B)^T = B^T A^T\)
History
In the 1st World War, Britain optimized their fleet deployment with mathematical methods to minimize losses due to German submarines.
In the 2nd World War, "Operations Research" became its own discipline with about 1000 people employed in Britain.
After the 2nd World War, many of the new approaches were pursued further in the industry.
Within the context of the lecture, we primarily use 3 libraries:
Local Python / Jupyter Installation:
Anaconda
In the lecture, we continuously switch between mathematical notation and Python code
sum(i * x[i] for i in range(1, n + 1))
Note: Mathematicians start arrays at 1,
Computer Scientists at 0
sum((i+1) * x[i] for i in range(n))
Exercises in Jupyter
If you achieve more than 50% of the exercise points, you will receive a 0.3 grade point bonus on the exam.