MATLABによる最小全域木の生成法

MATLABではgraphminspantree関数を使って最小全域木を計算できます。

graphminspantree関数の呼び出し形式は

[T , pred] = graphminspantree(G)

Gはグラフのつながりや重みを表す疎行列または重み付き隣接行列,Tは最小生成木の隣接行列,predは最小生成木の親行列です。

最小生成木の解き方のサンプルコードを示します。

加重隣接行列を作成します。

G = [[0, 2, 0, 6, 0], [2, 0, 3, 8, 5], [0, 3, 0, 0, 7], [6, 8, 0, 0, 9], [0, 5, 7, 9, 0]]

最小生成木を求めよ

[T, pred] = graphminspantree(sps(G));

最小生成木の隣接行列を出力する

disp(T);

結果は出ました。

0 0 2 0 6

ネイティブに日本語で言い換えると、

0 3 0 0 7

0 0 0 0 0

本来は5時間、7時間、5時間、7時間と各時間が交互に繰り返されるものだった

非ゼロの要素は最小生成木の辺、ゼロの要素は最小生成木に含まれない辺を表す。

bannerAds