0

追加されたノードの数が最も少ないグラフで最短経路を見つける必要があります。開始ノードと終了ノードは重要ではありません。指定された n ノード間のグラフにパスがない場合、いくつかのノードを追加して最短のツリーを完成させることができますが、新しいノードはできるだけ少なくしたいと考えています。

この問題を解決するには、どのアルゴリズムを使用できますか?

4

3 に答える 3

1

開始ノードから開始します。

それがターゲット ノードである場合は、完了です。

対象ノードである場合は、接続されているすべてのノードを確認します。本当なら終わり

接続されているノードのいずれかがターゲット ノードに接続されているかどうかを確認します。true の場合は完了です。

それ以外の場合は、開始ノードと終了ノードに接続されているノードを追加します。終わり。

于 2009-10-28T12:06:13.307 に答える
0

パス内のノードの数を最小限に抑えたい (一般的なアルゴリズムのように重みの合計ではなく)。

その場合は、すべてのエッジに等しい重みを割り当て、最短経路を見つけます (汎用アルゴリズムを使用)。必要なものが手に入ります。

パスがない場合は、そのエッジをグラフに追加します。

サンズ。

PS: 各エッジに 1 の値を指定すると、パス内のノードの数は重み-1 になります (ソース ノードと宛先ノードを除く)。

于 2009-10-28T13:04:17.177 に答える
0

遺伝的アルゴリズムを使用することをお勧めします。詳細については、こちらこちらをご覧ください。簡単に説明すると、GA は、最適化および検索の問題に対する正確な解または近似解を見つけるためのアルゴリズムです。

可能なソリューションの初期集団を作成します。それらのどれが最も適しているかを見つけるために、フィットネス関数でそれらを評価します。その後、継承、突然変異、選択、交差などの進化生物学に触発された手法を使用する進化的アルゴリズムを使用します。

何世代にもわたって、問題に対する最も適切な (最短で読める) 解決策を見つけることができます。

于 2009-10-28T12:15:47.300 に答える