I'm not sure if this is a well-known problem to some people in some study out there, or if it's just something I've run into, so I've started this question with "set theory?" because I don't even know where this belongs.
My question is, I have a list of requirements, let's say something like
[B,C], [A,B], [C]
which would mean that person 1 wants either B or C, person 2 wants either A or B and person 3 wants C.
Given that there is only one of each element available (the pool is always the union of the set of requirements), this set of requirements can be satisfied in only 1 way:
person 1 => B
person 2 => A
person 3 => C
To help clarify, here's a set of requirements that can't be met:
[B, C], [C], [B]
Since if person 2 and 3 are satisfied person 1 cannot be.
Is there a method for determining existence of a solution given a set of requirements? i.e. is it possible to determine whether all persons can get what they want besides brute-force trial and error?
At first, I thought that as long as the cardinality of the union was greater than the cardinality of requestors then a solution must exist, but that's wrong by counterexample:
[A,B,C,D], [F], [F]
In this case, person 1 is satisfied but 2 and 3 cannot be.
Please help me improve this question. I'm so unsure of this, that I don't even know what kind of language to use to describe it. requestor? requirements? maybe these are weird words for what I'm talking about. I'd love to learn the right language for thinking about this :)