Assume there are $M$ items and $N$ people with $M \ge N$. A single item can be assigned to more than one person; however, item $i$ cannot be assigned more than $d_i$ times in total. Furthermore, each item has a category $c_i$ and a single person cannot be assigned two or more items of the same category.
The assignment of item $i$ to person $p$ produces value $v_{i, p}$. I would like to find an assignment which maximizes the total value.
It should be fairly simple to write this as an, e.g., MiniZinc model. What I am interested is whether this resembles some optimization problem that has already been researched.
Your problem is actually more manageable with a greedy approach: 1) short the $v_{i,p}$ values into a list 2) for each person $p$ keep a category table where $u_p(x)=1$ if category $x$ is used and $0$ otherwise. 3) starting from the top assign the maximum value $v_{i,p}$ to the total sum if $d_i>0$ and the category of item $i$ is not used by person $p$ and then assign $d_i:=d_i-1$ and set $u_p(x)=1$. 4) the algorithm terminates when you reach the bottom value and takes time $MN$. It isn’t hard to prove that the correctness of this algorithm.