Branch and Recharge: Exact algorithms for generalized domination
Résumé
Let $\sigma$ and $\varrho$ be two sets of nonnegative integers. A vertex subset $S\subseteq V$ of an undirected graph $G=(V,E)$ is called a $(\sigma,\varrho)$-dominating set of $G$ if $|N(v)\cap S| \in \sigma$ for all $v\in S$ and $|N(v)\cap S| \in \varrho$ for all $v\in V\setminus S$. This notion introduced by Telle generalizes many domination-type graph invariants. For many particular choices of $\sigma$ and $\varrho$ it is NP-complete to decide whether an input graph has a $(\sigma,\varrho)$-dominating set. We show a general algorithm enumerating all $(\sigma,\varrho)$-dominating sets of an input graph $G$ in time $O^*(c^n)$ for some $c<2$ using only polynomial space, if $\sigma$ is successor-free, i.e., it does not contain two consecutive integers, and either both $\sigma$ and $\varrho$ are finite, or one of them is finite and $\sigma \cap \varrho = \emptyset$. Thus in this case one can find maximum and minimum $(\sigma,\varrho)$-dominating sets in time $o(2^n)$. Our algorithm straightforwardly implies a non trivial upper bound $c^n$ with $c<2$ for the number of $(\sigma,\varrho)$-dominating sets in an $n$-vertex graph under the above conditions on $\sigma$ and $\varrho$. Finally, we also present algorithms to find maximum and minimum \linebreak $(\{p\}, \{q\})$-dominating sets and to count the $(\{p\},\{q\})$-dominating sets of a graph in time $O^*(2^{n/2})$.