Maksimum ağırlık “adil” eşleme


9

"Maksimum Adil Eşleştirme" adını verdiğim bir grafikteki maksimum ağırlık eşleşmesinin bir çeşidi ile ilgileniyorum.

Grafiğin dolu olduğunu varsayın (ör. E=VxVE=V×V), Köşelerin çift sayıda ve kilo kar fonksiyonu olarak ifade edilir bu . Eşleşen bir verildiğinde , M (v) ile gösterilir ve v kenarının karı eşleşir.p:(V2)Np:(V2)NMMM(v)M(v)vv

Bir eşleme MM herhangi iki köşeler için, makul bir uygun IFF olan u,vVu,vV : (wV:  p({w,v})p({w,u}))M(v)M(u)

(wV:  p({w,v})p({w,u}))M(v)M(u)

Yani, V \ 'deki herhangi bir köşe için wVwV, ww bir tepe vv eşleştirilmesi onu bir tepe u ile eşleştirmekten daha yüksek kazanç sağlıyorsa uu, adil bir eşleşme M (v) \ geq M (u)' u yeterli olmalıdır M(v)M(u)M(v)M(u).

Verimli bir adil ağırlık eşleştirmesini verimli bulabilir miyiz?


İlginç bir durum, grafiğin iki taraflı olması ve adaletin sadece bir tarafa uygulanması, yani G = (L \ cup R, L \ times R) varsayalım G=(LR,L×R)G=(LR,L×R)ve bize p:L×RNp:L×RN .

Bir Fair İkili Eşleme eşleşen olan GG , öyle ki herhangi bir iki köşe için u,vLu,vL : (wR:  p({v,w})p({u,w}))M(v)M(u)

(wR:  p({v,w})p({u,w}))M(v)M(u)

Maksimum ağırlıkta adil bir bipartit eşleştirmeyi ne kadar hızlı bulabiliriz?


Bu sorunun motivasyonu iki taraflı özel durumdan gelir. işçiniz ve göreviniz olduğunu ve işçisinin işinden kar üretebileceğini varsayalım . Burada sorun, toplam getirileri en üst düzeye çıkarırken makul bir şekilde (bir anlamda işçilerin "yırtık" hissetmeyeceklerini) tasarlamaktır.nnmmiipi,jpi,jjj

İşçilerin işlere tahsis edilmesinin sosyal refahını (veya fabrika kârını) kârların toplamı olarak tanımlarsak.

İş atamanın gücü için farklı senaryolara baktığımızda, aşağıdaki sonuçları elde ediyoruz:

  • Herhangi bir işçiye herhangi bir işçiyi atamamıza izin verilirse, fabrikayı verimli bir şekilde optimize edebiliriz (sadece maksimum ağırlık eşleştirmesi bulun).

  • Eğer her işçi kendi başına bir görev seçerse, işinin seçileceğini varsayarsak (her iş için sadece tek bir iş seçilebilir), görevi seçen en kalifiye işçi ise, işçiler 'açgözlü' dengesi. Bunun nedeni, en fazla kazanabilecek olan işçinin ( ) en kârlı işi seçeceğidir. Eşleştirme için açgözlü algoritmanın yaklaşık oranına göre, bu mümkün olan maksimum sosyal refahın 2 yaklaşımını vermelidir.i=argmaximaxjpi,ji=argmaximaxjpi,j

Arada bir şey arıyorum. İşçileri işlere atayabileceğimizi varsayalım, ancak onlara "daha az vasıflı" işçinin onlardan daha fazla kazanamayacağına söz vermek zorundayız.

Çalışanlara verimli bir şekilde gelecek vaat eden "adalet" i nasıl maksimum ağırlık eşleştirmesi bulabiliriz?


Teğetsel olarak, ikinci (bipartit) dava için, ilk işçi kârını veren "haksız" eşleşmeler olmasına rağmen, her "adil" eşleşmenin ilk işçi karını 1 ve geri kalan sıfırı verdiği örnekleri oluşturmak kolaydır. 1-2ε12ϵ ve herkes kar eder 1-ε1ϵ. Benzer şekilde, maksimum ağırlıklı adil eşleşmenin her bir işçiye kâr sağladığı örnekler2/n2/n, her çalışanın kârını sağlayan haksız eşleşmeler olmasına rağmen {1-ε,1-2ε}{1ϵ,12ϵ}.
Neal Young

@NealYoung - Karlar farklıysa bu senaryoların var olamayacağını varsaymak doğru mudur?
RB

Oyun teorisinde, alternatifler arasında ayrım yapamamanın sosyal refahı önemli ölçüde azalttığı standart bir konu gibi görünüyor.
RB

Hata! Yorumumu geri alıyorum - sonuçta bu örneklerin gerçekleşebileceğinden emin değilim!
Neal Young

Yanıtlar:


1

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 uLuL and w{c,d}w{c,d}, while p(u,w)=1p(u,w)=1 for uLuL 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 wRwR, 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:ER+p:ER+ as described in the problem, determining whether GG 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 GG 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:ER+p:ER+ such that GG 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 vLRvLR, we let vv denote the partner of vv. Each vertex LL and its partner LL will be equivalent, meaning that we will make p(,r)=p(,r) for all rR.

p(,r)=p(,r) for all rR.
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,rr,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 rr (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.

  1. Add a pair of partner vertices r({i,j}),r({i,j}) to R.

  2. 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}).
  3. 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 rR 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 L0 (partners) to L, along with a two vertices R0 and R0 (also partners) to R. Set π(L0,R0)=π(L0,R0)=1, allowing L0 and L0 to be matched to R0 and R0. For every other vertex rR, set π(L0,r) to some unique number. (Hence, any fair matching must match L0 and L0 to R0 and R0.) For every iV, for every incident edge {i,j}E, set π((i,j),R0)=i and π((i,j),R0)=|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, (rR) π((i,j),r)π((i,j),r).

Considering the profits assigned to edges incident to R0 and R0, 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 L0 to R0 and R0, and also, for each iV, 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 L0 to R0 and R0.

For each vertex iI, 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 iVI, 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 L0 to R0 and R0. For each iV, 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 R0. We can assign profits to the latter edges to ensure the filler vertices are not dominated by (nor dominate) any other vertex.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.