2017-01-09 11 views
0

複数の売り手と買い手がある場合、各売り手には商品の量があり、各買い手は売り手から複数の商品を購入したいと考えています。一部の売り手は一部の買い手と取引できません。買い手が十分な商品を手に入れることができない場合、取引は成功しません。すべてのバイヤーを満足させる戦略があることがわかっている場合、この戦略を見つける方法は?2者グラフ - 売り手と買い手

問題を説明するグラフを描きますが、これは単なる例です。質問は、すべてのバイヤーが必要なだけの十分な製品を得ることができるように、各バイヤーのトランザクション戦略を提供することを望んでいます。 seller buyer example

答えて

0

1つのバイヤーが1つの売り手から複数のものを購入する可能性があります。 1つの項目に変更するのは難しくありません。

これは、最大フローアルゴリズムによって解決できます。バイヤーから接続された売り手への直接的なエッジ。それらのエッジに容量b_iを割り当てます。 B_iは買い手が必要とする金額です。 2つのノードS、Tを追加する。 Sからすべてのバイヤーにエッジを追加します。これらの各エッジに容量b_iを割り当てます。 B_iは買い手が必要とする金額です。各売り手の頂点からTにエッジを追加する。これらのエッジに容量S_iを割り当てる。 S_iは売り手が持っている金額です。 SからTまでの最大流量を求める。それがすべてのバイヤーに必要な金額の合計に等しい場合、問題の解決策が存在し、バイヤーから売り手までのすべての端を通過するフローの量によって見つけることができる(これは積分フロー定理のフォローアップです)。

+0

こんにちは、私はあなたの優れたソリューションに感謝します。申し訳ありませんが、私は問題をはっきりと説明しませんでした。最初は、すべてのバイヤーが満足できるかどうかわからず、できるだけ多くのバイヤーを満足させるよう求められ、各バイヤーは複数の売り手から製品を購入することができます。あなたのソリューションは素晴らしいですが、もし売り手iに行くすべてのエッジのエッジ容量をs_iに設定すると、売り手iの総額が超過する可能性があります。 – AvocadoAushi

+0

そして、私は最大の流れを得ることができますが、私はまだ満足している買い手の数を得ることができません(私たちはすべてのバイヤーが知っていることがわからない場合は、彼の要件よりも少ない製品でバイヤーを満たすことはできません私たちは満足しているバイヤーの最大数を見つけたいと思っています)。 – AvocadoAushi

+0

@AvocadoAushi、1.出品者iの総額はS_iを超えてはいけません。これは、出庫エッジが容量S_iを有し、より多くのフローを運ぶことができないためです。私はあなたが尋ねた質問に答えました。あなたが今説明していることは別の状況ですが、私はそれについて考えて、新しい質問に変えることができます。 –

関連する問題