Approximation algorithms for cycle packing problems

The <i>cycle packing number v<inf>c</inf>(G)</i> of a graph <i>G</i> is the maximum number of pairwise edge-disjoint cycles in <i>G.</i> Computing <i>v<inf>c</inf>(G)</i> is an NP-hard problem. We present approximation algorithms for computing <i>v<inf>c</inf>(G)</i> in both the undirected and directed cases. In the undirected case we analyze the modified greedy algorithm suggested in [4] and show that it has approximation ratio <i>O</i>(√log <i>n</i>) where <i>n</i> = |<i>V(G)</i>|, and this is tight. This improves upon the previous <i>O</i>(log <i>n</i>) upper bound for the approximation ratio of this algorithm. In the directed case we present a √<i>n</i>-approximation algorithm. Finally, we give an <i>O(n</i><sup>2/3</sup>)-approximation algorithm for the problem of finding a maximum number of edge-disjoint cycles that intersect a specified subset <i>S</i> of vertices. Our approximation ratios are the currently best known ones and, in addition, provide bounds on the <i>integrality gap</i> of standard LP-relaxations to these problems.