Given a directed graph, where each vector has a non-negative cost and each vertex has a non-negative profit, how do you find the spanning sub-tree of the graph with maximum profit? I want to constrain the cost is smaller to a given budget. I'm looking for an approximation algorithm for the problem with polynomial time complexity, and the theoretical approximation factor.
1 Answers
a spanning sub-tree
I'm going to assume that you meant an arborescence. Fix a root u (or just try all vertices for an extra factor of |V|). For every arc a, let xa be a 0-1 indicator variable for membership in the arborescence. For every vertex v, let yv be the same. The obvious integer program is
maximize ∑v profit(v) yv
∑a cost(a) xa ≤ budget
∀v≠u. ∀S⊆V, u∈S, v∉S. yv ≤ ∑a∈S×(V∖S) xa
∀a. xa ∈ {0, 1}
∀v. yv ∈ {0, 1}
Unfortunately, the integrality gap is infinite. After having the same problem with several other formulations, I am beginning to suspect rather strongly that there is no approximation algorithm with a “reasonable” approximation ratio. This problem sort of combines the buy-at-bulk mechanic with the budgeted maximum coverage problem, making it possible for the marginal cost of additional coverage to become extremely cheap, which seems as though it should lead to the kind of thresholding behavior that precludes approximation. One way out may be to settle for a bicriteria approximation (i.e., give the approximation algorithm a larger budget).

- 11
- 1