負辺があっても、ポテンシャルを考えることで負辺のないグラフの最短経路問題に帰着できて、ダイクストラ法が使えるケースがある。
頂点の集合が $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}) $$
普通の積分と同じことが成り立つ(パスに関する線形性、コストに関する線形性)
$\varphi\colon V\to \mathbb{R}$ を関数とする。$\varphi'\colon V^2 \to \mathbb{R}$ を $\varphi'(x,y) = \varphi(y) - \varphi(x)$ で定める。
このとき、以下が成り立つ。
$\varphi\colon V\to \mathbb{R}$ を関数とする。$c\colon V^2 \to \mathbb{R}\cup \{+\infty\}$ をグラフのコスト関数とする。
$\varphi'(x,y) \leq c(x,y)$ を満たす $\varphi$ を実行可能ポテンシャルという。
実行可能ポテンシャルについて以下の性質が成り立つ。
コスト関数が $c$ で与えられるグラフについて以下が成り立つ。
つまり、以下の2つは同値
$c_{\varphi}\colon V^2 \to \mathbb{R}\cup\{\infty\}$ を $c_\varphi = c - \varphi'$ と定義したとき、以下が成り立つ
つまり、実行可能ポテンシャルが与えられれば、負辺があってもダイクストラ法で高速に単一始点最短路問題が解ける。