Berechenbarkeits-KomplexTh 11.1.12 & 18.1.12

main
Thomas Ba. 13 years ago
parent 9213a8ba54
commit 50e088a4b2

@ -7,6 +7,7 @@
\usepackage{multicol}
\usepackage{framed}
\usepackage{enumerate}
\usepackage{wrapfig}
%\usepackage{booktabs}
%\usepackage{pstricks}
%\usepackage{pst-node}
@ -55,6 +56,7 @@
\newcommand{\bew}[1][]{\textcolor{greenblue}{\textbf{Beweis}}#1:}
\newcommand{\bsp}{\textcolor{lightgreen}{\textbf{Bsp.: }}}
\newcommand{\beh}{\textcolor{lightblue}{\textbf{Beh.:}}}
\newcommand{\lemma}{\textbf{Lemma:}}
\newcommand{\rrfloor}{\right\rfloor}
\newcommand{\llfloor}{\left\lfloor}
@ -873,7 +875,7 @@
\(M_B\) nichtdeterministisch \(\Rightarrow M_A \) nichtdeterministisch. Zeit bleibt unverändert.
\defin \(A,B\) heißen (\underline{polynomiell}) \underline{äquivalent}, schreibe \( A \equiv^P B\), falls \(A\le^P B\) und \(B\le^P A\).\\
\underline{Lemma}: \(\equiv^P\) ist Äquivalentzrelation.\\
\lemma \(\equiv^P\) ist Äquivalentzrelation.\\
\bew (R) \(A \equiv^P A\), da \(A\le^P A\) mittels \(f(x)=x\).\\
(S) \( A \equiv^P V \Rightarrow B \equiv^P A \) \(\Box\)\\
(T) \( A\le^P B\) und \(B \le^P C \Rightarrow A\le^P C \)
@ -956,7 +958,7 @@
Dann gilt:\\
zu jeder akzeptierenden Rechnung von \(M(x)\) gibt es eine zugehörige Belegung der Variablen von \(F_x\), die \(F_x\) erfüllt, und umgekehrt.
Es gilt also: \(M(x)\) hat gleichviele akzeptierende Rechnungen wie \(F_x\) erfüllende Belegungen.\\
Es gilt also: \(M(x)\) hat gleich viele akzeptierende Rechnungen wie \(F_x\) erfüllende Belegungen.\\
Insbesondere gilt also:\\
\spa \( x\in L(M) \Leftrightarrow F_x \in SAT \quad \Box\)
@ -1396,5 +1398,230 @@
\item Ordne Job $i$ dem Prozessor zu, der aktuell die kleinste Ladung hat.
\end{itemize}
Sei $T$ die maximale Laufzeit,
Sei $T$ die maximale Laufzeit bei der Greedy-Strategie und sei $T^*$ die Laufzeit bei der optimalen Lösung.\\
Für $T$ gilt:
\begin{enumerate}[1)]
\item $T^* \ge \frac1m \sum\limits_{i=1}^{n} t_i $
\item $T^* \ge \underset{i}{\text{max }} t_i$
\end{enumerate}
Für $T$ gilt:
\begin{addmargin}[1cm]{0cm}
Nach Ausführung von Greedy habe Prozess $i$ Ladung $T_i$.\\
Sei $i_0$ ein Prozessor mit $T_{i_0} = T$.\\
Sei Job $j$ der letzte Job, der Prozess $i_0$ zugewiesen wurde.\\
D.\,h. alle anderen Prozessoren haben zu diesem Zeitpunkt bereits eine größere Ladung. Es gilt also $T_i \ge T_{i_0} - t_j \forall i $\\
$\Rightarrow \underbrace{\sum\limits_{i=1}^n T_i}_{=\sum\limits_{i=1}^n ti} \ge m ( \underbrace{T_{i_0}}_{=T} - t_j ) $\\
$\Rightarrow \sum\limits_{i=1}^m T_i \ge m ( T-T_j)$\\
$\Rightarrow \frac1m \sum\limits_{i=1}^{m} t_i \ge T-t_j $\\
$\Rightarrow T \le \underbrace{\frac1m \sum\limits_{i=1}^{m} t_i}_{\le T^*} + \underbrace{t_j}_{\le T^*} $\\
$\Rightarrow$ \fbox{$T \le 2 T^*$}
\end{addmargin}
\bsp $t_i = 1, i=1,…,n-1$\\
$t_n = m$\\
\includegraphics{bilder/mps.eps}\\
wähle $n = m (m-a) +1$\\
$T = 2m-1$\\
$T^* = m$
Greedy-Sortiert:
\begin{itemize}
\item sortiere Jobs, so dass\\
$t_1 \ge t_2 \ge\ge t_n$
\item dann wie Greedy
\end{itemize}
\lemma $ 2t_{m+1} \le T^* $\\
\bew Betrachte Jobs $1,…,m+1$\\
Nach Schubfachschluss hat ein Prozessor $\ge 2$ Jobs (bei optimaler Lösung), d.\,h. Laufzeit $\ge \underbrace{t_i}_{\ge t_{m+1}} + \underbrace{t_j}_{\ge t_{m+1}}$
Gleiche Überlegung wie oben:\\
\begin{addmargin}[1cm]{0cm}
Prozessor $i_0$ mit maximaler Ladung $T$.\\
Prozessor $i_o$ habe $\ge2$ Jobs.\\
(Hätte Prozessor $i_0$ nur einen Job, dann ist $T=t_j=T^*$)\\
Es ist $j\ge m+1$, also $t_j \le t_{m+1}$, wobei Job $j$ wieder der letzte Job ist, der Prozessor $i_0$ zugewiesen wurde.
\end{addmargin}
Abschätzung von vorher:\\
$ T \le \underbrace{\frac1m \sum\limits_{i=1}^{n} t_i}_{\le T^*} + \underbrace{t_j}_{\le t_{m+1} \le \frac{T^*}{2}} $
\subsection{Vortex Cover}
% TODO VL vom 11.1.12 vervollständigen
\includegraphics{bilder/vertex_cover.eps}
Greedy:
\begin{itemize}
\item wähle Knoten $v$ mit maximalem Grad
\item entferne $v$ (mit seinen Kanten)
\item wiederhole
\end{itemize}
\bsp\\
\includegraphics{bilder/vertex_cover_2.eps}
\begin{align*}
deg(a_i) &= 1\\
deg(b_i) &= (n-2) +1 = n-1\\
deg(c_i) &= n
\end{align*}
Greedy wählt $c_1,c_2,…,c_{n-2}$, $a_1,a_2,…,a_n$, insgesamt als $2n-2$ Knoten.\\
Optimal wäre $b_1,…,b_n$ zu nehmen, also n Knoten.
\bsp\\
\includegraphics{bilder/vertex_cover_3.eps}
\begin{align*}
N &= \sum\limits_{i=2}^{n} \lfloor \frac n i \rfloor\\
&\ge \sum\limits_{i=2}^{n} (\frac n i -1 )\\
&= \sum\limits_{i=2}^{n} \frac n i - (n-1)\\
&= n * \underbrace{ \sum\limits_{i=2}^{n} \frac1i}_{\ge \ln -1} -(n-1)
\end{align*}
$\big[$ Harmonische Reihe $\ln n \le \sum\limits_{i=1}^{n} \le \ln n +1 \big]$\\
$\Rightarrow N\ge n(\ln n-1) -n+1$\\
$= n \ln n - 2n+1$\\
greedy nimmt $c_N,c_{N-1},…,1$, $a_1,…,a_n$, also $N+n$ Knoten.\\
Verhältnis: $ \frac{N+n}{2} = \frac{n \ln n - n +1}{n} = \ln n -1 +\frac 1n $\\
D.\,h. die Strategie kann beliebig schlecht werden.
\includegraphics{bilder/vortex_cover_4.eps}
\begin{enumerate}[1)]
\item $C\leftarrow \emptyset$
\item wähle beliebige Kante $(u,v)$
\item $C \leftarrow C \cup \{ u,v\}$
\item $G \leftarrow G - u,v$
\item wiederhole bis $G$ leer ist (2-4).
\end{enumerate}
Da eine vertex cover \underline{jede} Kante abdecken muss, ist auch in einer optimalen Lösung mindestens einer der beiden Endpunkte $u$ oder $v$ enthalten.
\[ \underbrace{|C|}_{\text{vc. vom Approx Alg.}} \le 2 \underbrace{|C^*|}_{\text{optimale Lösung}} \]
Besser: mit Approx Faktor $2-\frac{2}{\sqrt{u}}$ für eine Konstante $c$.
\subsection{Traveling Salesman Problem}
\subsubsection{Nearest Neighbor (NN)}
gehe immer zum nächstliegenden noch nicht besuchten Punkt.\\
\includegraphics{bilder/tsp_nn.eps}
Metrik: $d$ erfüllt die Dreiecksungleichung\\
\includegraphics{bilder/tsp_dreieck.eps}\\
$ d(x,y) \le d(x,z) + d(z,y) $
\includegraphics{bilder/tsp_nn_2.eps}\\
Allgemein:
\begin{align*}
T &= \text{NN-Lösung}\\
T^* &= \text{optimale Lösung}\\
|T| &\le \log_n |T|^*
\end{align*}
(TSP mit $\triangle$-Ungleichung)
\subsubsection{Nearest Insertion}
bilde Kreis und füge Knoten ein
\begin{itemize}
\item Start mit 3 (beliebigen) Knoten und verbinde zu Dreieck.
\item wähle Knoten $v$ der noch nicht Besucht ist und füge $v$ in den Kreis ein.
\end{itemize}
Auswahl von $v$:\\
\includegraphics{bilder/tsp_ni.eps}
wähle $v$ mit minimalem Abstand zum Kreis:
\[ d(c,v) = min d(u,v) \quad u \in V\]
füge $v$ so ein, dass sich der Kreis möglichst wenig verlängert. D.\,h. wähle Nachbar $w$ von $v$ so, dass
\[ Cost(v) = d(u,v) + d(v,w) - d(u,w) \]
minimal ist.
Noch $\triangle$-Ungleichung ist
\begin{align*}
d(v,w) \le d(u,v) + d(u,w)\\
\Rightarrow d(v,w) - d(u,w) \le d(u,v)\\
\Rightarrow cost(v) \le 2*d(u,v)
\end{align*}
\begin{itemize}
\item Wiederhole Insertion-Schritt bis alle Knoten im Kreis sind.
\end{itemize}
\beh Sei $C$ der Kreis der durch NI berechnet wird und $C^*$ eine optimale TSP-Tour.\\
Dann ist $d(C) \le 2 * d(C^*) $\\
$ d(C) = \sum\limits_{(u,v) \in C} d(u,v) $
\bew Vergleich mit der Berechnung aufspannender Bäume, wähle jeweils Knoten $v$ der am nächsten zum aktuellen Baum liegt.\\
NI wählt ebenfalls diesen Knoten $v$ aus.\\
\includegraphics{bilder/tsp_ni_bew.eps}
Aufspannender Baum T vergrößert sich um $d(u,v)$, Kreis vergrößert sich um $cost(v) \le d(u,v)$.\\
\( \Rightarrow \) am ende gilt: $ d(c) \le 2 * d(T) $
Sei $C^*$ Kreis minimaler Länge ( = opt. TSP-Tour ).\\
\includegraphics{bilder/tsp_ni_bew2.eps}\\
Lasse irgendeine Kante weg. Dann entsteht ein Baum $T'$, ein aufspannender Baum. Folglich ist $d(T) \le d(T')$, da $T$ minimal ist.\\
Außerdem ist $d(T') < d(C^*)$\\
$\Rightarrow d(T) \le d(C^*)$\\
$\Rightarrow d(C) \le 2 * d(T) \le 2*d(C^*)$\\
$\Rightarrow $ \fbox{$d(C) \le 2*d(C^*)$} $\Box$
Varianten:
\begin{itemize}
\item Farthest Insertion (FI)
\item Random Insertion (RI)
\end{itemize}
\subsubsection{Christofides}
\begin{enumerate}[1)]
\item Konstruiere minimal aufspannenden Baum $T$.\\
Dann ist $d(T) \le d(C^*)$\\
\includegraphics{bilder/tsp_christofides.eps}
\item verdopple alle Kanten
\item Konstruiere Euler-Tour $E$ (mittels DFS)\\
$D(E) = 2*d(T) $
\item Konstruiere daraus TSP-Tour durch Abkürzungen\\
\includegraphics{bilder/tsp_christofides_2.eps}
\end{enumerate}
\underline{Verbesserung}
\includegraphics{bilder/tsp_christofides_adv.eps}\\
Erweitere T um Kanten, so das jeder Knoten geraden Grad hat.
Betrachte $U=$ Knoten mit ungeradem Grad in $T$
\lemma $|u|$ ist gerade\\
\bew $ \sum\limits_{v\in V} grad(v) = 2m $ ($m$ = Anzahl Kanten), da in der Summe jede Kante zweimal gezählt wird.\\
\(\Rightarrow \underbrace{2m}_{\text{gerade}} = \sum\limits_{u\in U} grad(u) + \underbrace{\sum\limits_{v \in V-U} grad(v)}_{\text{gerade}} \)\\
\(\Rightarrow \sum\limits_{u\in U} grad(u) \) ist gerade\\
\(\Rightarrow |n|\) gerade
Verbinde Knoten in $U$ paarweise, so dass die Summe der hinzugefügten Kanten möglichst klein ist.
Matching auf $U$.\\
\begin{wrapfigure}{l}{2cm}
\includegraphics{bilder/tsp_christofides_adv_matching.eps}
\end{wrapfigure}
Perfect Matching $M$ ist eine Menge von Kanten, so dass jeder Knoten zu genau einer Kante aus $M$ gehört.\\
Es gibt effiziente Verfahren zu Berechnung von minimalem perfect Matching.
Dann weiter wie vorher: konstruiere Eulertour $E$ und daraus TSP-Tour $C$.\\
Es gilt: $d(E) = d(T) + d(M) \ge d(C)$
\includegraphics{bilder/tsp_christofides_adv_kreis.eps}
Nehme jede zweite Kante\\
\(\Rightarrow\) perfect Matching $M_1$\\
Rest ist ebenfalls perfect Matching $M_2$
\begin{align*}
\Rightarrow d(C^*) &= d(M_1) + d(M_2)\\
&\ge d(M) + d(M)\\
&= 2 * d(M)\\
\Rightarrow d(M) &= \frac12 * d(C^*)\\
\Rightarrow d(C) &\le d(T) + d(M)\\
&\le d(C^*) + \frac * d(C^*)\\
&= \frac32 d(C^*)
\end{align*}
\end{document}

@ -1,3 +1,3 @@
Berechenbarkeits-KomplexTh.pdf: Berechenbarkeits-KomplexTh.tex bilder/*.xml
for FILE in $(find bilder/ -iname '*.xml') ; do ipetoipe -eps -runlatex ${FILE} ${FILE%.xml}.eps ; done
Berechenbarkeits-KomplexTh: Berechenbarkeits-KomplexTh.tex
cd bilder && make
pdflatex Berechenbarkeits-KomplexTh.tex

Loading…
Cancel
Save