3

プロジェクトに取り組んでいるときに、解決できなかったグラフ アルゴリズムの問​​題に出くわしました。問題は次のとおりです。

重み付けされた有向グラフがあり、指定されたノードを訪問しながら、開始ノードと終了ノードの間の最短経路を見つけたいと考えています (特定 のノードを訪問するグラフで最短経路を見つける と非常によく似ています)。ただし、ノードとエッジに加えて、このグラフには「アイテム」の概念もあり、ノードに存在し、そのノードに入ると「ピックアップ」します。ここで、特定のエッジに必要なアイテムI を取得した場合にのみ、エッジをトラバースできるという追加の制約があります。ドアの鍵と考えてください。ドアを通過する前に鍵を取得する必要があります。

指数関数的に爆発する力ずくの方法しか思い浮かびません。誰かがより良いものを考えたり、この問題が解決される場所を教えてくれますか? それとも、これが「難しい」(計算的に言えば)ことを私に納得させますか?助けてくれてありがとう!

4

2 に答える 2

2

この問題は、最適に解決するのが NP-HARD です。ハミルトニアン パス問題からの簡単な還元があります。

元のグラフの各頂点に固有のアイテムを配置します。宛先頂点のみに接続されたシンク頂点を構築します。これらの 2 つの頂点間のエッジがすべてのアイテムを必要とするようにします。

于 2013-10-04T20:24:27.827 に答える