Suppose I have N packets; and M users (M>N).
Each packet has a value to offer to each user.
Each user has a demand.
We need to distribute the packets to users such that users are maximally satisfied. Each packet can be assigned to only one user.
Example. N=3; M=5; the value on each packet for each user are as follows:
packet1(10,20,30,40,50)
packet2(20,10,20,20,0)
packet3(20,10,10,30,20)
This means if packet1 is assigned to user 1, it gets 10; if assigned to user 2 it gets 20; user3 could get 30; user 4 gets 40; user 5 could get 50. Similarly for the other packets. But one packet can be assigned to only one user.
Let the demand of users 1 to 5 be (40,50,30,60,70) respectively. (Example: if packet2,3 are assigned to user 1, it gets (20+20)= 40, and is satisfied.)
So, which packet should we assign to which user to satisfy the maximum number of users?
Can someone please suggest how to prove the (NP)hardness of this problem? (Is there a classic equivalent problem?)