We are given $n$ tasks and $m$ resources. Each task $i$ requires a set $S_i$ of resources to be active, and each resource can be used by at most one task. The Resource Allocation problem asks: given $S_1, \ldots, S_n$, and an integer $k$, whether it is possible to allocate the resources to the tasks so that at least $k$ tasks are active. Give a polynomial-time reduction from Independent Set to Resource Allocation

I am not sure how to construct the reduction. The difficulty I am having is the solver looks like a solver for a bipartite graph problem but we do not necessarily get a bipartite graph. Thank you!


Let's try to do some pattern matching. In independent set, we are given a graph, and want to find a maximum number of vertices satisfying some constraints. In your problem, we are given a collection of tasks and resources, and want to find the maximum number of resources satisfying some constraints. Hence it seems that tasks should correspond to vertices.

What about the constraints? In independent set, we are allowed to choose two vertices together if no edge connects them. In your problem, we are allowed to choose two tasks together if they have no common resource. Hence it seems that resources should correspond to edges.

You take it from here.

  • $\begingroup$ thank you very much. I really appreciate your answer $\endgroup$ – Kaan Yolsever Feb 6 '19 at 19:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.