子猫の養子縁組問題の複雑さ


14

これは、配線長の最小化に関するこの質問に答えようとしているときに出てきました 。私はこれを「一夫多妻結婚」の問題と呼びましたが、インターネットは子猫です。わーい!

人が採用する必要がある子猫があるとします。各子猫、、および各人には、コストます。すべての子猫を養子にするための総費用を最小限に抑えたいと思います。制約のセットもあります:各人は、子猫をまでしか採用できません。N M > N i j c i j j u jMNM>Nijcijjuj

制約がなければ、問題は簡単です。各子猫人で行くれる最小です。制約があるため、この問題に対して効率的なアルゴリズムがありますか、それともNP困難ですか?j c i jijcij

回答:


5

これが最小コストの最大フローの問題です。

グラフ考えます。ここで、は子猫のセット、は人のセットです。A BG=(A∪B∪{s,t},E)AB

LETエッジの容量、及びであるエッジのコストです。確認する c :E → R +C:E→R+c:E→R+

  1. 間にエッジがあり、と、および、です。I ∈ BのJ ∈ B C (I、BのJ)= 1 C (I、BのJ)= C I 、Jai,bjai∈Abj∈BC(ai,bj)=1c(ai,bj)=ci,j
  2. と、およびC(s、a_i)= 1、c(s、a_i)= 0の間にエッジがあります。I ∈ A C (S 、I)= 1 C (S 、I)= 0sai∈AC(s,ai)=1c(s,ai)=0
  3. bj∈Bとtの間にエッジがありt、C(bj,t)=uj、c(bj,t)=0です。

最大フローが場合、ソリューションが存在することがわかります。min-cost max-flowからmin-costソリューションを構築できます。M


4

これは、多項式である最小重み完全マッチング問題です。完全な二部グラフ考えるここで、ノード含ま各子猫用、から成るノードのコピー毎人用、及び縁部間との各コピー重みと、。L L I I R U J R J、J 、E 、I 、J ∈ E 、L 、I 、R J C 、I 、J(L,R,E)LliiRujrjjeij∈Elirjcij

我々はそれを知っているそうでなければ、すべての子猫を人に割り当てることができるわけではありません。|L|≤|R|

完全な一致はすべてのノードに一致する必要があるため、ダミーノードをに追加し(を取得するため)、それらをゼロウェイトエッジですべてのノードに接続する必要があります。| L | = | R | RL|L|=|R|R


2

おそらく興味深いのは、パーティションをこの問題の変形に減らすことができるという観察です。パーティションのインスタンス要素とされている所定のと我々はサブセットを選択する必要があっても、そこからとその結果。(要素のちょうど半分を選択するという要件は通常の形式ではありませんが、この形式は依然としてNPハードです。)各子猫をセットの要素にします。二人いる 重みをおよびます。聞かせて。次に、子猫の養子縁組のこのインスタンスには最大{x1,…,xq}qS⊆{1,…,q}|S|=q/2∑i∈Sxi=∑i∉Sxi=Kci1=xici2=−xiu1=u2=q/2パーティションのインスタンスに解決策がある場合は、なります。0

Kitten Adoptionのコストが常に正である場合、必要なしきい値が0ではなく場合、すべてのウェイトに十分な大きさの定数を追加して、それらが正しい兆候であることを確認できます。CCq

これが元の問題の複雑さについて何を言っているのかはわかりませんが、組み合わせ最適化問題のセットアップでよく見られる「最小化/最大化の1つはNP困難で、もう1つはPになっています」と考えると、効率的なアルゴリズム。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.