Optimal General Matchings

Szymon Dudycz, Katarzyna Paluch

Given a graph $G=(V,E)$ and for each vertex $v \in V$ a subset $B(v)$ of the set $\{0,1,\ldots, d_G(v)\}$, where $d_G(v)$ denotes the degree of vertex $v$ in the graph $G$, a $B$-factor of $G$ is any set $F \subseteq E$ such that $d_F(v) \in B(v)$ for each vertex $v$, where $d_F(v)$ denotes the number of edges of $F$ incident to $v$. The general factor problem asks the existence of a $B$-factor in a given graph. A set $B(v)$ is said to have a {\em gap of length} $p$ if there exists a natural number $k \in B(v)$ such that $k+1, \ldots, k+p \notin B(v)$ and $k+p+1 \in B(v)$. Without any restrictions the general factor problem is NP-complete. However, if no set $B(v)$ contains a gap of length greater than $1$, then the problem can be solved in polynomial time and Cornuejols \cite{Cor} presented an algorithm for finding a $B$-factor, if it exists. In this paper we consider a weighted version of the general factor problem, in which each edge has a nonnegative weight and we are interested in finding a $B$-factor of maximum (or minimum) weight. In particular, this version comprises the minimum/maximum cardinality variant of the general factor problem, where we want to find a $B$-factor having a minimum/maximum number of edges. We present an algorithm for the maximum/minimum weight $B$-factor for the case when no set $B(v)$ contains a gap of length greater than $1$. This also yields the first polynomial time algorithm for the maximum/minimum cardinality $B$-factor for this case.

arrow_drop_up