Find sets with given union
This is related to the Hitting-Set-Decision-Problem:

Given $U=\{1,\ldots , n\}$ and $S\subseteq 2^U $, integer $k$
Decide whether $C\subseteq S $ exists s.t. $\cup_{X \in C} X = U$ and  $|C| \leq k$

The problem is NP-COMPLETE and thus we do not know whether a polynomial algorithm exists. The optimization problem which you refer to is NP-hard.
There are approximation algorithms (see wikipedia).