エッジの重みが正の有向非巡回グラフがあります。単一のソースと一連のターゲット (ソースから最も遠い頂点) があります。ソースから各ターゲットへの最短経路を見つけます。これらのパスの一部は重複しています。私が欲しいのは、すべてのエッジの重みの合計を最小化する最短パス ツリーです。
たとえば、2 つのターゲットを考えてみましょう。すべてのエッジの重みが等しい場合、それらの長さの大部分で 1 つの最短パスを共有する場合、2 つのほとんど重複しない最短パスよりも望ましい方法です (ツリー内のエッジが少ないほど、全体的なコストが低くなります)。
別の例: 2 つのパスは、その長さのごく一部が重複していません。重複していないパスのコストは高くなりますが、長い共有パスのコストは低くなります (結合コストが低い)。一方、2 つのパスはその長さの大部分が重複しておらず、重複していないパスのコストは低くなりますが、短い共有パスのコストは高くなります (合計コストも低くなります)。多くの組み合わせがあります。ソースからターゲットへのすべての最短経路を考慮して、全体のコストが最も低いソリューションを見つけたいと考えています。
言い換えれば、最短、最短パス ツリーが必要です。
これは誰かと何か鐘を鳴らしますか? 関連するアルゴリズムや類似のアプリケーションを教えてもらえますか?
乾杯!