私はコーメンから次のBFS関数を持っています。
頂点sから頂点vまでの任意のパスのエッジの最小数としてのsからvまでの最短経路距離パス(s、v)の定義、またはsからvへのパスがない場合。長さパスのパス(s、v)sからvへは、sからvへの最短経路であると言われています。
以下は与えられた補題です
G =(V、E)を有向または無向のグラフとし、sがVに属するものを任意の頂点とします。次に、任意のエッジ(u、v)Eについて、
path(s、v)<= path(s、u)+1。
私の質問は、なぜ上記の式に<=が必要なのかということです。私は、「=は大丈夫です。なぜ<=が必要なのか、1つのシナリオを教えてもらえますか?」と教えました。
以下はBFSアルゴリズムです
リーマ2:
G =(V、E)を有向または無向のグラフとし、BFSが特定のソースからG上で実行されると仮定します。頂点sはVに属します。次に、終了時に、各頂点vがVに属する場合、値d [v ]BFSによって計算されたものはd[v]>= path(s、v)を満たします。
証拠:
頂点がキューQに配置される回数に帰納法を使用します。帰納法の仮説は、すべてのvのd [v]> = path(s、v)がVに属するというものです。
誘導の基礎は、sがBFSの8行目のQに配置された直後の状況です。
すべてのvのd[s]= 0 = path(s、s)およびd [v] = path(s、v)は、V-{s}に属するため、帰納的仮説がここに当てはまります。
私の質問は、「頂点がキューQに配置される回数に誘導を使用する」とはどういう意味ですか?そしてそれは帰納的仮説とどのように関連していますか?
ありがとう!
BFS(G,s)
1 for each vertex u V[G] - {s}
2 do color[u] WHITE
3 d[u]
4 [u] NIL
5 color[s] GRAY
6 d[s] 0
7 [s] NIL
8 Q {s}
9 while Q
10 do u head[Q]
11 for each v Adj[u]
12 do if color[v] = WHITE
13 then color[v] GRAY
14 d[v] d[u] + 1
15 [v] u
16 ENQUEUE(Q,v)
17 DEQUEUE(Q)
18 color[u] BLACK