I (items) and
S (slots), where
I >= S.
And a pairing function that determines whether a slot can accept an item.
Is there an efficient way to find whether a "complete" pairing of items to slots exist, where "complete" means every slot is filled?
(More importantly for my use case... is there a way, other than trying every combination, to determine if no such pairing exists?)