Let's say I have a collection of servers. Each server has some proeprties like DISK space and RAM size. Here is an example:
Server A has 3000GB Disk space and 100GB RAM.
Server B has 1000GB Disk space and 60GB RAM.
Server C has 2000GB Disk space and 120GB RAM.
I also have a list of constraints that I want to verify if it can be satisfied by these servers. A constraint looks like this:
RAM= 40
DISK=1000
Numberof Such Servers = 3
The constraint means I want to find at least 3 servers in the server colletion that has available disk >= 1000 and available RAM >= 40. Please be aware that I could have multiple constraints.
If a serer is used to satisfy one constraint, then the used amount of resource should be deducted from the server. For example, if server A is used to satisfy the above constraint, then it's remaining resource is:
Server A has 2000GB Disk space and 60GB RAM.
Now given a list of servers and a list of constraints. I need to find if all constraints can be satisfied. My intuition tells me this problem is NP-Complete, but I cannot find a reduction from a known NP-Complete problem. Can anyone help?