diff --git a/Latex/definitions.tex b/Latex/definitions.tex index bd58997162c411a48e7826e89a24a47bdb96f53b..b8105d0772f80359e0ffa45a4a5a3addd875b39b 100644 --- a/Latex/definitions.tex +++ b/Latex/definitions.tex @@ -1,5 +1,5 @@ \section{Methods} \raggedbottom -(Given an undirected Graph $G = (V,E)$.)?\\ +(Given an undirected Graph $G = (V,E)$. only once at the top)?\\ (May describe what this Graph represents at this stage)\\ (Maybe avoid too much formalism?) @@ -32,6 +32,6 @@ A $k$-hop Dominating Set $DS$ is a connected $k$-hop Dominating Set if the induc \end{definition} \begin{definition}[rooted connected k-hop Dominating Set] -Let $v_{root} \in V$ be a firmly defined vertex. +Let $v_{root} \in V$ be a predefined vertex. A rooted connected $k$-hop Dominating Set DS is as connected $k$-hop Dominating Set which also includes $v_{root}$. \end{definition} diff --git a/Latex/ilp.tex b/Latex/ilp.tex index 04b72f9d1719cf91a53b66f811b0c1a220bb1a43..9e75cd2a04c0e6e97cc7f5d6e0f50d80394b3fbe 100644 --- a/Latex/ilp.tex +++ b/Latex/ilp.tex @@ -1,23 +1,20 @@ \section{Linear Programming} \raggedbottom Linear programming is a technique to minimize linear functions. -A linear programm (LP) consists of a objective function, which is minimized with respect to a set of linear inequalities. \\ +The following definition is based on the book \citep{fischetti2019introduction}\\ + +A linear programm (LP) problem consists of an objective function that is minimized with respect to a set of linear inequalities. \\ \\ Linear programms can be expressed as \[min\{c^Tx : Ax \geq b, x \geq 0\}\] -$b \in \mathbb{R}^n$ and $c \in \mathbb{R}^n$ are constant vectors. $Ax \leq b$ denotes the inequalities which have to be respected. $A \in \mathbb{R}^{m \times n}$ is a matrix containing the coefficients of the $m$ inequalities. $c^Tx \in R$ is the objective function which is minimized. -$x \in \mathbb{R}$ is a vector describing possible solutions. If $x \in \mathbb{R}$ obeys all inequalities it is called a feasible solution. A solution $x^*$ is optimal if respects all inequalities and is minimal. +$b \in \mathbb{R}^n$ and $c \in \mathbb{R}^n$ are constant vectors. $Ax \leq b$ denotes the inequalities that have to be respected. $A \in \mathbb{R}^{m \times n}$ is a matrix containing the coefficients of the $m$ inequalities. $c^Tx \in R$ is the objective function that is minimized. +$x \in \mathbb{R}^n$ is a vector describing possible solutions. If $x \in \mathbb{R}^n$ obeys all inequalities it is called a feasible solution. A solution $x^*$ is optimal if it respects all inequalities and is minimal. \\ \\ Integer linear programms (ILPs) are linear programms with the additional restriction that all variables have to be integers: $x \in \mathbb{Z}$. -The decision variant of an ILP is NP-complete. -\\ -In this thesis we use a more readable notation which does not completely sticks to this definition. We write down the inequalities(and the objective function?) in a sum notation. (Maybe an example?) But it is possible to transform them into the matrix notation. -\\ +The decision variant of an ILP is NP-complete. (necessary as this is common knowledge?) \\ -Decision problems(combinatorical optimisation problems?/ \textbf{Decisions}. Not Decision Problems) can be modelled with ILPs. Every variable $x_i \in \{0,1\}$ denotes a possible decision(To include or not?). In our case we assign a decision variable for each vertex to decide if it is included in a dominating set or not. +Each line $j$ of the vector inequality $Ax \geq b$ can be expressed as the sum $\sum_{i=1}^{n}{a_ix_i} \geq b_j$. The objective function can be expressed as $\sum_{i=1}^n{c_ix_i}$. In this thesis we use this notation as we perceive it as more readable. \\ -\\ -(Maybe to "formal". Maybe introduce the used notation right away and try to find textbook or publication which also uses this notation to cite) - +Combinatorical optimisation problems can be modelled with ILPs.(Many define what they are and explain that MCDS is one of these?) Every variable $x_i \in \{0,1\}$ denotes a possible decision to include item $i \in \{1,...,n\}$ in the solution. In our case we assign a decision variable for each vertex to decide if it is included in the dominating set or not. \pagebreak diff --git a/Latex/implementation.tex b/Latex/implementation.tex index b0c893452a22a236edf4c843a954f675f39fab5d..6c73075d1f5e582c3aba216b26a6f442fde40fdd 100644 --- a/Latex/implementation.tex +++ b/Latex/implementation.tex @@ -1,20 +1,20 @@ \section{Implementation} \raggedbottom \subsection{Softwarestack?} \subsection{General?(better name)} -Our Implementation is node based which means that we only use decison variables for nodes and not for edges. +Our implementation is node based which means that we only use decison variables for nodes and not for edges. So we assigne a variable $x_v \in \{0,1\}$ for every $v \in V$, whereas $x_v = 1 \Leftrightarrow v \in DS$. (Maybe leaf classical dominating Set out?) \subsection{Minumum Dominating Set} -As we try to minimize the number of vertices inside the Dominating Set our ILP is given as:(Obvious/ useless phrase?) \\ -\textbf{objective target}: +As we try to minimize the number of vertices in the dominating set our ILP is given as:(Obvious/ useless phrase?) \\ +\textit{objective target}: \begin{equation} \label{obj} min\{\sum_{v \in V}{x_v}\} \end{equation} -\textbf{subject to:} +\textit{subject to:} \begin{equation} \label{base} \sum_{w \in N(v)}{x_w} + x_v \geq 1, \forall v \in V \end{equation} -The family of inequalitues \eqref{base} is an ILP Version of the formal definition. It says that each vertex or at least one of it's neighbors has to be included in the dominating set. +The family of inequalities \eqref{base} is an ILP Version of the formal definition. It says that each vertex or at least one of its neighbors has to be included in the dominating set. \subsection{Minimum $k$-hop Dominating Set} The objective target for this problem is the same as \eqref{base}. But the family of inequalities \eqref{base} is not valid for this case. Instead another famility of inequalities is valid: \\ @@ -27,9 +27,9 @@ This family of inequalities is a serves to model the requierement that each vert \subsection{Connectivity} To enforce connectivity(using ILP)there are different approaches. \subsubsection{Vertex separators} -On approach is to use so called vertex separators. In \citep{bomersbach} and \citep{fischetti_steiner_t} the authors used this approach to create ILP based algorithms to solve other graphtheoretical optimisation problems which require the solution to be connected. In both publications this approach showed to be very successful as their algorithms outperformed previous state of the art algorithms. (Maybe to general and too strong?) So it seemed reasonable to us to use it as well.(Unneccessary phrase?)\\ +On approach is to use so called vertex separators. In \citep{bomersbach} and \citep{fischetti_steiner_t} the authors used this approach to create ILP based algorithms to solve other graphtheoretical optimisation problems which require the solution to be connected. (In both papers it is mentioned that those separators define the connected subgraph polytope. Maybe mention as well?) In both publications this approach showed to be very successful as their algorithms outperformed previous state of the art algorithms. (Maybe to general and too strong?) So it seemed reasonable to us to use it as well.(Unneccessary phrase?)\\ \\ -Let $v,w \in V$. A v-w-separator(Maybe textit?/ Maybe other notation) is a subset $S_{v,w} \subset V$ such that $G[V-S_{v,w}]$ has no path between $v$ and $w$. A minimal v-w-separator $S_{{v,w}_{min}}$ is a v-w-separator where no vertex can be removed. If a vertex is removed it no longer separates $v$ and $w$. (Maybe sounds "too dumb"? Look into explanation of other papers.) Let $S(v,w)$ (Use different notation. This is misleading) denote the family of all(minimal?) v-w-separators. \\ +Let $v,w \in V$. A v-w-separator(Maybe textit?/ Maybe other notation) is a subset $S_{v,w} \subset V$ such that $G[V-S_{v,w}]$ has no path between $v$ and $w$. A minimal v-w-separator $S_{{v,w}_{min}}$ is a v-w-separator where no vertex can be removed. If a vertex is removed it no longer separates $v$ and $w$. (Maybe sounds "too dumb"? Look into explanation of other papers.) Let $S(v,w)$ (Use different notation. This is misleading) denote the family of all minimal v-w-separators. \\ The following family of inequalities taken from \citep{bomersbach} is used to enforce connectivity: @@ -37,18 +37,48 @@ The following family of inequalities taken from \citep{bomersbach} is used to en x_v + x_w \leq \sum_{u \in S_{v,w}}{x_u} + 1, \forall v, w \in V, v \neq w, \forall S_{v,w} \in S(v,w) \end{equation} -This inequalities requires that for each combination of two vertices $v$ and $w$ if both vertices included in the dominating set at least one vertex which separates them has also to be included. \\ +This inequalities require that for each combination of two vertices $v$ and $w$ if both vertices included in the dominating set at least one vertex which separates them has also to be included. \\ +In contrast to the problem from \citep{bomersbach} we have a predefined root node which must be part of the solution. So for our case it's sufficient to only use vertex separators that separate the connected component which includes the root node and the other connected components. In \citep{forrest} the authors introduced ILP-formulations for different problems motivated by forrest planning. One particular problem also had a predefined root node and demanded connectivity. They also used vertex separators to induce connectivity. For the particular problem they only used vertex separators that separate the root node from other components. As their tests showed and as our tests confirm this reduces the runtime.\\ \citep{bomersbach} states that as the number of vertex separators is potentially exponential this can create an exponential number of constraints(Previously always said inequalities. Might think about terminology again). Too many constraints would potentially overload the model(Maybe cite fischetti-steiner). This would increase the runtime as a lot of constranints had to be obeyed which may not be necessary to induce connectivity in the solution. -So in \citep{bomersbach} and \citep{fischetti_steiner_t} they treated this constraints as lazy constraints which means that none of those constraints are included in the initial model. So iteratively integer solutions are resolved. If an integer solution is not connected minimal vertex separators which separate single components are identified via "algorithm bla"(\textbf{TODO}: Add algorithm, runtime and state that is taken from bomersbach). The constraints \eqref{sep} containing this separators are then added to the model and the iteration process continues until a connected integer solution is found. \\ -\\ +So in \citep{bomersbach}, \citep{fischetti_steiner_t} and \citep{forrest} they treated this constraints as lazy constraints which means that none of those constraints are included in the initial model. So iteratively integer solutions are resolved. If an integer solution is not connected minimal vertex separators which separate single components(In our case connected components and the root-component?) are identified via the following algorithms +\begin{algorithm}[H] +\SetAlgoLined + $DS^* := \{v | x_v = 1\}$ \\ + $G' := G[DS]$\\ + $C := $ set of all disjunct connected components\\ + $c_{root} := $ connected component that contains $v_{root}$\\ + \For{all components $c$ in $C \setminus \{c_{root}\}$} { + $v := $ any node from $c$\\ + $s_1 := $ findMinVertexSeparator($G$, $DS^*$, $v \in c$, $v_{root}$, $c_{root}$)\\ + $s_2 :=$ findMinVertexSeparator($G$, $DS^*$, $v_{root}$, $v \in c$))\\ + \For{all $w_1 \in c$} { + add the following constraint to the model: $\sum_{s \in s_1}{x_s} \geq x_{w_1} + x_{v_{root}} - 1$\\ + } + \For{all $w_2 \in c_{root}$} { + add the following constraint to the model: $\sum_{s \in s_2}{x_s} \geq x_{w_2} + x_{v} -1 $ + } + } +\caption{Add violated constraints} +\end{algorithm} + +\begin{algorithm}[H] \label{minSep} +\SetAlgoLined + $N(c_v) := $ neighbors of nodes of $c_w$ in $G$ (Maybe use the formal definition from methods?)\\ + $G' := G$ with all edges between vertices in $c_v \cup N(c_v)$ removed\\ + $R_w := $ vertices that can be reached from $w$ in $G'$\\ + \Return $N(c_v) \cap R_w$ +\caption{findMinVertexSeparator($G$, $DS^*$, $v \in c_v$, $w$, $c_v$)} +\end{algorithm} + +The constraints \eqref{sep} containing this separators are then added to the model and the iteration process continues until a connected integer solution is found. Algorithm 2 is the same linear time algorithm as used in \citep{bomersbach} for to identify minimal vertex separators.\\ For the case that there is no optimal solution of size $1$ an additional constraint is added to tighten up the feasible region and to prevent unneccessary iterations. \begin{equation} \label{neigh} x_v \leq \sum_{w \in N(v)} x_w, \forall v \in V \end{equation} -This constraint demands that for each vertex which is part of the dominating set at least one of its neighbors is also included. In \citep{bomersbach} and \citep{fischetti_steiner_t} this constraint is also part of the model. +This constraint demands that for each vertex which is part of the dominating set at least one of its neighbors is also included. In \citep{bomersbach} and \citep{fischetti_steiner_t} this constraint is also part of the model. (Maybe mention that the "neighborhood" is always a minimum separator so this type of inequalities are valid) \subsection{Minimum connected $k$-hop Dominating Set} \label{khopmodel} -A connected $k$-hop dominating set is a $k$-hop dominating set DS such that $G[DS]$ is connected.(Maybe refer to methods as this is redundant?). It's ILP-Formulation consists of the \textbf{objective target} \eqref{obj} and constraints \eqref{khop} and a collection of constraints to induce connectivity(In the future different types of potential constraints should be added). +A connected $k$-hop dominating set is a $k$-hop dominating set DS such that $G[DS]$ is connected.(Maybe refer to methods as this is redundant?). Its ILP-Formulation consists of the objective target \eqref{obj} and constraints \eqref{khop} and a collection of constraints to induce connectivity(In the future different types of potential constraints should be added). \subsection{Minimum rooted connected $k$-hop Dominating Set} Let $v_{root} \in V$ be the predefined root.The ILP-Model of this problem is the ILP-Model of \ref{khopmodel} enriched with following constraint. diff --git a/Latex/references.bib b/Latex/references.bib index 0dc1cd188653fa62dc7df653b8a5480b4c40b178..a94fdbb121a575e91cc2f0be79f7b25dd922e572 100644 --- a/Latex/references.bib +++ b/Latex/references.bib @@ -64,3 +64,31 @@ title = {On imposing connectivity constraints in integer programs}, journal = {Mathematical Programming}, doi = {10.1007/s10107-017-1117-8} } +@book{fischetti2019introduction, + title={Introduction to Mathematical Optimization}, + author={Fischetti, M.}, + isbn={9781692792022}, + url={https://books.google.de/books?id=0sbhyQEACAAJ}, + year={2019}, + publisher={Independently Published} +} +@article{forrest, +author = {Carvajal, Rodolfo and Constantino, Miguel and Goycoolea, Marcos and Vielma, Juan and Weintraub, Andres}, +year = {2013}, +month = {08}, +pages = {824-836}, +title = {Imposing Connectivity Constraints in Forest Planning Models}, +volume = {61}, +journal = {Operations Research}, +doi = {10.2307/23481799} +} +@article{fault_tolerant, +author = {Buchanan, Austin and Sung, Je and Butenko, Sergiy and Pasiliao, Eduardo}, +year = {2015}, +month = {02}, +pages = {178-188}, +title = {An Integer Programming Approach for Fault-Tolerant Connected Dominating Sets}, +volume = {27}, +journal = {INFORMS Journal on Computing}, +doi = {10.1287/ijoc.2014.0619} +} diff --git a/Latex/titelmakros.tex b/Latex/titelmakros.tex index 1db6616f0591522058ccafe38308a6de16822b54..604504c0238e98537fbdb92b3eabb276c61d507e 100644 --- a/Latex/titelmakros.tex +++ b/Latex/titelmakros.tex @@ -44,10 +44,12 @@ \usepackage{shortvrb} \usepackage{url} \usepackage{xcolor} -\usepackage[colorlinks,citecolor=blue,linkcolor=black]{hyperref} %anklickbares Inhaltsverzeichnis +\usepackage[colorlinks,citecolor=blue,linkcolor=black]{hyperref} + %anklickbares Inhaltsverzeichnis \usepackage{amsmath} \usepackage{amssymb} +\usepackage[ruled,vlined,linesnumbered]{algorithm2e} \usepackage{amsthm} \theoremstyle{definition}