現在、有向グラフの最短経路を研究しています。ダイクストラやベルマンフォードのように、ネットワーク内の最短経路を見つけるための多くの効率的なアルゴリズムがあります。しかし、グラフが動的な場合はどうでしょうか?動的とは、プログラムの実行中に頂点を挿入または削除できることを意味します。新しいグラフで最短経路アルゴリズムを再度実行する必要なく、エッジeを挿入した後、頂点から他のすべての頂点uへの最短経路を更新するための効率的なアルゴリズムを見つけようとしています。これどうやってするの?前もって感謝します。
- 注:変更は、アルゴリズムの最初の反復後に行うことができます
- 注[2]: 2つのノード、はソース、tはターゲットです。これらのノード間の最短パスを見つける必要があります。グラフが更新されたら、π (s 、t )を更新するだけです。これはsとtの間の最短経路です。
- 注[3]:エッジ挿入の場合にのみ興味があります。
正式な定義:グラフ与えられた場合。定義更新操作を)1と、エッジの挿入Eに対してE)は、エッジのアミノ酸欠失または2 EからEを。目的は、更新操作後のすべてのペアの最短パスのコストを効率的に見つけることです。効率的には、少なくとも更新操作の後に、Bellman-FordアルゴリズムなどのAll-Pairs-Shortest-Pathアルゴリズムを実行するよりも優れています。
編集:以下に問題の簡略版があります:
重み付きグラフが与えられ、単方向のエッジと2つの重要な頂点sおよびtで構成されます。候補の双方向エッジのセットCも提供されます。私はエッジを構築しなければならない(U 、V )∈ Cはからの距離を最小にするために、SをT。