Minimal Number of Vertices to Cover all Cycles

computational complexitygraph theoryreference-request

Consider the following computational problem:

Given a directed graph $G$, find a set of vertices $S$ such that for every cycle $C$ in $G$ at least one vertex of $C$ belongs to $S$. The set $S$ should be as small as possible.

My question:

Do you know whether this problem has been studied before and if yes, under what name would I find it? I have found the "Cycle Cover" problem so far, which considers the question of covering all vertices with some number of cycles. I could not find anything on my problem yet.

Note that I would also be interested in related questions, for example the same problem on undirected graphs.

Edit: The general problem is known to be NP-complete (see Rob Pratt's comment below). So I would in particular be interested whether special cases have been studied.

Best Answer

Such a set $S$ is called a feedback vertex set, and the Wikipedia article mentions that it remains NP-hard even for very sparse directed graphs: even when each vertex has at most two edges going in, and at most two edges going out.

This makes it unlikely that there are nontrivial special cases that are easy. But it's known (Chen, Liu, Lu 2007) that the problem for all directed graphs is fixed-parameter tractable in the following sense: if you are given a fixed value $k$ and want to know if there's a feedback vertex set of size $\le k$, then there's an algorithm that's polynomial in $n$, the number of vertices in the graph. (But with a horrible dependency on $k$.)

Related Question