2

Let $S$ be a set of nodes belonging to a directed graph $G = (V,E)$. A vertex $v$ of $G$ is said to be reachable from $S$ if and only if $v \in S$, or if each predecessor of $v$ is reachable from $S$ after removing any outgoing edge of $v$. We'll say that $S$ is a generator of $G$ if all nodes of $G$ are reachable from $S$.

Given a graph $G$, my goal is to find a small generator for $G$. Unfortunately, it is NP-hard to find a minimal generator for $G$.

How can I design an algorithm that returns an approximation of a minimum-length generator of $G$, given a graph $G$? What approximation factor is achievable?

Example

Let's take this graph: graph

$\{1,3,6\}$ is a generator because $\{1\}$ unlocks $2$, $\{2,3\}$ unlocks $5$ and $\{1,3,6\}$ unlocks $4$.

Now, if you take $S = \{1,5\}$, nodes $3$, $4$ and $6$ will remain unreached. $S$ is therefore not a generator of this graph.

In fact, we can see that, if $S$ is a generator, every cycle of the graph must contain at least one node in $S$.

0 Answers0