回答:
Dasgupta et alの本「Algorithms(Section 4.4)」のアイデアを以下に示します。
第三に、Dijkstraアルゴリズムは重み付けされていないグラフでどのように動作しますか?
BFSとまったく同じように動作します。これを2つの主要なポイントから詳しく説明します。
「リラクゼーション」について。
一般的な重み付きグラフのダイクストラアルゴリズムの場合、緩和は
for all edges (u,v) in E:
if dist(v) > dist(u) + w(u,v)
dist(v) = dist(u) + w(u,v)
for all edges (u,v) in E:
if dist(v) = \infty
dist(v) = dist(u) + 1
「優先キュー」。
ダイクストラアルゴリズムが重み付けされていないグラフで実行されると、優先キューには常に2つの異なる(距離)値が含まれます。したがって、BFSのFIFOキューで十分です。