exzerpt.tex
author Eugen Sawin <sawine@me73.com>
Tue, 22 Feb 2011 18:58:21 +0100
changeset 2 7b0f43733557
parent 1 ceae9bb06f42
permissions -rw-r--r--
Added example hacks for some algorithms.
lindenmannm@0
     1
\documentclass[a4paper,11pt,twoside]{article}
lindenmannm@0
     2
lindenmannm@0
     3
\usepackage[ngerman]{babel}
lindenmannm@0
     4
\usepackage[T1]{fontenc}
lindenmannm@0
     5
\usepackage[latin1]{inputenc}
lindenmannm@0
     6
\usepackage[colorlinks=true,linkcolor=black]{hyperref}
lindenmannm@0
     7
lindenmannm@0
     8
\usepackage{vaucanson-g}
lindenmannm@0
     9
\usepackage{hyperref}
lindenmannm@0
    10
\usepackage{hypcap}
lindenmannm@0
    11
\usepackage{fancyhdr}
lindenmannm@0
    12
\usepackage{graphicx}
lindenmannm@0
    13
\usepackage{lastpage}
lindenmannm@0
    14
\usepackage[cm]{fullpage}
lindenmannm@0
    15
\usepackage{amsthm, amsmath, amsfonts}
lindenmannm@0
    16
\usepackage{float}
lindenmannm@0
    17
\usepackage{paralist}
lindenmannm@0
    18
\usepackage{listings}
lindenmannm@0
    19
\usepackage{color}
lindenmannm@0
    20
\usepackage{bookmark}
lindenmannm@0
    21
lindenmannm@0
    22
% Festlegung Art der Zitierung - Havardmethode: Abkuerzung Autor + Jahr
lindenmannm@0
    23
\bibliographystyle{alphadin}
lindenmannm@0
    24
lindenmannm@0
    25
\title{\underline{Exzerpt Algorithmentheorie WS10/11}}
lindenmannm@0
    26
\author{Markus Lindenmann}
lindenmannm@0
    27
\date{\today{} }
lindenmannm@0
    28
lindenmannm@0
    29
\begin{document}
lindenmannm@0
    30
    \maketitle
lindenmannm@0
    31
    
lindenmannm@0
    32
    \tableofcontents
lindenmannm@0
    33
    \newpage
lindenmannm@0
    34
lindenmannm@0
    35
    \section{Einleitung}\label{sec:intro}
lindenmannm@0
    36
        Dozent:     Matthias Westermann\\
