putting objects in buckets -- optimization problem
I assume that $\cal O$ and $\cal B$ are of polynomial size. One way to solve this problem is to reduce it to the Maximum Cost Bipartite Matching Problem. Consider the following bipartite graph $G = (L\cup R, E)$:


$L = \{b_i: b\in {\cal B}, 1\leq i \leq\mu_b\}$, that is,  for
every bucket $b$ and $i\in \{1,\dots, \mu_b\}$, we introduce a vertex
$b_i$    
$R = \cal O$    
$E = L \times R$, the cost of the edge $(b_i,o)$ equals $E(o,b)$.


We find a maximum cost matching $M$ in $G$. Now we construct the solution to our original problem: bucket $b$ contains those objects that are matched in $M$ with vertices $b_1, \dots, b_{\mu_b}$. Clearly, each bucket $b$ contains $\mu_b$ objects. The value of this solution equals the cost of $M$.