I believe "maximum weight fair bipartite matching" as you've defined it is NP-hard. Even more, determining the existence of a fair bipartite matching is NP-hard.
Before I give a proof sketch, for intuition, consider the following small instance. Take G′=(L,R,E′=L×R)G′=(L,R,E′=L×R) where L={a,b}L={a,b}, R={c,d,e,f}R={c,d,e,f}. Take pp such that p(u,w)=0p(u,w)=0 for u∈Lu∈L and w∈{c,d}w∈{c,d}, while p(u,w)=1p(u,w)=1 for u∈Lu∈L and w∈{e,f}w∈{e,f}. Then aa and bb are equivalent, in the sense that p(a,w)=p(b,w)p(a,w)=p(b,w) for all w∈Rw∈R, so any fair matching must give aa and bb the same profit. Hence, the only fair matchings either match aa and bb to cc and dd, or they match aa and bb to ee and ff. Using this kind of gadget, we can force coordination of the edges in the matching. This is the basis of the reduction.
Here's an attempt at a proof. It's a bit involved. Probably there are some mistakes, but hopefully any mistakes can be fixed.
Lemma 1. Given G′=(L,R,E′=L×R)G′=(L,R,E′=L×R) and p:E′→R+p:E′→R+ as described in the problem, determining whether G′G′ contains a fair matching is NP-hard.
Proof sketch. The proof is by reduction from Independent Set in cubic graphs. Let (G=(V,E),k)(G=(V,E),k) be a given instance of Independent Set where G′G′ is a cubic graph (every vertex has degree 3). We describe how to construct a graph G′=(L,R,E′=L×R)G′=(L,R,E′=L×R) and profit function p:E′→R+p:E′→R+ such that G′G′ has a fair bipartite matching if and only if GG has an independent set of size kk.
The vertices in LL will come in pairs, called partners.
Likewise for the vertices in RR.
For each vertex v∈L∪Rv∈L∪R, we let v′v′ denote the partner of vv.
Each vertex ℓ∈Lℓ∈L and its partner ℓ′∈Lℓ′∈L will be equivalent, meaning that we will make
p(ℓ,r)=p(ℓ′,r) for all r∈R.
p(ℓ,r)=p(ℓ′,r) for all r∈R.
Consequently, any fair matching must assign the same profit to
ℓℓ and
ℓ′ℓ′.
In what follows, we use
π(ℓ,r)π(ℓ,r)
to denote the value of
p(ℓ,r)=p(ℓ′,r)p(ℓ,r)=p(ℓ′,r).
Further, for each pair ℓℓ in LL,
and each pair of partners r,r′r,r′ in RR,
either we make
π(ℓ,r)=π(ℓ,r′)
π(ℓ,r)=π(ℓ,r′)
or we make
π(ℓ,r)≠π(ℓ,r′).π(ℓ,r)≠π(ℓ,r′).
In the former case, we say we
allow ℓℓ and
ℓ′ℓ′ to be matched to
rr and
r′r′
(because doing so would assign the same profit to
ℓℓ and
ℓ′ℓ′,
as required).
In the latter case, we say we
prevent ℓℓ and
ℓ′ℓ′ from being (both) matched to
rr and
r′
(because doing so would not assign the same profit to
ℓ and
ℓ′).
As the given graph G=(V,E) is cubic, it satisfies 3|V|=2|E|, and any independent set I of size k in G is incident to exactly 3k edges. Assume for ease of notation that V={1,2,…,n}.
For each edge {i,j}∈E, do the following.
Add a pair of partner vertices r({i,j}),r′({i,j}) to R.
For endpoint i, add a pair of partner vertices ℓ(i,j),ℓ′(i,j) to L. Set π(ℓ(i,j),r({i,j}))=π(ℓ(i,j),r′({i,j}))=i,
allowing ℓ(i,j) and
ℓ′(i,j) to be matched to r({i,j}) and r′({i,j}).
Symmetrically, for the other endpoint j: add another pair of
partner vertices ℓ(j,i),ℓ′(j,i) to L, and set
π(ℓ(j,i),r({i,j})=π(ℓ(j,i),r′({i,j}))=j,
allowing ℓ(j,i) and ℓ′(j,i) to be matched to r({i,j})
and r′({i,j}).
For every ℓ∈L and r∈R added so far,
if the pair ℓ,ℓ′ is not explicitly allowed (above)
to be matched to r,r′, then prevent the match
by assigning π(ℓ,r) and π(ℓ,r′) each some unique number.
Next, add 3(|V|−k) pairs of filler vertices to R.
For each filler vertex r and each ℓ(i,j)∈L,
set π(ℓ(i,j),r)=0.
Finally, add two vertices L0 and L′0 (partners) to L, along with a two vertices R0 and R′0 (also partners) to R.
Set π(L0,R0)=π(L0,R′0)=1, allowing L0 and L′0 to be matched to R0 and R′0. For every other vertex r∈R, set π(L0,r) to some unique number. (Hence, any fair matching must match L0 and L′0 to R0 and R′0.)
For every i∈V, for every incident edge {i,j}∈E,
set π(ℓ(i,j),R0)=i and π(ℓ(i,j),R′0)=|V|−i+1.
That completes the reduction. To finish, we prove it is correct.
First consider for what pairs of vertices ℓ(i,j),ℓ(i′,j′)∈L
the latter dominates the former, that is,
(∀r∈R) π(ℓ(i,j),r)≤π(ℓ(i′,j′),r).
Considering the profits assigned to edges incident to R0 and R′0,
this condition can only be met if i=i′, and, inspecting the definition of π for the remaining edges, the condition i=i′ is sufficient. Hence a matching is fair if and only if it assigns L0 and L′0 to R0 and R′0, and also, for each i∈V, gives the same profit to all vertices in
N(i)={ℓ(i,j):{i,j}∈E}∪{ℓ′(i,j):{i,j}∈E}.
First, assume that G has an independent set I of size k. Obtain a fair matching for G′ from I as follows.
Match L0 and L′0 to R0 and R′0.
For each vertex i∈I,
let {i,j1},{i,j2},{i,j3} be its three incident edges.
For each edge {i,jh},
match vertex ℓ(i,jh) and its partner ℓ′(i,jh)
to r({i,jh}) and r′({i,jh}).
This gives all vertices in N(i) profit i.
For each of the |V|−k vertices i∈V∖I,
for each of the three edges {i,j} incident to i,
match ℓ(i,j) and its partner ℓ′(i,j)
to some unique pair of filler vertices r and its partner r′.
This gives all vertices in N(i) profit 0.
Hence, this matching is fair.
Next, assume that G′ has a fair matching M.
M must match L0 and L′0 to R0 and R′0.
For each i∈V, the matching must give each of the vertices in N(i)
the same profit. For each ℓ(i,j)∈N(i), its partner ℓ′(i,j) is also in N(i). So, by inspection of the reduction,
the profit of each such vertex must be either i
(in which case all six vertices in N(i) are matched
to vertices r({i,j}) and their partners)
or zero
(in which case all six vertices in N(i) are matched
to filler vertices in R).
Let I be the set of vertices for which the former case holds.
For each edge {i,j}, the vertex r({i,j}),
and its partner, are each matched to one vertex.
It follows that I is an independent set.
Since the number of filler vertices is 6(|V|−k),
the size of I must be at least k.
QED (?)
I think it's basically correct, if a bit convoluted. Let me know if you see any mistakes, or a way to simplify the proof.
The reduction above assumes it's okay to take |R|>|L|.
If that's undesirable, then I'd guess we can pad L
with |R|−|L| filler vertices, assigning profit 0
to all of their edges except the edges to R0 and R′0.
We can assign profits to the latter edges to ensure
the filler vertices are not dominated by (nor dominate)
any other vertex.