負辺があっても、ポテンシャルを考えることで負辺のないグラフの最短経路問題に帰着できて、ダイクストラ法が使えるケースがある。

1. パスの重みの記法を定義

頂点の集合が $V$ で与えられる単純有向グラフを考える。

各辺の移動コストが $c\colon V^2 \to \mathbb{R}\cup\{+\infty\}$ で与えられているとき、パス $P$ に沿って移動したときのコスト(パスの重み)を $\int_P c$ と書くことにする。

つまり、パス $P$ が $P = (v_0, \ldots, v_{k-1})$ と表せるとき、以下の式が成り立つとする。

$$ \displaystyle \int_P c = \sum_{i=0}^{k-2} c(v_i, v_{i+1}) $$

普通の積分と同じことが成り立つ(パスに関する線形性、コストに関する線形性)

2. ポテンシャル

$\varphi\colon V\to \mathbb{R}$ を関数とする。$\varphi'\colon V^2 \to \mathbb{R}$ を $\varphi'(x,y) = \varphi(y) - \varphi(x)$ で定める。

このとき、以下が成り立つ。

3 実行可能ポテンシャル

$\varphi\colon V\to \mathbb{R}$ を関数とする。$c\colon V^2 \to \mathbb{R}\cup \{+\infty\}$ をグラフのコスト関数とする。

$\varphi'(x,y) \leq c(x,y)$ を満たす $\varphi$ を実行可能ポテンシャルという。

実行可能ポテンシャルについて以下の性質が成り立つ。

つまり、実行可能ポテンシャルが与えられれば、負辺があってもダイクストラ法で高速に単一始点最短路問題が解ける。