グラフの行列表現
📂グラフ理論グラフの行列表現
定義
グラフ G(V,E) が与えられたとしよう。
次数行列
各頂点 vi∈V の次数 d(vi)を簡単に diと表記しよう。次のような行列を G の次数行列degree matrixと呼び、D(G) または単に Dと表記する。
D(G)=diag(d1,…,dn)=d10⋮00d2⋮0⋯⋯⋱⋯00⋮dn
ここで、diag は対角行列である。
隣接行列
次のような正方行列を G の隣接行列adjacent matrixと呼び、A(G) または単に Aと表記する。
A=[aij]={10,ij∈E(G),ij∈/E(G)
隣接行列は離散的にも豊富な性質を有し、行列の形を保持しているため、線形代数の様々な理論を適用することができる。特にその固有値は、ネットワークを応用する様々なモデルで頻繁に言及される。
接続行列
次のような行列を G の接続行列incident matrixと呼び、M(G) または単に Mと表記する。
M=[mij]={10,vertex i is incident with edge j,otherwise
有向接続行列
Gが有向グラフであるとしよう。次のような行列を G の有向接続行列directed incident matrixと呼び、N(G) または単に Nと表記する。
N=[nij]=⎩⎨⎧1−10,vertex i is tail of edge j,vertex i is head of edge j,otherwise
例

上記のようなグラフに対して、次のような行列が得られる。
D=v1v2v3v4v5v6v7v8v130000000v202000000v300200000v400060000v500002000v600000200v700000030v800000000
A=v1v2v3v4v5v6v7v8v101110000v210010000v310010000v411101110v500010010v600010010v700011100v800000000
M=v1v2v3v4v5v6v7v8e111000000e210100000e310010000e401010000e500110000e600011000e700010100e800010010e900001010e1000000110

上記のような有向グラフに対する有向接続行列は、次のようになる。
N=v1v2v3v4v5v6v7v8e11−1000000e210−100000e3100−10000e4010−10000e5001−10000e60001−1000e700010−100e8000100−10e9000010−10e10000001−10