0

グラフ

だから私はこのグラフを解決する必要があります.私はそれを解決する方法について一般的な考えを持っていますが、これを間違っている場合は私を修正してください.

したがって、MST を見つけるには、グラフでクルスカルス アルゴリズムを実行する必要があります。

これが、このクルスカルス アルゴリズムの擬似コードです。

Kruskal(V,E) A = null; for each v が V に含まれる make disjoint set(v) E を重みで徐々にソート for each(v1, v2) が E に含まれる if

  クラスカル(V,E)

A = ヌル; V に含まれる各 v について 互いに素な集合を作る(v) E を重みで並べ替える for each(v1, v2) は E に含まれます Find(v1) が Find(v2) と等しくない場合 A = A ユニオン {(v1,v2)} ユニオン(v1,v2) リターンA

だから私が最初にすることは、最短距離のノードを見つけることですよね?

1)

d(h,s) = -3 であるため、S から H への距離が最短であると仮定します。

だから A = {(h,s)}

だから今、私たちはこのパターンに従います

2) A = {(h,s),(s,f)}

3) A = {(h,s),(s,f)(s,n)}

4) A = {(h,s)(s,f)(s,n)(f,k)}

5) A = {(h,s)(s,f)(s,n)(f,k)(s,m)} (h から n へのパスが既に作成されているため、H から N をスキップします。 s )

6) A = {(h,s)(s,f)(s,n)(f,k)(s,m)(d,b)}

7) A = {(h,s)(s,f)(s,n)(f,k)(s,m)(d,b)(b,m)}

では、すべてのエッジに接続するパスがあるので、これで問題ありません。

しかし、私が理解していないのは、複数の頂点を通るパス[u、v]よりも短い距離[u、v]があることです。たとえば、d[d,m] は、最初に B を通過する p[d,m] よりも短くなります。私は何か間違ったことをしていますか?

4

1 に答える 1