diff --git a/übung_2/agt_übung_2.pdf b/übung_2/agt_übung_2.pdf index d0ddadf..879ae24 100644 Binary files a/übung_2/agt_übung_2.pdf and b/übung_2/agt_übung_2.pdf differ diff --git a/übung_2/aufgabe_2.tex b/übung_2/aufgabe_2.tex index d0e8cc4..7e69456 100644 --- a/übung_2/aufgabe_2.tex +++ b/übung_2/aufgabe_2.tex @@ -1 +1,96 @@ -\section{Straßenreparatur mittels Linearer Programmierung und Flüssen} \ No newline at end of file +% vim: ft=tex +\section{Straßenreparatur mittels Linearer Programmierung und Flüssen} +\begin{quote} +Gegeben sei ein ungerichteter Graph $G = \tup{V, E}$, der ein Verkehrsnetzwerk darstellt, +wobei jeder Knoten $v \in V$ eine Stadt repräsentiert und jede Kante $e = \set{u, v}$ eine Straße +zwischen den Städten $u$ und $v$. + +Die Straßen müssen erneuert werden. Dabei sind für jede Straße $e \in E$ Reparaturkosten + nötig, die durch eine Funktion $r: E \to~\RR_{\geq 0}$ gegeben sind. Zusätzlich hat jede Stadt $v \in V$ + nur ein begrenztes Budget, das durch eine Funktion $B: V \to \RR_{\geq 0}$ gegeben ist. +\end{quote} +\begin{tasks} +\item Seien $u_e, v_e \in \RR_{\geq 0}$ die Reparaturbeträge, die Stadt $u$ und $v$ für eine inzidente Straße + $e$ zahlen. Um $u_e, v_e$ zu erhalten gehen wir durch die Adjazenzliste und vermerken pro Kante die inzidenten Knoten. + Dann müssen wir folgendes lineares Programm lösen. + + Zielfunktion: + $$ + \argmax \sum_{e \in E} u_e + v_e + $$ + + Für alle $e \in E$ gilt + $$ + r(e) - (u_e + v_e) \leq 0 + $$ + Damit stellen wir sicher, dass die vollen Reparaturkosten bezahlt werden. + + Für alle $u \in V$ und zu $u$ inzidente Kanten $I$ gilt + $$ + \sum_{e \in I} u_e \leq B(u) + $$ + Damit stellen wir sicher, dass das Budget einer Stadt nicht überschritten wird. + + Wenn die Zielfunktion den Wert der Summe aller Reparaturkosten hat, haben + wir eine Lösung gefunden. + \points{3} + +\item Sei $x_e \in \set{0, 1}$ der Indikator, ob Stadt $x$ die Reparaturkosten der inzidenten Straße $e$ trägt. Dann müssen wir folgendes ganzahlig lineares Programm lösen. + + Zielfunktion: + $$ + \argmax \sum_{e \in E} x_e + $$ + + Für alle $e \in E$ und deren inzidente Knoten $x, y$ gilt + $$ + x_e + y_e \leq 1 + $$ + Damit Stellen wir sicher, dass nur eine Stadt die Reparaturkosten einer Staße trägt. + + Für alle $x \in V$ und zu $x$ inzidente Kanten $I$ gilt + $$ + \sum_{e \in I} x_e \cdotp r(x) \leq B(x) + $$ + Damit stellen wir sicher, dass das Budget einer Stadt nicht überschritten wird. + + Wenn die Zielfunktion den Wert der Anzahl an Knoten hat, haben wir eine + Lösung gefunden. + \points{2} + +\item + Das Problem kann wie in \autoref{fig:flow} als Fluss modelliert werden. + + \begin{itemize} + \item Dabei ist $s$ der Startknoten und $t$ der Zielknoten. + + \item Die Kantenkapazitäten von $s$ zu den Städten $v_i \in V$ ist das Budget $B(v_i)$. + + \item Die Kantenkapazitäten von $v_i$ zu den Straßen $e_j \in E$ müssen jeweils + größer als $r(e_j)$ sein. Jede Straße $e_j$ hat genau zwei eingehende Kanten von + den beiden inzidenten Städten. + + \item Die Kantenkapazitäten von $e_j$ zu $t$ sind die Reparaturkosten $r(e_j)$ + \end{itemize} + Wenn ein zulässiger Fluss alle in $t$ eingehenden Kanten füllt, dann gibt es + eine Lösung für das Problem. + + Das Modell ist korrekt, da + \begin{itemize} + \item Die Beiträge, die eine Stadt $v_i$ leisten kann von den + eingehenden Kantenkapazitäten limitiert werden. + \item Die Straßen $e_j$ genau zwei eingehende Kanten haben. + \item Die Reparaturkosten einer Straße $e_j$ von den ausgehenden Kantenkapazitäten + limitiert werden. + \end{itemize} + + \points{4} + \begin{figure}[h] + \centering + \includegraphics[page=2, width=0.8\textwidth]{figures.pdf} + \caption{Das Problem als Flussproblem. Die blauen Knoten sind Städte und die orangenen Straßen.} + \label{fig:flow} + \end{figure} + + +\end{tasks} diff --git a/übung_2/figures.pdf b/übung_2/figures.pdf index e7e8946..2f9dc6c 100644 Binary files a/übung_2/figures.pdf and b/übung_2/figures.pdf differ diff --git a/übung_2/figures.pdf.autosave.ipe b/übung_2/figures.pdf.autosave.ipe new file mode 100644 index 0000000..8dd505b --- /dev/null +++ b/übung_2/figures.pdf.autosave.ipe @@ -0,0 +1,811 @@ + + + + + + + +0 0 m +-1 0.333 l +-1 -0.333 l +h + + + + +0 0 m +-1 0.333 l +-1 -0.333 l +h + + + + +0 0 m +-1 0.333 l +-0.8 0 l +-1 -0.333 l +h + + + + +0 0 m +-1 0.333 l +-0.8 0 l +-1 -0.333 l +h + + + + +0.6 0 0 0.6 0 0 e +0.4 0 0 0.4 0 0 e + + + + +0.6 0 0 0.6 0 0 e + + + + + +0.5 0 0 0.5 0 0 e + + +0.6 0 0 0.6 0 0 e +0.4 0 0 0.4 0 0 e + + + + + +-0.6 -0.6 m +0.6 -0.6 l +0.6 0.6 l +-0.6 0.6 l +h +-0.4 -0.4 m +0.4 -0.4 l +0.4 0.4 l +-0.4 0.4 l +h + + + + +-0.6 -0.6 m +0.6 -0.6 l +0.6 0.6 l +-0.6 0.6 l +h + + + + + +-0.5 -0.5 m +0.5 -0.5 l +0.5 0.5 l +-0.5 0.5 l +h + + +-0.6 -0.6 m +0.6 -0.6 l +0.6 0.6 l +-0.6 0.6 l +h +-0.4 -0.4 m +0.4 -0.4 l +0.4 0.4 l +-0.4 0.4 l +h + + + + + + +-0.43 -0.57 m +0.57 0.43 l +0.43 0.57 l +-0.57 -0.43 l +h + + +-0.43 0.57 m +0.57 -0.43 l +0.43 -0.57 l +-0.57 0.43 l +h + + + + + +0 0 m +-1 0.333 l +-1 -0.333 l +h + + + + +0 0 m +-1 0.333 l +-0.8 0 l +-1 -0.333 l +h + + + + +0 0 m +-1 0.333 l +-0.8 0 l +-1 -0.333 l +h + + + + +-1 0.333 m +0 0 l +-1 -0.333 l + + + + +0 0 m +-1 0.333 l +-1 -0.333 l +h +-1 0 m +-2 0.333 l +-2 -0.333 l +h + + + + +0 0 m +-1 0.333 l +-1 -0.333 l +h +-1 0 m +-2 0.333 l +-2 -0.333 l +h + + + + +0.5 0 m +-0.5 0.333 l +-0.5 -0.333 l +h + + + + +0.5 0 m +-0.5 0.333 l +-0.5 -0.333 l +h + + + + +0.5 0 m +-0.5 0.333 l +-0.3 0 l +-0.5 -0.333 l +h + + + + +0.5 0 m +-0.5 0.333 l +-0.3 0 l +-0.5 -0.333 l +h + + + + +1 0 m +0 0.333 l +0 -0.333 l +h +0 0 m +-1 0.333 l +-1 -0.333 l +h + + + + +1 0 m +0 0.333 l +0 -0.333 l +h +0 0 m +-1 0.333 l +-1 -0.333 l +h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +-0.7 0 m +-1.7 0.333 l +-1.7 -0.333 l +h + + + + +-0.7 0 m +-1.7 0.333 l +-1.7 -0.333 l +h + + + + +-0.7 0 m +-1.7 0.333 l +-0.8 0 l +-1.7 -0.333 l +h + + + + +-0.7 0 m +-1.7 0.333 l +-0.8 0 l +-1.7 -0.333 l +h + + + + +-1.7 0.333 m +-0.7 0 l +-1.7 -0.333 l + + + + +-0.7 0 m +-1.7 0.333 l +-1.7 -0.333 l +h +-1.7 0 m +-2.7 0.333 l +-2.7 -0.333 l +h + + + + +-0.7 0 m +-1.7 0.333 l +-1.7 -0.333 l +h +-1.7 0 m +-2.7 0.333 l +-2.7 -0.333 l +h + + + + +100 204 m +4 0 0 4 100 200 96 200 a +96 100 l +4 0 0 4 100 100 100 96 a +300 96 l +4 0 0 4 300 100 304 100 a +304 200 l +4 0 0 4 300 200 300 204 a +h + + + + +100 204 m +4 0 0 4 100 200 96 200 a +96 100 l +4 0 0 4 100 100 100 96 a +300 96 l +4 0 0 4 300 100 304 100 a +304 200 l +4 0 0 4 300 200 300 204 a +h + + + + +100 204 m +4 0 0 4 100 200 96 200 a +96 100 l +4 0 0 4 100 100 100 96 a +300 96 l +4 0 0 4 300 100 304 100 a +304 200 l +4 0 0 4 300 200 300 204 a +h + + + + +96 96 m +304 96 l +304 204 l +96 204 l +h + + + + +96 96 m +304 96 l +304 204 l +96 204 l +h + + + + +92 92 m +308 92 l +308 208 l +92 208 l +h + + + + +100 96 m +110 96 s +110 92 +106 88 s +116 92 +118 96 s +300 96 l +4 0 0 4 300 100 304 100 a +304 200 l +4 0 0 4 300 200 300 204 a +100 204 l +4 0 0 4 100 200 96 200 a +96 100 l +4 0 0 4 100 100 100 96 a +h + + + + +100 96 m +186 96 s +186 92 +182 88 s +192 92 +194 96 s +300 96 l +4 0 0 4 300 100 304 100 a +304 200 l +4 0 0 4 300 200 300 204 a +100 204 l +4 0 0 4 100 200 96 200 a +96 100 l +4 0 0 4 100 100 100 96 a +h + + + + +100 96 m +110 96 s +110 92 +106 88 s +116 92 +118 96 s +300 96 l +4 0 0 4 300 100 304 100 a +304 200 l +4 0 0 4 300 200 300 204 a +100 204 l +4 0 0 4 100 200 96 200 a +96 100 l +4 0 0 4 100 100 100 96 a +h + + + + +100 96 m +110 96 s +110 92 +106 88 s +116 92 +118 96 s +300 96 l +4 0 0 4 300 100 304 100 a +304 200 l +4 0 0 4 300 200 300 204 a +100 204 l +4 0 0 4 100 200 96 200 a +96 100 l +4 0 0 4 100 100 100 96 a +h + + + + +100 96 m +186 96 s +186 92 +182 88 s +192 92 +194 96 s +300 96 l +4 0 0 4 300 100 304 100 a +304 200 l +4 0 0 4 300 200 300 204 a +100 204 l +4 0 0 4 100 200 96 200 a +96 100 l +4 0 0 4 100 100 100 96 a +h + + + + +100 96 m +110 96 s +110 92 +106 88 s +116 92 +118 96 s +300 96 l +4 0 0 4 300 100 304 100 a +304 200 l +4 0 0 4 300 200 300 204 a +100 204 l +4 0 0 4 100 200 96 200 a +96 100 l +4 0 0 4 100 100 100 96 a +h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\usepackage[ngerman]{babel} +\usepackage[sansdefault]{fontsetup} +\usepackage{ngutils} + +\renewcommand{\theoremfont}{\normalfont\bfseries\color{dark blue}} +\renewcommand{\definitionfont}{\normalfont\bfseries\color{dark gray}} + +\newcommand{\labelfont}{\normalfont\bfseries\color{dark blue}} + +%\setlength{\leftmargini}{1.33em} +%\setlength{\leftmarginii}{1.33em} +%\setlength{\leftmarginiii}{1.33em} +%\setlength{\leftmarginvi}{1.33em} + +\renewcommand{\labelenumi}{\labelfont\arabic{enumi}.} +\renewcommand{\labelenumii}{\labelfont\alph{enumii})} +\renewcommand{\labelenumiii}{\labelfont\roman{enumiii}.} +\renewcommand{\labelenumiv}{\labelfont\Alph{enumiv}.} + +\renewcommand{\labelitemi}{\labelfont $\blockfull$} +\renewcommand{\labelitemii}{\labelfont $\blackpointerright$} +\renewcommand{\labelitemiii}{\labelfont $\bullet$} +\renewcommand{\labelitemiv}{\labelfont $\bullet$} + +\setlength{\fboxsep}{1pt} + +\newcommand{\bk}{\color{black}} +\newcommand{\wt}{\color{white}} +\newcommand{\bu}{\color{dark blue}} +\newcommand{\bn}{\color{dark brown}} +\newcommand{\cn}{\color{dark cyan}} +\newcommand{\gy}{\color{dark gray}} +\newcommand{\gn}{\color{dark green}} +\newcommand{\og}{\color{dark orange}} +\newcommand{\pk}{\color{dark pink}} +\newcommand{\pl}{\color{dark purple}} +\newcommand{\rd}{\color{dark red}} +\newcommand{\yo}{\color{dark yellow}} +\newcommand{\tl}{\color{title}} + + + + + + + + + + + + + + + + +192 256 m +320 384 l + + +192 256 m +320 128 l + + +320 384 m +320 128 l + + +448 256 m +320 384 l + + +320 128 m +448 256 l + + +320 384 m +576 384 l + + +576 384 m +448 256 l + + +576 384 m +704 256 l + + +576 128 m +704 256 l + + +320 128 m +576 128 l + + +448 256 m +544 224 +576 128 c + + +576 128 m +480 160 +448 256 c + +s +b +a +c +d +e +t +2/2 +8/8 +5/5 +0/1 +3/3 +2/2 +0/3 +1/6 +7/7 +5/5 +6/6 +4/4 + + + + + +448 320 m +576 256 l + + +448 256 m +576 256 l + + +448 192 m +576 256 l + + +192 256 m +320 320 l + + +192 256 m +320 256 l + + +192 256 m +320 192 l + + +320 256 m +448 320 l + + +320 320 m +448 320 l + + +320 320 m +448 320 l + + +320 256 m +448 256 l + + +320 320 m +448 192 l + + +320 192 m +448 192 l + + +320 320 m +448 256 l + + + + + + + + + +v_1 +v_2 +v_n +e_1 +s +e_2 +e_m +t +B(v_1) +B(v_n) +B(v_2) +r(e_1) +r(e_m) +r(e_2) +\vdots +\vdots + + diff --git a/übung_2/ngutils.sty b/übung_2/ngutils.sty index 2dd431e..986bd5c 100644 --- a/übung_2/ngutils.sty +++ b/übung_2/ngutils.sty @@ -42,6 +42,8 @@ \newcommand\oh{\ensuremath{\scriptstyle{\mathcal{O}}}} \newcommand\Eh{\ensuremath{\mathrm{E}}} \newcommand\Var{\ensuremath{\mathrm{Var}}} +\newcommand\argmax{\ensuremath{\mathrm{arg\,max}}} +\newcommand\argmin{\ensuremath{\mathrm{arg\,min}}} \newcommand\parens[1]{\ensuremath{\left(#1\right)}} \newcommand\brackets[1]{\ensuremath{\left[#1\right]}} @@ -61,6 +63,7 @@ \newcommand\algt[1]{{\normalfont\scshape#1}} \newcommand\com[1]{{\normalfont\itshape/\!\!/ #1}} + \newenvironment{algorithmic}[1][1em]{ \begin{minipage}[t]{\dimexpr\linewidth} \bfseries