大阪大学 情報科学研究科 情報工学 2022年8月実施 離散構造
Author
祭音Myyura
Description
グラフ (graph) G=(V,E) は、 n 個の頂点 (vertex) の集合 V={v1,v2,...,vn} と、頂点のペアにより定義される辺 (edge) の集合 E により構成される無向グラフ (undirected graph) である。
また、グラフ G は同じ頂点を結ぶ辺を持たず、かつ、任意の2つの頂点間を結ぶ辺は高々一つであるとする。
頂点 vi と vj の間に辺が存在するとき、頂点 vi と vj は隣接する (adjacent) と呼ぶ。
次の規則で定義される (i,j) 成分 aij を持つ n×n 行列 AG をグラフ G の隣接行列 (adjacency matrix) と呼ぶ。
aij={10(viとvjの間に辺が存在する)(その他のとき)
また、隣接する頂点の系列 vx0→vx1→⋯→vxh→⋯→vxm (0≤h≤m, 1≤xh≤n) を、長さ m の歩道 (walk) と呼ぶ。
歩道は同じ頂点を複数含んでも良い。
例えば、下図グラフ G1 において、 v1→v2→v4→v2→v3 は長さ 4 の歩道である。
以下の各問に答えよ。
(1) 上図グラフ G1 の隣接行列 AG1 を示せ。
(2) グラフ G における、頂点 vi から vj の長さ k (k≥1) の歩道の総数を、fG(k,i,j) で表すこととする。
- (2-1) 上図グラフ G1 について考える。グラフ G1 において、fG1(3,3,2) の値を答えよ。
- (2-2) 上図グラフ G1 において、∑1≤k≤3fG1(k,4,3) の値を答えよ。
- (2-3) グラフ G における隣接行列 AG の k 乗を AGk で表す。行列 AGk の (i,j) 成分を aij(k) と表現すると、aij(k)=fG(k,i,j) になることを証明せよ。
(3) 頂点数が n の完全グラフ (complete graph) を Kn とする。
- (3-1) 完全グラフ Kn の辺の数を n を用いて示せ。
- (3-2) 一般に、n≥3 のグラフが K3 を含むかどうかは、隣接行列を用いて判定することができる。隣接行列 AG の (i,j) 成分を aij, AG2 の (i,j) 成分を bij としたときに、aij と bij を用いて、グラフ G が K3 を含むかどうかを判定する方法を理由とともに説明せよ。
(4) n≥2 のグラフ G が連結である (connected) とは、行列 α がそのいずれかの成分にも 0 を持たないことを調べることで確認できる。In を n×n の単位行列 (identity matrix) としたときに、隣接行列 AG, In, n を用いて空間の α を示せ。
题目描述
设 G=(V,E) 为有 n 个顶点的简单无向图,顶点集
V={v1,…,vn}。其邻接矩阵 AG=(aij) 在 vi,vj 相邻时取 1,否则取 0。相邻顶点序列称为游走,允许重复顶点。
- 写出题图 G1 的邻接矩阵。
- 记 fG(k,i,j) 为从 vi 到 vj、长度为 k 的游走总数。
- 求 fG1(3,3,2);
- 求 ∑1≤k≤3fG1(k,4,3);
- 证明 AGk 的 (i,j) 元等于 fG(k,i,j)。
- 记 n 阶完全图为 Kn。
- 求 Kn 的边数;
- 设 AG 的 (i,j) 元为 aij,AG2 的相应元素为 bij。说明如何利用 aij,bij 判断 G 是否含三角形 K3,并解释原因。
- 对 n≥2,用 AG、单位矩阵 In 和 n 写出矩阵 α,使“α 的所有元素均非零”等价于图 G 连通。
- 邻接矩阵:由图构造对称的 0–1 矩阵。
- 矩阵幂与游走计数:通过归纳和矩阵乘法解释长度为 k 的游走数。
- 三角形检测:一条边两端若存在共同邻点,则形成 K3。
- 图的连通性:用 I+A+⋯+An−1 汇总有限长度可达关系。
Kai
(1)
AG1=0110010110110110110100110
(2)
(2-1)
v3→v2→v3→v2v3→v2→v1→v2v3→v2→v4→v2v3→v1→v3→v2v3→v4→v3→v2v3→v5→v3→v2v3→v5→v4→v2
よって、fG1(3,3,2)=7 である。
(2-2)
∑1≤k≤3fG1(k,4,3)=10
(2-3)
行列 AG を二乗したとき、その (i,j) 成分 aij(2) は、次のように計算される
aij(2)=(AG2)ij=t∑aitatj
ここで、aitatj=0 となるのは ait=atj=1 の時のみである。
隣接行列の定義より、頂点 vi から vt への辺が存在し、かつ、頂点 vt から vj への辺が存在することがわかる。
よって、長さ 2 の歩道 vi→vt→vj が存在する。
従って、aij(2) は、全ての可能な中間頂点 vt を通って vi から vj への長さ 2 の歩道の個数となることがわかる、すなわち、aij(2)=fG(2,i,j) である。
次に、aij(k−1) は頂点 vi から vj の長さ k−1 の歩道の総数を表すと仮定する。
同様に、aij(k) は、次のように計算すると、
aij(k)=(AGk)ij=(AGk−1AG)ij=t∑ait(k−1)atj
aij(k) は頂点 vi から vj の長さ k の歩道の個数となることがわかる。
(3)
(3-1)
2n(n−1)
(3-2)
以下の条件を満たす i,j,k が存在するとき、
aij=1,aik=1,ajk=1
グラフ G が完全グラフ3 (V={vi,vj,vk},E={vivj,vivk,vjvk}) を含むから、各成分 (i,j) について、
aij=1 かつ bij≥2
であるかどうかをチェックすれば、グラフ G が K3 を含むかどうかはわかる。
(4)
(The idea is to check the value of aij(k) for each k∈{1,2,…,n−1})
AG+AG2+⋯+AGn−1
or
(In+AG)n−1