lindenmannm@1
    37
        Website:    \url{http://lak.informatik.uni-freiburg.de}\\
lindenmannm@0
    38
        Klausur:    09.03.2011\\
lindenmannm@0
    39
        Hilfsmittel:    Ein auf beiden Seiten handbeschriebenes DIN-A4-Blatt
lindenmannm@0
    40
        \subsection{Themen:}
lindenmannm@0
    41
            \begin{itemize}
lindenmannm@0
    42
                \item[$\bullet$] Divide and Conquer
lindenmannm@0
    43
                \item[$\bullet$] Greedy Prinzip
lindenmannm@0
    44
                \item[$\bullet$] Dynamische Programmierung
lindenmannm@0
    45
                \item[$\bullet$] Randomisierung
lindenmannm@0
    46
                \item[$\bullet$] Amortisierte Analyse
lindenmannm@0
    47
            \end{itemize}
lindenmannm@0
    48
        \subsection{Problem-/Anwendungsbereiche:}
lindenmannm@0
    49
            \begin{itemize}
lindenmannm@0
    50
                \item[$\bullet$] Geometrische Algorithmen
lindenmannm@0
    51
                \item[$\bullet$] Algebraische Algorithmen
lindenmannm@0
    52
                \item[$\bullet$] Graphenalgorithmen
lindenmannm@0
    53
                \item[$\bullet$] Datenstrukturen
lindenmannm@0
    54
                \item[$\bullet$] Internet-Algorithmen
lindenmannm@0
    55
                \item[$\bullet$] ptimierungs-Verfahren
lindenmannm@0
    56
                \item[$\bullet$] Zeichenkettenverarbeitung
lindenmannm@0
    57
            \end{itemize}
lindenmannm@0
    58
        \subsection{Literatur:}
lindenmannm@0
    59
            \bibliography{literatur}
lindenmannm@1
    60
            \nocite{*}
lindenmannm@0
    61
    
lindenmannm@0
    62
    \newpage
lindenmannm@0
    63
    \section{Divide and Conquer}\label{sec:div&conq}
lindenmannm@0
    64
        \begin{itemize}
lindenmannm@0
    65
            \item[$\bullet$] Quicksort
lindenmannm@0
    66
            \item[$\bullet$] Formulierung und Analyse des Prinzips
lindenmannm@0
    67
            \item[$\bullet$] Geometrisches Devide and Conquer
lindenmannm@0
    68
            \begin{itemize}
lindenmannm@0
    69
                \item[-] Closest-Pair
lindenmannm@0
    70
                \item[-] Segmentschnitt
lindenmannm@0
    71
            \end{itemize}
lindenmannm@0
    72
        \end{itemize}
lindenmannm@0
    73
        
lindenmannm@0
    74
        \subsection{Formulierung des Divide and Conquer Prinzips}
lindenmannm@0
    75
            D\&C Verfahren zur Lösung eines Problems der Größe $n$
lindenmannm@0
    76
            \begin{itemize}
lindenmannm@0
    77
                \item[1.]   Divide\\$n>2$:  Teile das Problem in $k$ Teilprobleme der Größe $n_1,\ldots n_k$ ($k\geq2$)\\$n\leq c:$ Löse das Problem direkt
lindenmannm@0
    78
                \item[2.]   Conquer\\Löse die $k$ Teilprobleme auf dieselbe Art (rekursiv)
lindenmannm@0
    79
                \item[3.]   Merge\\Füge die berechneten Teillösungen zu einer Gesamtlösung zusammen
lindenmannm@0
    80
            \end{itemize}
lindenmannm@0
    81
        
lindenmannm@0
    82
        \subsection{Quicksort}
lindenmannm@0
    83
            Wähle beliebiges Pivot Element $v$ und sortiere alle Elemente aus der Menge, die größer sind als $v$ rechts von $v$ ein, die anderen links. Verfahre im selben Muster mit den neuen Teilmengen links und rechts des Pivot Elements. Wenn die zu sortierende Folge $F$ nur ein Element beinhaltet, gebe $F$ zurück.
lindenmannm@0
    84
			
lindenmannm@0
    85
            \subsubsection{Analyse}
lindenmannm@0
    86
                $T(n)$ - maximale Anzahl von Schritten, um ein Problem der Größe $n$ zu lösen.
lindenmannm@0
    87
                \[T(n)=\begin{cases}n\neq c&a \\ n>c&T(n_1+\ldots+T(n_k)+\text{Divide- und Mergeaufwand}\end{cases}\]
lindenmannm@0
    88
                Best Case: $k=2, n_1=n_2=\frac{n}{2}$\\
lindenmannm@0
    89
                Divide- und Mergeaufwand: $DM(n)$\\
lindenmannm@0
    90
                $T(1)=a$\\
lindenmannm@0
    91
                $T(n)=2T(\frac{n}{2})+DM(n)$
lindenmannm@0
    92
        
lindenmannm@0
    93
        \subsection{Nächste Paare}
lindenmannm@0
    94
            Eingabe:    $n$ Punkte in Ebene\\
lindenmannm@0
    95
            Ausgabe:    Punkt-Paar $q,r$ mit geringstem Abstand\\
lindenmannm@0
    96
            Abstand:    $d(q,r)$ bechreibt Abstand zwischen Punkten $q$ und $r$
lindenmannm@0
    97
            \subsubsection{Algorithmus}
lindenmannm@0
    98
                \begin{itemize}
lindenmannm@0
    99
                    \item[$\bullet$] sortiere Punktmenge nach x-Koordinate
lindenmannm@0
   100
                    \item[$\bullet$] Teile Punktmenge in der Mitte L in die Mengen Q und R
lindenmannm@0
   101
                    \item[$\bullet$] Löse rekursiv auf Q und R
lindenmannm@0
   102
                    \item[$\bullet$] Sortiere Punkte nach y-Koordinate
lindenmannm@0
   103
                    \item[$\bullet$] Teste alle Paare, deren Abstand in der Sortierung kleiner als 16 ist (siehe unten)
lindenmannm@0
   104
                    \item[$\bullet$] Füge zusammen
lindenmannm@0
   105
                \end{itemize}
lindenmannm@0
   106
            
lindenmannm@0
   107
                $\delta=$ Minimum der Teillösungen\\
lindenmannm@0
   108
                Gibt es $q\in Q$ und $r\in R$ mit $d(q,r)<\delta$, dann sind sowohl $q$ als auch $r$ höchstens $\delta$ von $L$ (Mitte) entfernt.\\
lindenmannm@0
   109
                \textbf{Problem:} alle Punkte können innerhalb der $\delta$-Zone liegen\\
lindenmannm@0
   110
                \textbf{Lösung:}\begin{itemize}
lindenmannm@0
   111
                    \item[$\bullet$] Sortiere Punkte in $\delta$ Zone nach $y$-Abstand
lindenmannm@0
   112
                    \item[$\bullet$] Liegen in dieser Sortierung mehr als $c$ Punkte zwischen $q$ und $r$, dann kann $(q,r)$ nicht nächstes Paar sein
lindenmannm@0
   113
                \end{itemize}
lindenmannm@0
   114
                
lindenmannm@0
   115
                Dies kann für $c=15$ bewiesen werden (vgl. Abbildung \ref{cl_pair}):
lindenmannm@0
   116
                \begin{itemize}
lindenmannm@0
   117
                    \item[$\bullet$] Seien min. 15 Punkte zwischen $q$ und $r$
lindenmannm@0
   118
                    \item[$\bullet$] Dann sind mindestens 3 Reihen Quadrate zwischen $q,r$, weil in jedem Quadrat höchstens ein Punkt ist.
lindenmannm@0
   119
                    \item[$\rightarrow$] Dann muss $d(q,r)$ mindestens $\frac{3}{2}\delta > \delta$ sein.
lindenmannm@0
   120
                \end{itemize}
lindenmannm@0
   121
                
lindenmannm@0
   122
                \begin{figure}[H]
lindenmannm@0
   123
                    \centering
lindenmannm@0
   124
                    \includegraphics[scale=0.5]{img/cl_pair}
lindenmannm@0
   125
                    \caption{Nächste Paare: Prüf Distanz}
lindenmannm@0
   126
                    \label{cl_pair}
lindenmannm@0
   127
                \end{figure}
lindenmannm@0
   128
lindenmannm@0
   129
            \subsubsection{Analyse}
lindenmannm@0
   130
                \[T(n)=\begin{cases}n\leq3&a \\ n>3&2T(\frac{n}{2})+an\end{cases}\]
lindenmannm@0
   131
                \[T(n)\leq an \log n \]
lindenmannm@0
   132
lindenmannm@0
   133
        \subsection{Segmentschnitt}
lindenmannm@0
   134
            Eingabe:    Menge S bestehend aus vertikalen Segmenten und Endpunkten vn horizontalen Segmenten\\
lindenmannm@0
   135
            Ausgabe:    Alle Schnittpunkte von vertikalen Segmenten mit horizontalen Segmenten, von denen mindesens ein Endpunkt in S ist
lindenmannm@0
   136
            
lindenmannm@0
   137
            \subsubsection{Algorithmus}
lindenmannm@0
   138
                \textbf{Divide \& Conquer:}\\Fallunterscheidung
lindenmannm@0
   139
                \begin{itemize}
lindenmannm@0
   140
                    \item[1.] $\left| S\right| > 1$:\\ Teile S mittels einer vertikalen Gerade G in 2 gleichgroße Mengen $S_1$ (links von G) und $S_2$ (rechts von G). Führe rekursiv auf beiden Hälften aus.
lindenmannm@0
   141
                    \item[2.] else: S enthält keine Schnitte
lindenmannm@0
   142
                \end{itemize}
lindenmannm@0
   143
                
lindenmannm@0
   144
                \textbf{Merge}\\
lindenmannm@0
   145
                Bilde L(S), R(S) und V(S) (Definition am Beispiel $i=1,2$ berechnet: $S=S_1\cup S_2$):
lindenmannm@0
   146
                \begin{itemize}
lindenmannm@0
   147
                    \item[$\bullet$] L(S): y-Koordinate aller linken Endpunkte in S, deren rechter Partner nicht in S\\$=L(S_2)\cup(L(S_1)-R(S_2))$
lindenmannm@0
   148
                    \item[$\bullet$] R(S): y-Koordinate aller rechten Endpunkte in S, deren linker Partner nicht in S\\$=R(S_1)\cup(R(S_2)-L(S_1))$
lindenmannm@0
   149
                    \item[$\bullet$] V(S): y-Intervalle der vertikalen Segmente in S\\$=V(S_1)\cup V(S_2)$
lindenmannm@0
   150
                \end{itemize}
lindenmannm@0
   151
                L,R sortiert nach steigender y-Koordinate\\
lindenmannm@0
   152
                V sortiert nach steigendem unteren Endpunkt\\
lindenmannm@0
   153
                \medskip
lindenmannm@0
   154
                
lindenmannm@0
   155
                \textbf{Basisfälle}\\
lindenmannm@0
   156
                S enthält nur ein Element s. Fallunterscheidung:
lindenmannm@0
   157
                \begin{itemize}
lindenmannm@0
   158
                    \item[1.] $s=(x,y)$ ist ein linker Endpunkt:\\$L(S)=\{y\},\qquad R(S)=\emptyset,\qquad V(S)=\emptyset$
lindenmannm@0
   159
                    \item[2.] $s=(x,y)$ ist ein rechter Endpunkt:\\$L(S)=\emptyset,\qquad R(S)=\{y\},\qquad V(S)=\emptyset$
lindenmannm@0
   160
                    \item[3.] $s=(x,y_1,y_2)$ ist ein vertikales Segment:\\$L(S)=\emptyset,\qquad R(S)=\emptyset,\qquad V(S)=\{[y_1,y_2]\}$
lindenmannm@0
   161
                \end{itemize}
lindenmannm@0
   162
            
lindenmannm@0
   163
            \subsubsection{Analyse}
lindenmannm@0
   164
                Eingabe wird Anfangs sortiert und in Array gespeichert
lindenmannm@0
   165
                \[T(n)=2T(\frac{n}{2}+an+\text{Größe der Ausgabe}\]
lindenmannm@0
   166
                \[T(1)=O(1)\]
lindenmannm@0
   167
                \[O(n \log n + k \mid k=\#Schnittpunkte\]
lindenmannm@0
   168
        
lindenmannm@0
   169
        \subsection{Polynomprodukt und Fast Fourier-Transformation}
lindenmannm@0
   170
            
lindenmannm@0
   171
            
lindenmannm@1
   172
	  \newpage
lindenmannm@0
   173
    \section{Randomisierung}
lindenmannm@0
   174
        \subsection{Hashing}
lindenmannm@0
   175
    
lindenmannm@0
   176
    \newpage
lindenmannm@0
   177
    \section{Amortisierte Analyse}
lindenmannm@0
   178
        \subsection{Binomial Heaps}
lindenmannm@0
   179
        \subsection{Fibonacci Heaps}
lindenmannm@0
   180
        \subsection{Union Find}
lindenmannm@0
   181
    
lindenmannm@0
   182
    \newpage
lindenmannm@0
   183
    \section{Greedy}
lindenmannm@1
   184
        \subsection{Kürzeste (billigste) Wege}
lindenmannm@0
   185
    
lindenmannm@0
   186
    \newpage
lindenmannm@1
   187
    \section{Bin Packing}
lindenmannm@1
   188
        \textbf{Problembeschreibung:}\\
lindenmannm@1
   189
        Man hat $n$ Objekte verschiedener Größe mit $0<s_i\leq1\mid 1\leq i\leq n$. Gesucht ist die kleinst mögliche Anzahl an Kisten (Bins) der Größe 1, mit der alle Objekte verpackt werden können.
lindenmannm@1
   190
        \subsection{Online Verfahren}
lindenmannm@1
   191
            Jedes (ankommende) Objekt muss verpackt sein, bevor das nächste Objekt betrachtet wird. Ein Objekt verbleibt in derjenigen Kiste, in die es zuerst gepackt wird.\\
lindenmannm@1
   192
            Kein Online Bin Packing Verfahren kann stets eine optimale Lösung finden!\\            
lindenmannm@1
   193
            \textbf{Satz 1}: Es gibt Eingaben, die jeden Online Bin Packing Algorithmus zwingen, wenigstens $\frac{4}{3} OPT$ Bins zu verwenden, wobei $OPT$ die minimal mögliche Binzahl ist.\\
lindenmannm@1
   194
            \textbf{Beweis} Annahme: Online Bin Packing Algorithmus benötigt stets weniger als $\frac{4}{3}OPT$ Bins.\\
lindenmannm@1
   195
            Es wird eine Eingabe mit $2m$ Objekten angenommen. Die ersten $m$ sind um $\epsilon$ kleiner als $\frac{1}{2}$, die zweiten $m$ um $\epsilon$ größer. Die optimale Lösung sind $m$ Kisten, da immer ein großes mit einem kleinen Paket kombiniert werden kann. Nun teilt man die Analyse in zwei Zeitpunkte: nach $m$ Objekten und nach $2m$ Objekten. Laut Annahme gilt nach nach $m$ Objekten, dass die Anzahl der Bins $b$ nur maximal $\frac{4}{3} OPT$ groß sein darf. Mit $OPT=\frac{m}{2}$ gilt somit: $b=\frac{4}{3}\cdot\frac{m}{2}=\frac{2}{3}m$. Sei $b=b_1+b_2\mid b_1=\#$Bins mit einem Objekt, $b_2=\#$Bins mit zwei Objekten, so folgt $b_1+2b_2=m\implies b_1=m-2b_2\implies b=b_1+b_2=m-b_2$. Nach $2m$ Objekten ist $OPT=m$, wie zuvor beschrieben. $b_1$ Bins können zu diesem Zeitpunkt mit Objekten des zweiten Bereichs gefüllt werden, für die verbleibenden muss man neue Bins öffnen. Die Anzahl der neu zu öffnenden beträgt damit genau $b_2\implies \#$Bins $\geq b+m-b_1=m+b_2$. Die Annahme besagt $m+b_2\leq\#$Bins $<\frac{4}{3}m \wedge b_2<\frac{m}{3}$. Dies ist nur möglich, wenn $b=m-b_2>\frac{2}{3}m$ - Dies führt zu einem \underline{Widerspruch}, da $b$ zum Zeitpunkt 1, nach $m$ Objekten $<\frac{2}{3}m$ sein muss.
lindenmannm@1
   196
            
lindenmannm@1
   197
            \subsubsection{Next Fit (NF)}
lindenmannm@1
   198
                Verpacke das nächste Objekt in dieselbe Kiste wie das vorherige, wenn es dort noch hineinpasst, sonst öffne eine neue Kiste und verpacke es dort.\\
lindenmannm@1
   199
                \textbf{Satz 2}: (a) Für alle Inputfolgen $I$ gilt: $NF(I)\leq2OPT(I)$. (b) Es gibt Inputfolgen I mit $NF(I)\geq2OPT(I)-2$.\\
lindenmannm@1
   200
                \textbf{Beweis}\\
lindenmannm@1
   201
                (a) Betrachte zwei beliebige aufeinanderfolgende Kisten $B_{2k-1}, B_{2k}$. Man weiß, dass die beinhalteten Objekte eine Summengröße $>1$ haben, sonst wären selbige in einer Kiste. Daraus folgt, man kann nicht mehr als die doppelte Anzahl an Kisten als beim Optimum erreichen!\\
lindenmannm@1
   202
                (b) Inputfolge: $0.5, \frac{2}{n}, 0.5, \frac{2}{n}, 0.5, \frac{2}{n}, \ldots 0.5, \frac{2}{n}$.\\Next-Fit liefert nun immer Bins gefüllt mit $0.5 + \frac{2}{n}$. Darausfolgt $NF(I)=\frac{n}{2}$ und $OPT=\frac{n}{4}+1$ (weil $\frac{n}{2}$ mal 0.5er Objekte in $=\frac{n}{4}$ Kisten passen und $\frac{n}{2}$ $\frac{2}{n}$er Objekte in eine Kiste passen)\\
lindenmannm@1
   203
                Laufzeit für Inputfolgen der Länge $n$: NF $O(n)$
lindenmannm@1
   204
            \subsubsection{First-Fit (FF)}
lindenmannm@1
   205
                Packe nächstes Objekt in die erste Kiste, in die es noch hineinpasst, wenn es eine solche Kiste gibt, sonst in eine neue Kiste.\\
lindenmannm@1
   206
                \textbf{Beobachtung}: Zu jedem Zeitpunkt kann es höchstens eine Kiste geben, die weniger als halb voll ist. ($\implies FF(I) \leq 2OPT(I)$)\\
lindenmannm@1
   207
                \textbf{Satz 3}: (a) Für alle Inputfolgen $I$ gilt $FF(I)\leq \lceil\frac{17}{10} OPT(I)\rceil$. (b) Es gibt Inputfolgen $I$ mit $FF(I)\geq\frac{17}{10}(OPT(I)-1)$. (b') Es gibt Inputfolgen $I$ mit $FF(I)=\frac{10}{6}OPT(I)$.\\
lindenmannm@1
   208
                \textbf{Beweis}\\
lindenmannm@1
   209
                (b') Inputfolge der Länge $3\cdot6m$. Dabei je $6m$ Objekte der Größen $\frac{1}{7}+\epsilon, \frac{1}{3}+\epsilon, \frac{1}{2}+\epsilon$, welche in gegebener Reihenfolge in Gruppen eingegeben werden. FF liefert hierbei $m$ Kisten gefüllt mit den Objekten der Größe $\frac{1}{7}+\epsilon$ (jeweils 6 pro Kiste) gefolgt von $\frac{6m}{2}=3m$ Kisten gefüllt mit Objekten der Größe $\frac{1}{3}+\epsilon$ (jeweils 2 pro Kiste) und schlussendlich $6m$ Kisten mit je einem Objekt der Größe $\frac{1}{2}+\epsilon$. Das macht in der Summe $10m$ Kisten. Die optimale Lösung packt je ein Objekt jeder Größe in eine Kiste und benötigt somit nur $6m$ Kisten.\\
lindenmannm@1
   210
                Laufzeit für Inputfolgen der Länge $n$: FF $O(n^2) \rightarrow O(n \log n)$
lindenmannm@1
   211
            \subsubsection{Best-Fit (BF)}
lindenmannm@1
   212
                Verpacke das nächste Objekt in diejenige Kiste, in die es am besten passt (d.h. den geringsten Platz ungenutzt lässt).
lindenmannm@1
   213
                Verhalten von BF ähnlich zu FF.
lindenmannm@1
   214
                Laufzeit für Inputfolgen der Länge $n$: BF $O(n^2) \rightarrow O(n \log n)$
lindenmannm@1
   215
        \subsection{Offline Verfahren}
lindenmannm@1
   216
            \underline{NP-schwieriges Problem! Entscheidungsproblem ist NP-vollständig!}\\
lindenmannm@1
   217
            Zunächst wird die Anzahl $n$ und alle $n$ Objekte vorgegeben. Dann beginnt die Verpackung.\\
lindenmannm@1
   218
            $n$ und $s_1, ..., s_n$ sind gegeben, bevor die Verpackung beginnt!\\
lindenmannm@1
   219
            $\rightarrow$ \underline{Optimale Verpackung} kann durch erschöpfende Suche bestimmt werden. ABER: Benötigt exponentielle Zeit! Daher Approximimationsalgorithmen, die schneller sind aber dafür unter Umständen nicht optimal!\\
lindenmannm@1
   220
            Idee für Offline Approximationsalgorithmen: Sortiere die Objekte zunächst nach abnhemender Größe und verpacke größere Objekte zuerst!
lindenmannm@1
   221
            \subsubsection{First Fit Decreasing (FFD oder FFNI)}
lindenmannm@1
   222
                \textbf{Lemma 1}: Sei $I$ eine Folge von $n$ Objekten mit Größen $s_1\geq s_2\geq\ldots\geq s_n$ und sei $m=OPT(I)$. Dann haben alle von FFD in den Bins $B_{m+1},B_{m+2},\ldots,B_{FFD(I)}$ verpackten Objekte eine Größe von höchstens $\frac{1}{3}$.\\
lindenmannm@1
   223
                \textbf{Beweis}: \$\$\$TODO:Elsässer hat das in seiner VL gemacht - aber hässlich lang\$\$\$\\
lindenmannm@1
   224
                \textbf{Lemma 2}: Sei $I$ eine Folge von $n$ Objekten mit Größen $s_1\geq s_2\geq\ldots\geq s_n$ und sei $m=OPT(I)$. Dann ist die Anzahl der Objekte, die FFD in die Kisten $B_{m+1},B_{m+2},\ldots,B_{FFD(I)}$ verpackt, höchstens $m-1$.\\
lindenmannm@1
   225
                \textbf{Beweis}: Annahme: Es gibt mehr als $m-1$ Objekte. $x_1,\ldots,x_m$ in $I$, die FFD in extra Kisten verpacken. Dies führt zu einem Widerspruch. \$\$\$TODO:Warum?\$\$\$\\
lindenmannm@1
   226
                \textbf{Satz}: Für alle Inputfolgen I gilt $FFD(I)\leq(4 OPT(I)+\frac{1}{3})$.\\
lindenmannm@1
   227
                \textbf{Satz}:
lindenmannm@1
   228
                \begin{itemize}
lindenmannm@1
   229
                    \item[1.] Für alle Inputfolgen $I$ gilt: $FFD(I)\leq \frac{11}{9} OPT(I)+4$
lindenmannm@1
   230
                    \item[2.] Es gibt Inputfolgen $I$ mit: $FFD(I)=\frac{11}{9}OPT(I)$.
lindenmannm@1
   231
                \end{itemize}
lindenmannm@1
   232
                \textbf{Beweis}: \$\$\$TODO\$\$\$
lindenmannm@1
   233
            \subsubsection{Best Fit Decreasing (BFD)}
lindenmannm@1
   234
                Nicht im Script???
lindenmannm@1
   235
    
lindenmannm@1
   236
    \newpage
lindenmannm@1
   237
    \section{Dynamische Programmierung}
lindenmannm@1
   238
        
lindenmannm@1
   239
        
lindenmannm@1
   240
    \newpage
lindenmannm@1
   241
    \begin{appendix}
lindenmannm@1
   242
        \section{Landau-Symbole}
lindenmannm@0
   243
            \begin{figure}[H]
lindenmannm@0
   244
                \centering
lindenmannm@0
   245
                \includegraphics[scale=0.45]{img/landau_sym}
lindenmannm@0
   246
                \caption{Definition der Landau Symbole}
lindenmannm@0
   247
                \label{fig:landau_sym}
lindenmannm@0
   248
            \end{figure}
lindenmannm@1
   249
    \end{appendix}
sawine@2
   250
\end{document}