I have the following problem that seems to share some similarities to the vertex cover problem.
We have a directed graph G=(V,E) with |V| vertices and |E| edges. Let us imagine that a vertex represents a person and that an edge from vertex A to vetrex B represents an information path from B to A, i.e. if B is given a piece of information then A also has it. However, if another edge goes from vertex C to vertex A, then the information will not reach C unless there is an edge from C to B or if the information is given directly to A also.
Now the question is what the maximum number of vertices/persons are that we can reach by giving information to (at most) k vertices/persons. I think this is closely related to the vertex problem, but where we only have to cover k vertices instead of all. But still it does not seem to quite fit the other problem.
Can anybody name a well-known problem that shares a similar structure? This would help me better to approach an approximation algorithm for it.
Edit: I am intrested in the optimization aspect of this problem, but it seems to me that an optimal approach would be to choose a set of connected people, as large as possible, and then remove the selected people from all the other sets of connected people and repeat the process. Then the problem would be in P, but it is actually NP-hard. This I do not see.
What you’re describing here is closely related to the dominating set problem. A dominating set is a set of nodes where each node is either in the set or at the end of an edge whose other endpoint is in the set. In your case, you’re more properly looking at the dominating set problem in directed graphs, and your graph happens to have the edge reversed.
This problem is known to be NP-hard, so you’ll likely need to look for approximation algorithms.