アルゴリズムとプログラミング
ダイクストラ法(Dijkstra's Algorithm)の制約として正しいものはどれか。
ア.すべての頂点間の最短経路を同時に求めることを主な目的とする。
イ.有向グラフのみに適用でき、無向グラフには使用できない。
ウ.グラフの辺の重みが負の値を含む場合でも正しく動作する。
エ.辺の重みが非負の有向グラフ・無向グラフに対して、単一始点最短経路を求めることができる。正解
解説
ダイクストラ法は「ナビアプリの最短ルート計算エンジン」。ただし「距離がマイナス(タイムマシン)」のケースは想定外でお手上げです。
なぜ エ が正解か
ダイクストラ法は「単一始点最短経路問題」を解くアルゴリズムです。 条件: 辺の重みがすべて非負(0以上) 適用対象: 有向・無向グラフ両方OK 出力: 始点から他の全頂点への最短距離 手順: ① 始点の距離=0、他の頂点=∞ ② 未確定頂点の中で距離が最小の頂点を選ぶ ③ その隣接頂点の距離を更新 ④ 全頂点が確定するまで②③を繰り返す 時間計算量は優先度付きキューを使うとO((V+E)logV)です。
出典: AI生成問題(学習用)