The assignment problem is well-studied and has a nice polynomial time algorithm. I'm interested in an extension of this problem where all edges are in a certain group and taking multiple edges from the same group can end up with diminishing returns due to dependence on a shared resource. This means the edges are no longer independent and therefore it cannot be directly modeled as an assignment problem.
More formally, the problem is:
Given:
A weighted bipartite graph $G=(V,E)$ with weight function $w:E\rightarrow \mathbb{Q}$,
a "type set" $\mathcal{T}$ which partitions $E$ into groups that require the same resource. $T:E\rightarrow \mathcal{T}$ shows which type is associated with an edge.
A resource function $R: \mathcal{T}\times \mathbb{N}\rightarrow \mathbb{Q}$, decreasing in the second argument
Find a matching $M$ of $G$ and index $I:M\rightarrow \mathbb{N}$ that maximizes $$\sum_{e\in M} \min\{w(e), R(T(e),I(e))\},$$ where $I$ can use each value only once for each type (i.e. if $I(e)=I(e')$ and $e\neq e'$, then $T(e)\neq T(e')$).
Can this problem still be solved in polynomial time? If not, what would be a good alternative to model this, and why? Does this change if the number of types is a small constant (e.g. $<10$)?
Some observations:
I think it is possible to model this as an MILP, but that could take long even when the number of types is small. Still, it is possible that is the best we can do.
Also note that this is a special case of the 3-dimensional (weighted) matching problem, but that problem is very hard and modelling this in that way seems less promising than the MILP.
This question is inspired by an answer I gave here, which can be seen as an application of this problem.