1

以下のグラフの問題を分類するか、その解決策のヒントを見つけようとしています。

ユニット、ポイント、単純な地形の3種類の要素を含むことができる(隣接)行列があります。

地形には特別な意味はありません。

ユニットには、位置(x、yはマトリックスによって定義されます)と、取得できるポイントの数があります。
ポイントには位置があります(x、yは行列によって定義されます)。
ポイントを取得するためのコストは、ポイントとユニットの間のマンハッタン距離です。
各ポイントは1ユニットでのみ取得できます。

問題は、ユニットのすべてのリソースが使い果たされるように、ポイントを取得するユニットの最小コスト構成をどのように見つけるかです。

例:
u1は3ポイントを獲得
できますu2は2ポイントを獲得できます

p1 n n p2  
n u1 n p3  
p4 n n n  
n n u2 p5

最適なソリューションの1つは次のとおりです。

u1 = p1, p2, p4  
cost(u1)=2+3+2=7  
u2 = p3, p5  
cost(u2)=3+1=4  
Total cost = 11  

(この構成では最小限)

注:均一コスト探索とA *(単純なヒューリスティックを使用)でこれを解決しようとしましたが、マトリックスのサイズが小さい場合でも、非常に多くの状態が発生し、メモリが不足します。

4

1 に答える 1

1

私はそれを最小コスト最大フロー問題に減らすことができます。

ネットワークを作りましょう。各ユニットと各ポイントに頂点を割り当てます。各ペア(ユニット、ポイント)に対して、容量1で、対応するマンハッタン距離に等しいコストの方向付けられたエッジを追加します。シンクを追加し、すべてのユニットに接続します。トラップを追加し、すべてのポイントをそれに接続します。

コストと容量の次の値を割り当てます
。cap(u、v)= 1、uからvへのエッジがある場合
cost(u、v)= 0、u=シンクまたはv=トラップの場合。それ以外の場合は、ユニットuからポイントvまでのマンハッタン距離に等しくなります。

このネットワークでmin-cost-max-flowが見つかった場合、それが問題の解決策になります。なんで ?フローの単位を各「単位」頂点からある「点」頂点に移動するための最小コストの方法を見つけたためです。これは、元の問題と同等です。

于 2013-02-10T18:15:03.467 に答える