markdown
最短路の基本
lecture/information/algorithm/graph/最短路の基本-講義.n.md

最短路さいたんろ基本きほん

date2026-03-27description最短路を、重みのない場合と重みのある場合に分けて整理し、BFS とダイクストラ法の使い分けを説明します。prerequisitesグラフの基本 / DFSとBFSの基本 / 計算量の基本type講義statusactiverelateddata/lecture/information/algorithm/graph/グラフアルゴリズムポータル-講義.n.md / data/lecture/information/algorithm/search/DFSとBFSの基本-講義.n.md
algorithmgraphundergraduatelecture

導入どうにゅう

この講義こうぎ最重要さいじゅうようなのは、最短路さいたんろでは「1 ほんすすおもさがみなおなじか」「へんごとにおもみがちがうか」を最初さいしょ見分みわけることです。

最短さいたんといっても、へん本数ほんすう最小さいしょうにしたいのか、おもみの最小さいしょうにしたいのかで使つか道具どうぐわります。ここを曖昧あいまいにすると、BFS でよい問題もんだいとダイクストラほう使つかうべき問題もんだい混同こんどうします。

用語ようご定義ていぎ

最短路さいたんろShortest path とは、ある始点してんから終点しゅうてんまでのみちのうち、ながさが最小さいしょうのものです。

おもWeight とは、へんについた距離きょり費用ひようのようなあたいです。

方針ほうしん

まず「おもみなし」なら BFS で距離きょりそうとしてひろげます。「おもみあり」ででないなら、現時点げんじてん最小さいしょう距離きょりをもつ頂点ちょうてんから確定かくていしていきます。

直感的ちょっかんてき説明せつめい

おもみがないなら、BFS のなみが 1 ずつひろがるので、最初さいしょいた時点じてんでその歩数ほすう最短さいたんです。いっぽう、おもみがあると「1 ぽん すすむ」だけでは距離きょりくらべられないので、いちばんみじかける候補こうほからじゅん確定かくていしていく必要ひつようがあります。

厳密げんみつ説明せつめい

1. おもみなしの場合ばあい

ここでは BFS の層構造そうこうぞうをそのまま使つかうので、キューでどう探索たんさくひろがるかがまだ曖昧あいまいなら、さきにこちらをると理解りかいしやすくなります。

data/lecture/information/algorithm/search/DFSとBFSの基本-講義.n.md

BFS では、始点してんから距離きょり 1 の頂点ちょうてん、つぎに距離きょり 2 の頂点ちょうてんというじゅん探索たんさくします。したがって、最初さいしょ到達とうたつしたときの距離きょり最短さいたんです。

2. おもみありの場合ばあい

へんおもみがでないなら、ダイクストラほう未確定みかくてい頂点ちょうてんのうち距離きょり最小さいしょうのものをえらんで確定かくていしていきます。

3. 使つか

おもみなしなら BFS、おもみありででないならダイクストラほう、という整理せいり基本きほんです。

見分みわかた

  • へん本数ほんすう最小さいしょうにする問題もんだいなら BFS をうたがいます。
  • 時間じかん費用ひよう距離きょりのようなおもみがへんについているなら、BFS だけではりません。
  • 最初さいしょいたら最短さいたん」がえるのは、BFS の層構造そうこうぞう使つかえるときです。

最終形さいしゅうけい

[PARSE ERROR: Undefined("Command(\"boxed\")")]重みなし最短路BFS
[PARSE ERROR: Undefined("Command(\"boxed\")")]重みあり最短路ダイクストラ法の候補

一言ひとことでいうと

  • 最短路さいたんろでは、まず「なにながさとみなすか」をめ、それにおうじて BFS とダイクストラほう使つかけます。
raw .n.md をコピー
loc をコピー (filepath:line ~ line)
copy share link
path をコピー
copy share link
copy share link
タブを全て閉じる