Kompleksitas masalah Adopsi Kucing


14

Ini muncul ketika saya mencoba untuk menjawab pertanyaan ini pada Minimalisasi Panjang Kabel . Saya akan menyebutnya masalah "perkawinan poligami", tetapi internet, jadi anak kucing. Yay!

Misalkan kita memiliki anak kucing yang perlu diadopsi oleh N orang, M > N . Untuk setiap anak kucing, saya dan setiap orang j ada biaya c i j . Kami ingin meminimalkan biaya total untuk mendapatkan semua anak kucing yang diadopsi. Ada juga satu set kendala: setiap orang j mampu mengadopsi tidak lebih dari u j anak kucing.M.NM.>Nsayajcsayajjkamuj

Tanpa kendala, masalahnya mudah; setiap anak kucing pergi dengan orang j yang c i j minimal. Dengan kendala apakah ada algoritma yang efisien untuk masalah ini atau apakah ini NP-hard?sayajcsayaj

Jawaban:


5

Ini adalah masalah max-flow min-cost.

Pertimbangkan grafik , di mana A adalah himpunan anak kucing, B adalah himpunan orang.G=(AB{s,t},E)AB

Biarkan menjadi kapasitas tepi, dan c : E R + menjadi biaya tepi. Kami memastikan ituC:ER+c:ER+

  1. Ada tepi antara , di mana a iA dan b jB , dan C ( a i , b j ) = 1 , c ( a i , b j ) = c i , j .ai,bjaiAbjBC(ai,bj)=1c(ai,bj)=ci,j
  2. Ada batas antara dan a iA , dan C ( s , a i ) = 1 , c ( s , a i ) = 0 .saiAC(s,ai)=1c(s,ai)=0
  3. Ada tepi antara dan t , dan C ( b j , t ) = u j , c ( b j , t ) = 0 .bjBtC(bj,t)=ujc(bj,t)=0

Jika aliran maks adalah , maka kita tahu ada solusi. Anda dapat membangun solusi biaya minimum dari aliran maks biaya minimum.M.


4

Ini adalah masalah pencocokan berat minimum minimum yang polinomial. Perhatikan grafik bipartit lengkap , di mana L berisi node l i untuk setiap kucing saya , R terdiri dari u j salinan node r j untuk setiap orang j , dan ujung-ujungnya e i jE antara l i dan setiap salinan r j , dengan bobot c i j .(L,R,E)LliiRujrjjeijElirjcij

Kita tahu itu , jika tidak, tidak semua anak kucing dapat ditugaskan ke orang.|L||R|

Sejak pencocokan sempurna harus cocok dengan semua node, kita perlu menambahkan node dummy untuk (untuk mendapatkan | L | = | R | ) dan menghubungkan mereka dengan nol tepi berat ke semua node di R .L|L|=|R|R


2

Mungkin yang menarik adalah pengamatan bahwa seseorang dapat mengurangi Pemisahan menjadi varian dari masalah ini. Diberikan adalah turunan dari Partisi dengan elemen dengan q bahkan dari mana kita harus memilih subset S { 1 , ... , q } dengan | S | = q / 2 sedemikian rupa sehingga i S x i = i S x i = K{x1,,xq}qS{1,,q}|S|=q/2iSxi=iSxi=K. (Perhatikan bahwa persyaratan untuk memilih tepat separuh elemen bukanlah bentuk yang biasa tetapi bentuk ini masih NP-keras.) Biarkan setiap anak kucing menjadi elemen set; biarlah ada dua orang; biarkan bobotnya menjadi dan c i 2 = - x i ; biarkan kamu 1 = u 2 = q / 2 . Maka hal ini dari Kitten Adopsi memiliki maksimum dari 0 IFF contoh Partisi memiliki solusi.ci1=xici2=xiu1=u2=q/20

CCq

Saya tidak yakin apa yang dikatakan ini tentang kerumitan masalah aslinya, tetapi mengingat "salah satu dari perkecil / maksimalkan adalah NP-hard, yang lainnya ada dalam pengaturan P" untuk masalah optimisasi kombinatorial, saya akan mulai mencari algoritma yang efisien.

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.