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={a,b}R={c,d,e,f}pp(u,w)=0u∈Lw∈{c,d}p(u,w)=1u∈Lw∈{e,f}abadalah 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.p(a,w)=p(b,w)w∈Rababcdabef
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 )p : E′→ R+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 )G′G′= ( L , R , E′= L × R )p : E′→ R+G′memiliki 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.Rv ∈ L ∪ Rv′vℓ ∈ Lℓ′∈ 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 ) .
p ( ℓ , r ) = p ( ℓ′, R ) untuk semua r ∈ R .
ℓℓ′π( ℓ , r )p ( ℓ , r ) = p ( ℓ′, 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 danℓL.r , r′R
π(ℓ,r)=π(ℓ,r′)
π(ℓ,r)≠π(ℓ,r′).
ℓℓ′r
(karena melakukan hal itu akan menetapkan laba yang sama untuk
ℓ dan
ℓ ′ , sesuai kebutuhan). Dalam kasus terakhir, kami katakan kami
mencegah ℓ 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|sayakG3 kV= { 1 , 2 , ... , n }
Untuk setiap sisi , lakukan hal berikut.{ i , j } ∈ E
Menambahkan sepasang simpul mitra ke R . r({i,j}),r′({i,j})R
Untuk titik akhir , menambah sepasang simpul mitra ℓ ( i , j ) , ℓ ' ( i , j ) ke L . Set π ( ℓ ( i , j ) , r ( { i , j } ) ) = π ( ℓ ( i , j ) , r ′ ( { i , j } )iℓ(i,j),ℓ′(i,j)L memungkinkan ℓ ( i , j ) dan
ℓ ′ ( i , j ) dicocokkan dengan r ( { i , j } ) dan r ′ ( { i , j } ) .
π(ℓ(i,j),r({i,j}))=π(ℓ(i,j),r′({i,j}))=i,
ℓ ( i , j )ℓ′( i , j )r( { i , j } )r′( { i , j } )
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 , i ) , ℓ′( j , saya )L.
memungkinkan ℓ ( j , i ) dan ℓ ′ ( j , i ) dicocokkan dengan r ( { i , j } )
dan r ′ ( { i , j } ) .
π( ℓ ( j , i ) , r ( { i , j } ) = π( ℓ ( j , i ) , r′( { i , j } ) ) = j ,
ℓ ( j , i )ℓ′( j , saya )r ( { i , j } )r′( { i , 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.ℓ ∈ Lr ∈ Rℓ , ℓ′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ℓ ( i , j ) ∈ Lπ( ℓ ( i , 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.R0R′0Rπ( L0, R0) = π( L0, R′0) = 1L.0L.′0R0 . Untuk setiap simpulr∈R lainnya, aturπ(L0,r)ke beberapa nomor unik. (Oleh karena itu, setiap pencocokan wajar harus cocok denganL0danL ′ 0 hinggaR0danR ′ 0. ) Untuk setiapi∈V, untuk setiap tepi kejadian{i,j}∈E, aturπ(ℓ(i,j),RR′0r ∈ Rπ( L0, r )L.0L.′0R0R′0i ∈ V{ i , j } ∈ E dan π ( ℓ ( i , j ) , R ′ 0 ) = | V | - i + 1 .π( ℓ ( i , j ) , R0) = iπ( ℓ ( i , j ) , R′0) = | V| -i+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 ) .ℓ ( i , j ) , ℓ ( i′, j′) ∈ L
( ∀ r ∈ R ) π ( ℓ ( i , j ) , r ) ≤ π( ℓ ( saya′, j′) , r ) .
R0R′0i = i′πi = i′L.0L.′0R0R′0i ∈ V
N( i ) = { ℓ ( i , j ) : { i , j } ∈ E} ∪ { ℓ′( i , j ) : { i , j } ∈ E} .
GsayakG′saya
L.0L.′0R0R′0
i ∈ I{ i , j1} , { i , j2} , { i , j3}{ i , jh}ℓ ( i , jh)ℓ′( saya , jh)r ( { i , jh} )r′( { i , jh} )N( i )saya
| V| -ki ∈ V∖ saya{ i , j }sayaℓ ( i , j )ℓ′( i , j )rr′N( i )0
Karenanya, pencocokan ini adil.
G′M.
M.L.0L.′0R0R′0i ∈ VN( i )ℓ ( i , j ) ∈ N( i )ℓ′( i , j )N( i )sayaN( i )r ( { i , j } )N( i )Rsaya{ i , j }r ( { i , 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 |R0R′0