回答:
最短経路の問題では、重みを気にしない場合、幅優先探索が確実な方法です。それ以外の場合、ダイクストラのアルゴリズムは、ネガティブエッジがない限り機能します。
最長パスでは、すべてのエッジの重みを無効にして、グラフ上で常にベルマンフォードを実行できます。ベルマンフォードは負のウェイトサイクルがない限り機能することを思い出してください。したがって、DAGのどのウェイトでも機能します。
ましょうおよびm = | E (G )| 。ましょうwは(→ B )エッジの重み示す(→ Bを)。sからtまでの最小および最大パスコストを検索するとします。
から開始して、次を実行します。
がすでにアクセスされている場合、既に計算されたmin (b )およびmax (b )を返します。それ以外の場合は、bを訪問済みとしてマークします。
次のように、およびmax (b )を決定して記録します。
すべての頂点変数を初期化するのに必要な時間を無視して、このアルゴリズムが時間で実行されることを証明できるはずです。