Proving Problems NPC
Efficient Recruiting
Organize a summer sports camp. Need at least one coach to cover sports. We have potential coaches. Here is the kicker - for each of the sports, there is some subset of applicants. Here is the decision problem: For a give number , is it possible to hire at most coaches and still cover sports?
Prove efficient recruiting is NPC.
Prove Efficient Recruiting in NP
Certificate: a subset of coaches that cover all sports
Certifier: for each coach in , mark the sport that he/she qualifies, check if all sports are cleared in the end.
The checker takes polynomial time. Thus, efficient recruiting is in NP.
Reduction from Vertex Cover
We want to show VC ER
Step 1 Construct a poly-time algorithm that converts VC inputs to ER inputs
Given a graph and an integer , we'd like to define a sport for each edge and a coach for each vertex . is qualified for sport iff is an endpoint of edge .
Step 2 Claim: an ER instance is true iff the corresponding VC instance is true
If there are coaches that cover all sports, then the vertices in the graph will cover all the edges in .
If there is a vertex cover of size , then this set of coaches will cover all sports.
Reduction from Set Cover
We want to show SC ER
Step 1 Convert SC inputs to ER inputs
Let the universe set be the set of sports, and let each coach's skills be a subset, so the collection of subsets will a collection of coaches. We have subsets union to .
Step 2 Claim: an ER instance is true iff the corresponding SC instance is true
If there are coaches that cover all sports, then the subsets will cover all the elements in the university and union to .
If there are subsets that union to , then these coaches will cover all sports.
References
Algorithm Design Ch8.2, 8.3
Last updated