SageMathとグラフ理論(同型判定、カノニカルラベル)

グラフが同型である、ということの定義はこれこれ(要確認)、同型であることを判定する関数はG,Hをグラフとすると、

 

G.is_isomorphic(H)

 

とかであろう、と予想されます(未確認)。

 

ところでグラフが同型であることのアルゴリズムはカノニカル(canonical)型に変形して同じグラフになることらしい。計算量が半端ないようなことがグラフ理論の本に書いてある。

 

SageMathを検索すると、canonical_label()という関数があって、

 

G.canonical_label()

 

という風に使うらしい。


名前からみて、たぶん頂点の番号を振り直すのだろう。だとすると便利かもしれない。


G.canocnial_label().adjacent_matrix()

 

とすると、行列にしてくれるので、性質が研究できる。

 

とか。