質問

ノードセット $ a={a_1、a_2、\ ldots、a_n \} $ $ b={b_1、b_2、\ ldots、b_n \} $ 。各ノードには、 $ a_i $ $ v_i $ があります。 "> $ w_i $ for $ b_i $ 。各ノード $ A_I $ は、 $ b $ の正確に1つのノードに接続されています。 $ e_i $ を介して、math-container "> $ b_j $ 。 $ \ min (v_i、w_j)$ 。これで、 $ a $ から $ b $ への1対1のマッピングを見つけたいです。エッジ重みの合計はできるだけ小さいです。

私の考えは、 $ v_i $ sをますますものと $ w_i $ sを減らしてから見つけることです。並べ替え後、すべての $ \ min(v_i、w_i)$ の合計。それが正しいか?あなたは証明/防疫性を与えることができますか?

$ n= 5,6、\ ldots、10 $ のコンピューターシミュレーションをランダムな頂点の重みで実行し、数えない

役に立ちましたか?

解決

いくつかのランダムサンプルであなたのアイデアをチェックしたことはいいです


あなたのアイデアが働く理由を見るために、私たちに最も簡単だが自明でない訴訟を見つけてから見てください。簡単にしてWLOGのために、ノードの重みはそのノードを表すために使用されます。たとえば、 $ A $ の場合、重み $ 42 $ を持つノードが含まれている場合、そのノードはと呼ばれます。ノード42.

$ n= 1 $ の場合は簡単です。

$ n= 2 $ let。 $ a={1,2 \} $ $ b={3に見える場合4 \} $ では、マッピングを選択すると、合計は $ 1 + 2= 3 $ になります。このサンプルは明らかに啓発されていません。

$ a={1,3 \} $ $ b={2,4 \ $

  • 4で2と3を1に接続すると、合計は $ \ min(1,2)+ \ min(3,4)= 1 + 3= 4 $です。
  • 2で4と3と接続すると、合計は $ \ min(1,4)+ \ min(3,2)= 1 + 2= 3 $です。

だからこれは非些細な例です。今、私たちは基本的な質問、なぜが2番目の選択肢を短くするのか?

質問に答えるために、それらの2つの合計がどのように起きてくるかを観察するべきです。両方の合計に1が表示されます。その一致はありますか?ちょっと考えて、あなたはそれがそうではないことを知っているでしょう。 1はすべての数の最小数です。それでそれが接続されているものは何でも、それは接続の重さとして選択されます。

それは、この場合に1が接続されていても、この場合、その数は後の計算から欠落していること、すなわち「無駄」になる。 「浪費」が大きいほど、残りの数が少ないほど、関数 $ \ min(\ cdot、\ cdot)$ < / SPAN>両方の変数に関して減少しています。 SO 1はできるだけ大きく接続されるべきです。それはなぜ 1が3の代わりに4の代わりに4に接続されているのか。

$ n= 2 $ の場合、マッピングの選択肢は2つしかありません。 $ a $ の小さい数値は、 $ b $ の小さい数にマッピングされます。マッピング "、または $ b $ の大きさの数値" reverseマッピング "を呼び出しました。マッピングを小さな重量が小さくするには、常に「リバースマッピング」を選択する必要があるため、多数が無駄になります(または同じ数字が使用されるようになります。)


あなたのアイデアが正しいことを証明するために、我々は最初に $ a $ から $ b $ <> $ < / SPAN>、マッピング $ \ min(a)$ へのマッピングがあります。 $ \ max(b)$ < /スパン>総重量が大きくありません。マップ $ f $ maps $ \ min(a)$ math- math-コンテナ "> $ b_j $ といくつかの番号 $ a_i $ $ \ max(b)$ 。次に、別のマップ $ f '$ を作成できます。これは、 $ f $ と同じです。 4番号、 $ f '$ maps $ \ min(a)$ to $ \ max(b)$ $ a_i $ $ b_j $ 。上記のように、4つの数字 $ \ min(a)、a_i $ $ b_j $ $ \ max(b)$ 、私たちは持っています $$ \ min(\ min(a)、\ max(b))+ \ min(a_i、b_j)\ le \ min(\ min(a)、b_j)+ \ Min(A_I、\ Max(B))、$$ $ f '$ の総重量は、 $ f $ のそれより大きくはありません。

私たちは知っている、

  • 最小総重量は、 $ \ min(a)$ へのマッピングから来ています $ \ max(b )$
  • $ \ min(a)$ をマッピングするすべてのマッピングには、 $ \ max(b)$ 、最小総重量は、同じ引数によって、 $ a $ の最小数の最小値をマッピングするマッピング(つまり、<<で2番目の最小数) span class="math-container"> $ a $ $ b $ (つまり、2番目の最小数)の最大数へ $ b $
ONTAINER "> $ \ min(a)$ $ \ max(b)$ $ b $ の2番目の最大数への$ a $ は、 $ A $ $ b $ の3番目の最大数:。 $ a $ の最後の最小数が $ bの最後の最大数にマップされるまで、
  • など$ 、すなわち $ a $ の最大数は、 $ b $ <の最小数にマップされています。 /スパン>。 $ \ checkmark $
  • さらに正式な証明を与えられます。しかし、上記の推論は理解しやすいかもしれません。それは、私は普通の人間を納得させると信じています。


    ここにあなたの考えを証明するもう1つの直接的な方法があります。

    最初にすべての数字が異なると仮定します。 Reductio Ad Absiblimumで証明しましょう。あなたのアイデアに記載されているマッピング以外のマッピング $ g $ によって最小総重量に達することができるとします。その後、 $ g $ には、「順方向マッピング」であるサブマッピングを含める必要があります。つまり、2つの数字が必要です $ \ alpha_1 \ lt \ alpha_2 $ in $ a $ 、および2つの数字 $ \ beta_1 \ lt \ beta_2 $ $ b $ $ g(\ alpha_1)=beta_1 $ と< SPAN CLASS="math-container"> $ G(\ alpha_2)=beta_2 $

    今度は $ g '$ $ g $ と同じにすることができます。 $ g '$ のサブマッピングを除いて、 $ \ alpha_1 $ $ \ alpha_2 $ は、「逆マッピング」、つまり $ g '(\ alpha_1)=beta_2 $ と< SPAN CLASS="math-container"> $ g '(\ alpha_2)=beta_1 $ 。さて、これ以前と同じように、 $ g '$ の総重量が $ g $ <"の総重量より小さいことを確認することができます。 /スパン>これは私たちの仮定を矛盾します。

    すべての数字が明確ではない場合は、限界ごとに近づく技術を使用します。すべての数字がわずかに異なるようになります。今すべての重みは元の重みをわずかにオフにします。つまり、あなたの考えから得られた総重量は最適な解決策からはかけ離れてはいけません。摂動をゼロにするようにしましょう。実際には最適な解決策です。


    あなたは同様の問題に興味があるかもしれません、ペアリングの最大和を最小限に抑える貪欲アルゴリズムをどのように証明するか

    他のヒント

    ここで最良の解決策は、このグラフ上の最小価格最大フローアルゴリズムを使用していると思います。あなたがそれについて知らないならば、それについて行って読んでください。このアルゴリズムはこの種の問題に対して最も古典的な解決策です。

    ライセンス: CC-BY-SA帰属
    所属していません cs.stackexchange
    scroll top