GreedyVC
This commit is contained in:
parent
5304c6547d
commit
fc38c96dac
Binary file not shown.
@ -102,6 +102,10 @@
|
|||||||
\newcommand{\primaldualscone}{\algo{PrimalDualSC\_1}}
|
\newcommand{\primaldualscone}{\algo{PrimalDualSC\_1}}
|
||||||
\newcommand{\primaldualsctwo}{\algo{PrimalDualSC\_2}}
|
\newcommand{\primaldualsctwo}{\algo{PrimalDualSC\_2}}
|
||||||
|
|
||||||
|
% Vertex-Cover
|
||||||
|
\newcommand{\vertexcover}{\problem{VertexCover}}
|
||||||
|
\newcommand{\greedyvc}{\algo{GreedyVC}}
|
||||||
|
|
||||||
% Beweisumgebungen
|
% Beweisumgebungen
|
||||||
\newtheorem*{satz}{Satz}
|
\newtheorem*{satz}{Satz}
|
||||||
\newtheorem*{lemma}{Lemma}
|
\newtheorem*{lemma}{Lemma}
|
||||||
@ -224,6 +228,15 @@ Eine Boolesche $(n, m)$-Formel $\Phi = C_1 \land \dots \land C_m$ in konjunktive
|
|||||||
\ziel &= \min
|
\ziel &= \min
|
||||||
\end{align*}
|
\end{align*}
|
||||||
|
|
||||||
|
\subsubsection{Das Knotenüberdeckungsproblem \vertexcover}
|
||||||
|
Spezialfall von \setcover:
|
||||||
|
\begin{align*}
|
||||||
|
\domain &= \{\encoded{G} \mid \text{$G = (E, V)$ ein Graph}\}\\
|
||||||
|
\solution(\encoded{G}) &= \{ C \mid C \subset V, \forall e \in E: e \cap C \neq \emptyset\}\\
|
||||||
|
f(C) &= \abs{C}\\
|
||||||
|
\ziel &= \min
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
\subsection{$t(n)$-Zeit-Approximationsalgorithmus}
|
\subsection{$t(n)$-Zeit-Approximationsalgorithmus}
|
||||||
Berechnet ein Algorithmus $A$ in Zeit $t(\abs{I})$ eine Ausgabe $\sigma_I^A \in \solution(I)$ für Eingabe $I \in \domain$, wird er als $t(n)$-Zeit-Approximationsalgorithmus bezeichnet. Es gilt die Schreibweise $A(I) = f(\sigma_I^A)$.
|
Berechnet ein Algorithmus $A$ in Zeit $t(\abs{I})$ eine Ausgabe $\sigma_I^A \in \solution(I)$ für Eingabe $I \in \domain$, wird er als $t(n)$-Zeit-Approximationsalgorithmus bezeichnet. Es gilt die Schreibweise $A(I) = f(\sigma_I^A)$.
|
||||||
|
|
||||||
@ -618,6 +631,24 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
|
|||||||
\end{equation*}
|
\end{equation*}
|
||||||
\end{proof}
|
\end{proof}
|
||||||
|
|
||||||
|
\section{\greedyvc{} für \vertexcover}
|
||||||
|
\begin{algorithmic}[1]
|
||||||
|
\State $C = \emptyset$
|
||||||
|
\While{$E \neq \emptyset$}
|
||||||
|
\State wähle beliebige Kante $\{u, v\} \in E$
|
||||||
|
\State $C = C \cup \{u,v\}$
|
||||||
|
\State lösche $u,v$ und die dazu adjazenten Kanten aus $G$
|
||||||
|
\EndWhile
|
||||||
|
\State\Return $C$
|
||||||
|
\end{algorithmic}
|
||||||
|
|
||||||
|
\begin{satz}
|
||||||
|
\greedyvc{} liefert eine Knotenüberdeckung mit relativer Güte $2$.
|
||||||
|
\end{satz}
|
||||||
|
\begin{proof}
|
||||||
|
Wenn \greedyvc{} zwei Knoten hinzufügt, könnte es auch ausreichen, nur eine einzelne Kante aufzunehmen.
|
||||||
|
\end{proof}
|
||||||
|
|
||||||
\section{Christofides' Algorithmus \algo{CH} für $\deltatsp$}
|
\section{Christofides' Algorithmus \algo{CH} für $\deltatsp$}
|
||||||
Ein Matching $M$ eines kantengewichteten Graphen $G$ ist ein Teilgraph von $G$ mit $\Delta(G) \le 1$. Ist $G$ ein vollständiger Graph mit $\abs{V}$ gerade, dann gibt es perfekte Matchings. In einem perfekten Matching haben alle Knoten genau den Grad 1. Ein perfektes Matching mit kleinstmöglichem Gewicht wird als leichtestes Matching bezeichnet. Ein solches leichtestes Matching kann in $\bigO(n^{2.5}\cdot (\log n)^4)$ berechnet werden.
|
Ein Matching $M$ eines kantengewichteten Graphen $G$ ist ein Teilgraph von $G$ mit $\Delta(G) \le 1$. Ist $G$ ein vollständiger Graph mit $\abs{V}$ gerade, dann gibt es perfekte Matchings. In einem perfekten Matching haben alle Knoten genau den Grad 1. Ein perfektes Matching mit kleinstmöglichem Gewicht wird als leichtestes Matching bezeichnet. Ein solches leichtestes Matching kann in $\bigO(n^{2.5}\cdot (\log n)^4)$ berechnet werden.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user