多対多の一般化された割り当て問題のアルゴリズム


20

多対多の一般化された割り当て問題(GAP)を解決するために使用できるアルゴリズムに関する文献を見つけることができないようです。つまり、1つのエージェントに複数のタスクを割り当てることができるだけでなく、複数のエージェントを割り当てることができるモデル1つのタスクに割り当てられます(1対1および1対多のAPは、Penticoの論文で説明されています)。割り当ての問題はほとんどありませんが、調査中にこのような問題に遭遇しました。その解決方法について詳しく知りたいと思います。このような多対多のGAPが別の名前で知られている可能性はありますか、またはそれに関する文献がほとんど見つからない別の理由がありますか?

Pentico、D。課題の問題:黄金周年記念調査European Journal Of Operational Research(2007); 176(2):774-793。


1
こんにちはGerritJan。Scicompへようこそ!:)一般化された代入問題のラグランジアン・ヒューリスティックに精通していますか?sciencedirect.com/science/article/pii/S0898122110002609 または irma-international.org/viewtitle/58969 または crcnetbase.com/doi/abs/10.1201/9781420010749.ch48
ポール

1
タスクの一部を複数のエージェントに割り当てる場合、少なくともコストが線形に配分される場合、1つのタスクを複数のサブタスクのように扱うことでモデル化できるように思えます。詳細がなければ、一般化された割り当ての問題よりも、問題がどのように「一般的」であるかを知ることは困難です。Wikipeidaの記事は、トピックの参照のカップルにいくつかの良い博覧会とのリンクがあります。
ハードマス

ありがとう、@ポール。私は論文を調べますが、彼らは私の訓練されていない目にはかなり複雑に思えます。繰り返しになりますが、問題は複雑であると思われ、おそらくいくつかの単純化を行う必要があります。ハードマス、私の問題は基本的にネットワークでエネルギーを分配することです:需給ノードは、すべての需要を満たすために最小限の供給で、最適な方法でそれらの間の(重み付けされた)接続を使用して一致する必要があります もちろん、接続の最大容量など、追加の制約を使用できます。
Gerrit

1
@GerritJan:これはnp-hard問題なので、近似スキームが必要になります。適切な近似が必要な場合、アルゴリズムは少し複雑になる必要があります。
ポール

2
@GerritJan:これは、可能なすべての構成をチェックすることによってのみ、正確な「最適な」ソリューションを保証できることを意味します。これらの可能な解決策は(少なくとも)時間とともに指数関数的に成長し、比較的控えめなサイズの問題でさえ、合理的な時間で正確に解決することは事実上不可能です。
ポール

回答:


1

あなたの問題は、「「エージェント」の合計が、個々の需要ごとにエネルギーの個別の部分を正確に供給しなければならないか...」ということではないようです。または、あなたは私を理解しませんでした。それで、解決策を見つけたので、私は私の問題をより良く説明しようとします。

私の問題では、各エージェントが特定のリソースの予算を持ち、タスクのコストを共有できるエージェントのセットがあります。エージェントは1回「実行」する必要があります(多対多の割り当てを必要とせずに割り当てます)すべてのタスクを「実行」します)。つまり、タスクxのエージェントの部分解の合計は、タスクxのコスト以下でなければなりません。目的は、エージェントが支払うことができる最も価値のあるタスクのセットを見つけることです。

私はGamsソフトウェアで作業しているので、Gamsスタイルで説明します:エージェントの設定、tタスクのパラメータcost(t)、value(t)パラメータresources(a)

正の変数y(a、t)(非整数)、タスクtの目的コストのエージェントaの一部:

maxvalue =e= sum((a,t), value(t) * y(a,t) / cost(t) );
agentresource_max_constraint(a).. sum(t, y(a,t)) =l= resources(a);
taskcost_max_constraint.. sum(a, y(a,t)) =l= cost(t);

私が書いたように、私は解決策を持っていましたが、部分的なタスク解決策を分離する方法を知りませんでした。しかし今、私は私がで制約を構築できることがわかりました

バイナリ変数 z(t)

taskcost_bin_constraint z(t) =e= sum(a, y(a,t)) / cost(t);

sum(a, y(a,t)) / cost(t)方程式の定式化は0から1の間であり、この制約により、1 z未満の場合はすべて0、1の場合は1です。このtaskcost_bin_constraint目的は次のようになります。

maxvalue =e= sum(t, value(t) * z(t));

私は疑問に思っていましたが、これはうまく機能し、制約の下でより良いソリューションを提供し、タスクを完全に構築するかどうかを決定します。

そのような制約を追加することもできますか?要求を正確に満たすための制約。値は0〜1の式で表されます。


1

1対1の割り当て問題または同等にダイアディック行列分割問題を解決する決定論的アニーリングアルゴリズムがあります。

ただし、整数[0、1]値を使用する代わりに、小数値(アルゴリズムは同じまま)を使用したり、複数の割り当てを処理するように拡張することもできます(内部ループを追加し、マトリックスが超次元配列になります)またはテンソル)

論文はこちら:http : //www.researchgate.net/publication/2382666_Pairwise_Data_Clustering_by_Deterministic_Annealing/file/d912f50c75945d835b.pdf

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