You've periodically helped the medical consulting firm Doctors Without Weekends on various hospital scheduling issues, and they've just come to you with a new problem. For each of the next n days, the hospital has determined the number of doctors they want on hand; thus, on day i, they have a requirement that exactly pi doctors be present.
There are k doctors, and each is asked to provide a list of days on which he or she is willing to work. Thus doctor j provides a set Lj of days on which he or she is willing to work.
The system produced by the consulting firm should take these lists and try to return to each doctor j a list Lj with the following properties.
(A) L(is a subset of Lj, so that doctor j only works on days he or she finds acceptable.
(B) If we consider the whole set of lists L[, …,L'k, it causes exactly pt doctors to be present on day i, for i = 1,2, ,n.
(a) Describe a polynomial-time algorithm that implements this system. Specifically, give a polynomial-time algorithm that takes the numbers p1, p2, ,pn, and the lists L1, ,Lk, and does one of the following two things.
- Return lists
satisfying properties (A) and (B); or
- Report (correctly) that there is no set of lists
that satisfies both properties (A) and (B).
(b) The hospital finds that the doctors tend to submit lists that are much too restrictive, and so it often happens that the system reports (correctly, but unfortunately) that no acceptable set of lists
.
Thus the hospital relaxes the requirements as follows. They add a new parameter c > 0, and the system now should try to return to each doctor j a list Lj with the following properties.
(A*) Lj contains at most c days that do not appear on the list Lj.
(B) (Same as before) If we consider the whole set of lists
it causes exactly pi doctors to be present on day i, for i = 1,2, ,n.
Describe a polynomial-time algorithm that implements this revised system. It should take the numbers p1, p2, ,pn, the lists
, and the parameter c > 0, and do one of the following two things.
- Return lists L1, L'2,..., L'k satisfying properties (A*) and (B); or
- Report (correctly) that there is no set of lists L1,L'2, …,L'k that satisfies both properties (A*) and (B).
We need at least 10 more requests to produce the solution.
0 / 10 have requested this problem solution
The more requests, the faster the answer.