Pencocokan "adil" berat maksimum


9

Saya tertarik dengan varian pencocokan berat maksimum dalam grafik, yang saya sebut "Pencocokan Maksimum Maksimal".

Asumsikan bahwa grafik penuh (yaitu E=V×V ), memiliki jumlah yang lebih dari simpul, dan bahwa berat diberikan oleh fungsi keuntungan p:(V2)N . Diberikan M yang cocok M, dilambangkan dengan M(v) keuntungan dari tepi v cocok dengan.

cocok adalah iff yang cocok, untuk dua simpul : Mu,vV

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

Yaitu, jika untuk setiap simpul , pencocokan ke simpul memberikan laba lebih tinggi daripada mencocokkannya dengan simpul , pencocokan yang adil harus mencukupi .wVwvuM(v)M(u)

Bisakah kita menemukan pencocokan berat badan maksimum secara efisien?


Kasus yang menarik adalah ketika grafik adalah bipartit dan keadilan hanya berlaku untuk satu sisi, yaitu menganggap bahwa , dan kami diberi fungsi laba .G=(LR,L×R)p:L×RN

Sebuah Adil Bipartit Matching adalah cocok dalam sehingga untuk setiap dua simpul : Gu,vL

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

Seberapa cepat kita dapat menemukan pencocokan bipartit yang adil dengan berat maksimum?


