0

私はコーメンから次の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
4

1 に答える 1

6

最初の質問として、頂点が 3 つしかない完全なグラフを考えてみましょう。このグラフで、path(s,v) = path(s,u) + 1 は本当ですか?

于 2011-10-20T12:24:51.510 に答える