グラフ \(G\) の辺集合 \(E(G)\) の部分集合 \(F\) は各辺 \(e \in E(G)\) が辺集合 \(F\) に”含まれるか否か”をベクトルの要素”1/0″に対応させることで \(\mathbb{Z}/2\mathbb{Z}\) ベクトルと一対一対応する。このとき、ベクトルの和は辺集合の対称差と対応づく(下図、要は辺ごとのXOR)。辺集合がなすこのベクトル空間を辺空間と呼ぶ。
この記事では辺空間 \(\mathcal{E}(G)\) の部分空間であるサイクル空間、カット空間の基底について解説する。
サイクル空間 \(\mathcal{C}(G)\) とはサイクルの辺集合全体が生成する \(\mathcal{E}(G)\) の部分空間、またカット空間 \(\mathcal{B}(G)\) とはカットの辺集合全体が生成する \(\mathcal{E}(G)\) の部分空間である。
サイクル空間の元は、サイクルの Disjoint Union になる(非連結になり得ることに注意)。このことは、二つの閉路の XOR が閉路の Disjoint Union になることを思い浮かべれば分かる。また、カット空間の元は(幾つか例外を除き)カットになる。このことは、後述する\(E(v)\) の形の基底で理解できるはずである。
サイクルの Disjoint Union とカットが部分空間として閉じているという点が非常に重要である。サイクル・カット空間の基底を見つけることができれば、サイクルの Disjoint Union やカットの数え上げが容易であることを示唆している。
簡単のために、この記事では辺集合 \(F \in \mathcal{E}(G)\) と \(G\) の部分グラフ \((V,F)\) を区別せずに使う。
基本閉路・基本カット
以下に述べるように、サイクル・カット空間の基底は全域木を用いて簡単に列挙することができる。適当な全域木 \(T \) を取る。\(T\) に含まれない \(G\) の辺 \(e \in E(G) \setminus E(T)\) を \(T\) に加えた時にできる唯一の閉路 \(C_e\) を \(T\) に関する \(e\) の基本閉路と定義する。また、\(f \in E(T)\) を除いた \(T-f\) の 2 つの連結成分を横切るカット \(D_f\) を \(T\) に関する \(f\) の基本カットと定義する。このとき次の事実が成り立つ。
証明:\(e \notin T\) は基本閉路のうち \(C_e\) のみに含まれる辺であるから、基本閉路は一次独立。同様に \(f \in T\) は基本カットのうち \(D_f\) にのみ含まれる辺であるから基本カットも一次独立。
あとは基本閉路と基本カットがそれぞれサイクル空間とカット空間の全ての元を生成することを示せば良い。サイクル空間の元 \(C+\sum_{e \in C \setminus T} C_e\) は \(T\) の辺のみで構成されるが、そのような回路は存在しない(辺空間での足し算であることに注意)。従って \(C+\sum_{e \in C \setminus T} C_e=\emptyset\) つまり \(C=\sum_{e \in C \setminus T} C_e\) となる。サイクル空間の任意の元 \(C\) が基本閉路で生成できた。同様にカット空間の元 \(D+\sum_{f \in C \cap T} D_f\) は \(T\) の辺を含まないが、そのようなカットは存在しない。従って、\(D=\sum_{f \in D \cap T} D_f\) である。カット空間の任意の元 \(D\) が基本カットで生成できた。
ここから基本閉路・基本カットの数を数えることで \(\mathrm{dim}\ \mathcal{C}(G)=m-(n-1), \mathrm{dim}\ \mathcal{B}(G)=n-1\) が成り立つ。
ところで頂点 \(v\) に接続する辺集合 \(E(v)\) はカットであるが、実はこの形のカット全体はカット空間全体を生成する。一つカットを除いて、\(n-1\) 元にすれば、基底になる。この基底は頂点のXORでカット空間の足し算が捉えられることを表している。基底を求めるだけなら基本カットよりもこちらのほうが求めやすいと思う。Project Selection だと、こちらの方が考えやすい場合がある。
演習
ネタバレを避けるために出典は黒塗りにしている。
参考文献
- Diestel, Reinhard. “Graph theory. 1997.” Grad. Texts in Math 2 (2016). Capter1.9. (preview)
- この記事では扱わなかった、サイクル空間とカット空間が互いに直交補空間であるという話題が載っています。
- [AtCoder 参加感想] 2020/10/12:ARC105 (maspyさんのHP)
- 問題1の原題をカット空間と関連させて解いています(省いてしまいましたが、問題1には続きがあります)。
Comments