Motivasi untuk masalah ini berasal dari kasus khusus bipartit. Asumsikan Anda memiliki pekerja dan tugas , dan pekerja dapat menghasilkan untung dari pekerjaan . Masalahnya di sini adalah untuk merancang yang masuk akal (dalam arti pekerja tidak akan merasa "ripped-off ''), sambil memaksimalkan total hadiah. (Ada tradeoff di sini antara kekuatan mekanisme penugasan dan manfaat sosial).nmipi,jj

Jika kita mendefinisikan kesejahteraan sosial (atau laba pabrik) dari penugasan pekerja ke pekerjaan sebagai jumlah keuntungan.

Melihat berbagai skenario untuk kekuatan pemberi tugas, kami mendapatkan hasil berikut:

  • Jika kami diizinkan menugaskan pekerja mana pun untuk pekerjaan apa pun, kami dapat mengoptimalkan pabrik secara efisien (cukup temukan pencocokan berat maksimal).

  • Jika setiap pekerja memilih tugas sendiri, dengan asumsi bahwa pekerjaannya akan dipilih (hanya satu pekerjaan yang dapat dipilih untuk setiap pekerjaan) jika ia menjadi pekerja yang paling memenuhi syarat yang memilih tugas, pekerja akan berkumpul menjadi '' serakah ' kesetimbangan. Alasannya adalah bahwa pekerja yang bisa menghasilkan paling banyak ( ) akan memilih pekerjaan yang paling menguntungkan, dan sebagainya. Dengan tingkat perkiraan algoritma serakah untuk pencocokan, ini harus memberikan 2-perkiraan dari kesejahteraan sosial maksimal yang mungkin terjadi.i=argmaximaxjpi,j

Saya mencari sesuatu di antaranya. Mari kita asumsikan kita bisa menugaskan pekerja untuk pekerjaan, tetapi harus berjanji kepada mereka bahwa tidak ada pekerja yang "kurang berkualitas" menghasilkan lebih dari mereka.

Bagaimana kita dapat menemukan "pencocokan" berat badan maksimal yang menjanjikan menjanjikan bagi karyawan secara efisien?


Singkatnya, untuk kasus kedua (bipartit), tampaknya mudah untuk membangun contoh di mana setiap pencocokan "adil" memberikan keuntungan pekerja pertama 1, dan sisanya nol, meskipun ada pencocokan "tidak adil" memberikan keuntungan pekerja pertama dan semua orang mendapat untung . Demikian pula, contoh di mana pencocokan adil dengan bobot maksimum memberi setiap pekerja untung , meskipun ada kecocokan yang tidak adil yang memberi setiap pekerja untung di . 12ϵ1ϵ2/n{1-ϵ,1-2ϵ}
Neal Young

@NealYoung - apakah saya benar mengasumsikan bahwa skenario ini tidak dapat ada jika keuntungannya berbeda?
RB

Tampaknya seperti masalah standar dalam teori permainan di mana ketidakmampuan untuk membedakan antara alternatif secara signifikan menurunkan kesejahteraan sosial.
RB

Ups, saya mengambil kembali komentar saya - saya tidak yakin contoh-contoh itu bisa diwujudkan!
Neal Young

Jawaban:


1

Saya percaya "pencocokan bipartit adil berat maksimum" seperti yang Anda tentukan adalah NP-hard. Terlebih lagi, menentukan keberadaan pencocokan bipartit yang adil adalah NP-hard.

Sebelum saya memberikan sketsa bukti, untuk intuisi, pertimbangkan contoh kecil berikut ini. Ambil mana , . Ambil sedemikian sehingga untuk u L dan w { c , d } , sedangkan p ( u , w ) = 1 untuk u L dan w { e , f } . Kemudian a dan bL = { a , b } R = { c , d , e , f } p p ( u , w ) = 0G=(L.,R,E=L.×R)L.={Sebuah,b}R={c,d,e,f}halhal(kamu,w)=0kamuL.w{c,d}hal(kamu,w)=1kamuL.w{e,f}Sebuahbadalah setara, dalam arti bahwa untuk semua w R , sehingga setiap pencocokan yang adil harus memberikan a dan b laba yang sama. Oleh karena itu, satu-satunya pencocokan yang adil cocok dengan a dan b ke c dan d , atau mereka mencocokkan a dan b ke e dan f . Dengan menggunakan gadget semacam ini, kami dapat memaksa koordinasi tepi pada pencocokan. Ini adalah dasar dari pengurangan.hal(Sebuah,w)=hal(b,w)wRSebuahbSebuahbcdSebuahbef

Ini adalah upaya untuk membuktikan. Ini agak terlibat. Mungkin ada beberapa kesalahan, tapi semoga kesalahan bisa diperbaiki.

Lemma 1. Diberikan dan p : E R + seperti yang dijelaskan dalam masalah, menentukan apakah G berisi kecocokan yang adil adalah NP-hard.G=(L.,R,E=L.×R)hal:ER+G

Sketsa bukti. Buktinya adalah dengan reduksi dari Set Independen dalam grafik kubik. Misalkan adalah instance independen Set di mana G adalah grafik kubik (setiap simpul memiliki derajat 3). Kami menjelaskan cara membuat grafik G = ( L , R , E = L × R ) dan fungsi laba p : E R + sedemikian rupa sehingga G (G=(V,E),k)GG=(L.,R,E=L.×R)hal:ER+Gmemiliki pencocokan bipartit yang adil jika dan hanya jika memiliki satuan ukuran independen k .Gk

Verteks dalam akan datang berpasangan, yang disebut mitra . Demikian juga untuk simpul di R . Untuk setiap simpul v L R , kami membiarkan v menunjukkan mitra v . Setiap simpul L dan mitranya L akan sama , artinya kita akan membuat p ( , r ) = p ( , r )  untuk semua  r L.RvL.RvvL.L. Akibatnya, setiap pencocokan wajar harus menetapkan laba yang sama untuk dan . Dalam apa yang berikut, kami menggunakan π ( , r ) untuk menunjukkan nilai p ( , r ) = p ( , r ) .

hal(,r)=hal(,r) untuk semua rR.
π(,r)hal(,r)=hal(,r)

Selanjutnya, untuk setiap pasangan di L , dan setiap pasangan mitra r , r di R , baik kita membuat π ( , r ) = π ( , r ) atau kita membuat π ( , r ) π ( , r ) . Dalam kasus sebelumnya, kita katakan kita membiarkan dan dicocokkan dengan r danL.r,rR

π(,r)=π(,r)
π(,r)π(,r).
r (karena melakukan hal itu akan menetapkan laba yang sama untuk dan , sesuai kebutuhan). Dalam kasus terakhir, kami katakan kamimencegah dan dari dicocokkan dengan r dan r (karena hal itu tidak akan memberikan keuntungan yang sama untuk dan ).r rr

Karena grafik yang diberikan adalah kubik, itu memenuhi 3 | V | = 2 | E | , dan setiap himpunan bebas I ukuran k dalam G adalah insiden persis 3 k tepi. Asumsikan untuk kemudahan notasi bahwa V = { 1 , 2 , ... , n } .G=(V,E)3|V|=2|E|sayakG3kV={1,2,...,n}

Untuk setiap sisi , lakukan hal berikut.{saya,j}E

  1. Menambahkan sepasang simpul mitra ke R . r({saya,j}),r({saya,j})R

  2. Untuk titik akhir , menambah sepasang simpul mitra ( i , j ) , ' ( i , j ) ke L . Set π ( ( i , j ) , r ( { i , j } ) ) = π ( ( i , j ) , r ( { i , j } )saya(saya,j),(saya,j)L. memungkinkan( i , j ) dan ( i , j ) dicocokkan dengan r ( { i , j } ) dan r ( { i , j } ) .

    π((saya,j),r({saya,j}))=π((saya,j),r({saya,j}))=saya,
    (saya,j)(saya,j)r({saya,j})r({saya,j})
  3. Secara simetris, untuk titik akhir lainnya : tambahkan pasangan simpul mitra ( j , i ) , ( j , i ) ke L , dan set π ( ( j , i ) , r ( { i , j } ) = π ( ( j , i ) , r ( { i , j }j(j,saya),(j,saya)L. memungkinkan( j , i ) dan ( j , i ) dicocokkan dengan r ( { i , j } ) dan r ( { i , j } ) .

    π((j,saya),r({saya,j})=π((j,saya),r({saya,j}))=j,
    (j,saya)(j,saya)r({saya,j})r({saya,j})

Untuk setiap dan r R yang ditambahkan sejauh ini, jika pasangan , tidak secara eksplisit diizinkan (di atas) dicocokkan dengan r , r , maka cegah kecocokan dengan menetapkan π ( , r ) dan π ( , r ) masing-masing beberapa nomor unik.L.rR,r,rπ(,r)π(,r)

Berikutnya, tambahkan pasang pengisi simpul untuk R . Untuk setiap simpul pengisi r dan setiap ( i , j ) L , set π ( ( i , j ) , r ) = 0 .3(|V|-k)Rr(saya,j)L.π((saya,j),r)=0

Akhirnya, tambahkan dua simpul dan L ' 0 (mitra) ke L , bersama dengan dua simpul R 0 dan R ' 0 (juga mitra) untuk R . Set π ( L 0 , R 0 ) = π ( L 0 , R 0 ) = 1 , memungkinkan L 0 dan L 0 dicocokkan dengan R 0 dan RL.0L.0L.R0R0Rπ(L.0,R0)=π(L.0,R0)=1L.0L.0R0 . Untuk setiap simpulrR lainnya, aturπ(L0,r)ke beberapa nomor unik. (Oleh karena itu, setiap pencocokan wajar harus cocok denganL0danL0 hinggaR0danR0. ) Untuk setiapiV, untuk setiap tepi kejadian{i,j}E, aturπ((i,j),RR0rRπ(L.0,r)L.0L.0R0R0sayaV{saya,j}E dan π ( ( i , j ) , R 0 ) = | V | - i + 1 .π((saya,j),R0)=sayaπ((saya,j),R0)=|V|-saya+1

Itu melengkapi pengurangan. Untuk menyelesaikannya, kami membuktikannya benar.


Pertama-tama perhatikan untuk pasangan simpul yang terakhir mendominasi yang pertama, yaitu, ( r R ) π ( ( i , j ) , r ) π ( ( i , j ) , r ) .(saya,j),(saya,j)L.

(rR) π((saya,j),r)π((saya,j),r).

R0R0saya=sayaπsaya=sayaL.0L.0R0R0sayaV

N(saya)={(saya,j):{saya,j}E}{(saya,j):{saya,j}E}.

GsayakGsaya

L.0L.0R0R0

sayasaya{saya,j1},{saya,j2},{saya,j3}{saya,jh}(saya,jh)(saya,jh)r({saya,jh})r({saya,jh})N(saya)saya

|V|-ksayaVsaya{saya,j}saya(saya,j)(saya,j)rrN(saya)0

Karenanya, pencocokan ini adil.


GM.

M.L.0L.0R0R0sayaVN(saya)(saya,j)N(saya)(saya,j)N(saya)sayaN(saya)r({saya,j})N(saya)Rsaya{saya,j}r({saya,j})saya6(|V|-k)sayak

QED (?)


Saya pikir itu pada dasarnya benar, jika sedikit berbelit-belit. Beri tahu saya jika Anda melihat kesalahan, atau cara untuk menyederhanakan buktinya.

|R|>|L.|L.|R|-|L.|R0R0

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.