1

グラフの問題で困っています。私は OpenSG を使用しており、建物内の 2 点間のパスを見つけようとしています。

私はこのグラフを作成しました:グラフ1

これを使用して、建物内の 2 点間の最短経路を見つけます。

グラフ内のパス

これは私がパスを見つける方法です:

  • グラフに開始/ターゲット ノードを追加します
  • 開始/ターゲット ノードから到達可能なすべてのノードにエッジを追加します (これは OSG の IntersectAction で行われます)
  • A* アルゴリズムを使用して最短経路を見つけます

グラフを最小化したい。2 点間のパスが少し長くなっても問題ありません。現在の冗長性を排除したいだけです。たとえば、明るい緑色のノードはすべて削除できます。部屋にはドアが「見えない」ポイントがないため、ノードは必要ありません。次のようになります。 最小化されたグラフ

だから私は多かれ少なかれ私が望むことをするアルゴリズムを持っていますが、これはよく知られた問題であるに違いないと思いました. これは最小頂点カバーではありません。たとえば、最小頂点カバーにドア ノードが含まれていない場合、2 つの部屋の間の道が見つからないためです。

さまざまなグラフの問題を比較しましたが、実際に一致するものは見つかりませんでした...

非常に遅い時間 (午前 6 時 20 分) で、私は就寝する必要があります。問題に関するご意見をお寄せいただきありがとうございます。

4

1 に答える 1

0

私は自分で答えを見つけたと思います。興味のある方はどうぞ。これは通常の頂点被覆ではなく、「最小連結頂点被覆問題」(CVCP) です。それについての素晴らしい論文があります:

3連結グラフの頂点カバーと連結頂点カバー

于 2013-04-17T11:32:01.947 に答える