配線長の最小化


10

私の問題は次のとおりです:

  1. 物理的なレイアウトをグラフで表示しています。ノードはワイヤーが固定できるフック/ダクトを表し、エッジはワイヤーが行くことができる2つのノード間の可能な接続です。

  2. スプリッターと呼ばれるいくつかの特別なノードがあり、そこから1本のワイヤーを2つ以上kに分割できます。kは今のところ一定とすることができますが、ノードごとに異なります。すべてのノードがスプリッターであるとは限りません。

  3. ワイヤーが出てくるところから電源の1つがあります。ソースです。ワイヤーはn個のシンクに接続する必要があります。

  4. エッジは、任意の数のワイヤーをいずれかの方向に通過できます。

  5. ワイヤーの全長を最小化する必要があります。

  6. グラフ、平面またはユークリッドの性質は不明です。

:以下はサンプルネットワークです。ノードには番号が付けられ、エッジには同じ重み1が付けられます。ソースはNode1、シンクはNode5、Node9、Node13です。1の場合、Node6はスプリッターノードです。2の場合、Node6とNode4はスプリッターノードです。スプリッターノードのk = 3、つまり、1つのワイヤーを取り込んで3つのワイヤーに分割できます。

事例1。1つのスプリッターノードのみ。Node6で分割することは理にかなっています。 ここに画像の説明を入力してください

事例2。2つのスプリッターノード。Node6ではなくNode4で分割することは理にかなっています。 ここに画像の説明を入力してください

この問題の一般的な解決策を見つけるためのさまざまな戦略を探しています。ここに示すグラフは、手元にある問題に比べてスケールが小さくなっています。グラフは静的で変更できません(つまり、ソリューションが新しいエッジを提案したり、新しいスプリッターの場所を提案したりしてはなりません)。この種の問題について発表された研究論文への言及も歓迎します。

事例3。2つのスプリッターノード。Node4とNode14で分割することは理にかなっています。このケースでは、エッジ8-12、6-10、および10-11のエッジの重みが変更されていることに注意してください。この場合の重要なことは、Node14から分割された後のワイヤーの再トレースです。

ここに画像の説明を入力してください

回答:



2

私にはあなたの問題に対する解決策はありませんが、中程度の簡略化があります。制約2(各スプリッタノードは1つのワイヤを以下のワイヤに分割できる)が困惑しています。iki

単純化すると、すべての中間(正方形)ノードを削除できます。ソースノード、シンクノード、およびスプリッターノードのみでグラフを作成します。

  1. 元のグラフで、ソースノードから各スプリッターノードへの最短パスを見つけ、ソースノードからその長さのスプリッターノードへの新しいグラフにエッジを追加します。

  2. 2つのスプリッターノードがある場合、とは、元のグラフでからへの最短パスを見つけ、その長さで新しいグラフにからへのエッジを追加します。ijijij

  3. すべてのスプリッターとすべてのシンク、元のグラフでからへの最短パスを見つけ、新しいグラフにから長さのエッジを追加します。ijijij

これで、スプリッター(およびソースとシンク)の完全に接続されたグラフができました。エッジにはコストがあり、各スプリッターノードが子を持つという制約を満たす最小コストツリーを見つけようとしています。Niki

この(縮小された)問題は、NP困難な次数制約付き最小スパニングツリー問題よりも難しいように見えます。これは、単一の次数制約ではなく、各ノードに次数が異なるためです。しかし、実際にはスパニングツリーを探していないため、状況も異なります。むしろ、望ましい最小ツリーは、一部のスプリッターノードを除外することができます。この2番目の違いが問題を容易にするか困難にするかはわかりません。ki


グラフのサブセットのみを接続したい場合、これはシュタイナーツリーの問題です。
Chao Xu

0

@Chao Xu、私はシュタイナーが私の問題に最も近い近似であることがわかりました。この問題を解決するために、Antベースのシステムを調査しています。

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