カメヲラボ

主にプログラミングとお勉強全般について書いてます

第01回 隣接行列と接続行列(1)

第1回といえば用語の整理とグラフの定義と相場が決まっているのだが、そんなのはちょろっと調べればすぐにわかるし書いてるうちに飽きてしまいそうなので、最初に出てきたときに説明することにします。

とりあえず、今の段階で必要なことは“グラフは点とそれらをつなぐ辺からできている”ということだけ。「点」は、v(vertexのvかな?)「辺」はe(edgeのeかな?)「グラフ」はGraphだけにGという文字を使って表すようです。また、グラフGに含まれる点の集合をV(G)、辺の集合をE(G)とします。



V(G) = { v1, v2, v3, v4, v5 }
E(G) = { e1, e2, e3, e4, e5, e6, e7 }

で、コイツをどうやってプログラム上で扱うかということなのですが、よくあるのは隣接行列とか接続行列を作る方法です。

隣接行列

例にあるグラフGを隣接行列で表してみます。

頂点が5つなので5*5の行列を作り、つながりがある部分が1、つながりの無い部分は0。

接続行列

隣接行列の場合は行・列ともに点のリストだったわけですが、接続行列は点と辺で表します。

辺に接続されている点が1、それ以外は0とするので、1列の中に1が必ず2箇所出てくることになります。


これを基本にして、もう少し調べていきましょ〜


つづく