[AGC043E] Topology 题解

· · 题解

这道题把定义都拍到脸上了, 是一个很好的给 OIer 普及什么是拓扑的一个机会.

我将在本文中勾勒出拓扑学 (topology) 如何将本题严格地刻画并解决, 但是完整地搬运每一个细节是不必要的, 不如按顺序提及相关的概念, 以便读者从下述书籍中自学:

本文的记号主要和 Munkres 保持一致.

虽然对于解释本题来说并不一定需要, 但是由于是最基础的东西, 我们首先还是明确拓扑空间的定义:

拓扑空间 (topological space).X 是一个非空集合, 它的一个子集族 \mathcal T\subset 2^X 需要满足如下条件:

  • 对任意 U, V\in \mathcal T, 有 U\cap V\in \mathcal T.
  • 对任意 \{U_{\alpha}\in \mathcal T\}_{\alpha\in J}, 有 \bigcup_{\alpha \in J} U_\alpha \in T.

我们称 X 连同其拓扑 \mathcal T 是一个拓扑空间 (X,\mathcal T). \mathcal T 中的元素称为开集 (open set). 对于集合 D, 若补集 X \smallsetminus D 为开集, 则称 D闭集 (closed set).

这样, 我们平时所说的 \mathbb R^n 上的拓扑所说的开集就是任意多个开球的并.

对于某个子空间 Y\subset X, 作为子空间拓扑, Y 上的开集就是全体 X 中的开集与 Y 的交. 此外还可以自然地定义两个拓扑空间的乘积, 使得连续函数的一些复合之类的性质成立, 但接下来讨论里空间总是 \mathbb R^n 的子空间, 所以按下不表.

而连续函数的定义其实在拓扑中反而只用一句话. 我们称 f\colon X\to Y连续 (continuous) 的, 当且仅当每个 Y 中开集的原像 f^{-1}(U) 是开集. 可以验证, 在分析中 \mathbb R^n \to \mathbb R^m 的连续函数的定义和拓扑学的定义是相容的.

接下来, 题面中所说的闭曲线, 一般的来说就是连续函数 f\colon [0, 1]\to X, 我们称其为 X 中的一条道路 (path). 题面所说的从 CD 的连续变化, 更一般地说就是 C, D\colon X\to Y 存在函数 F\colon X\times [0, 1]\to Y 使得 F(\bullet, 0) = C(\bullet)F(\bullet, 1) = D(\bullet). 此时称 F 给出 C,D 间的一个同伦 (homotopy), 容易验证 F 的存在性构成一个等价关系 C\simeq D, 称作同伦等价.

对于 C(0)=C(1) 的道路, 这称作一个回路 (loop), 这里值得一提的是, 题面中的定义其实是有问题的! 因为它并没有时刻限制 F(x, \bullet) 是一个回路, 那我们其实就可以先把 C 的一端按照原路返回收缩成一个点, 再让这个点跑到 D 的端点的地方再重新展开, 这样问题就平凡了. 所以这里更加正确的说法是, C, D 是一个 S^1\to X 的连续函数, 这里 S^1\mathbb R^2 上的单位圆, 或者形象地说, 就是将闭区间 [0, 1] 的两端点粘起来. 这样定义下 CD 的同伦才保证了时刻是一个回路而不被拆开.

直接研究 S^1\to X 并不直观, 我们实际上还是得用道路的同伦来进行研究, 但需要加一点限制. 如果两条道路 C,D 的起点和终点相同, 且存在一个 CD 的同伦 F, 这个同伦另外保证了 F(0, \bullet) = C(0)= D(0)F(1,\bullet) = C(1)=D(1), 那么这给出 CD 的一个定端同伦 (path homotopy), 可以验证它也给出一个等价关系 \simeq_p. 我们接下来记作等价关系 [C]=[D].

定端同伦多出来的一些东西就在于我们可以考虑道路之间的拼接. 对于 C 是从 xy 的道路, D 是从 yz 的道路, 那么 C*D 可以定义为把 C 的这部分放在 [0, 1/2], 把 D 的这部分放在 [1/2, 1], 可以验证, 这给出一个等价类上良定义的运算 [C]*[D] = [C*D], 进一步可以验证这个运算满足结合律.

那么对于一个定点 x_0 到自身的道路来说, 情况就更特殊了, 所有道路之间都可以做运算, 并且 e(\bullet)=x_0 这个常函数满足 [e]*[C] = [C]*[e] = [C]. 定义 \overline {C} 为将道路 C 翻转方向, 那么我们又可以验证 [C]*[\overline C] = [\overline C]*[C] = [e], 所以 x_0 到自身的道路的等价类的运算构成一个群! 我们称其为基本群 (fundamental group), \pi_1(X,x_0).

对于题目中给定的点集 S = \{(i+0.5, 0.5) \mid 0\leq i < n\}, 我们规划的路径必然对应为 \mathbb R^2 \smallsetminus S 的一个基本群里的一个元素. 我们首先要搞清楚其基本群的结构是长啥样的 (这样才明白这道题的 spj 是怎么写的). 为此, 我们需要有一些基本的工具来对一个拓扑空间进行一些处理.

一个比较基本的手段就是发掘一个拓扑空间的 (强) 形变收缩核 ((strong) deformation retract). 这是说一个拓扑空间 X 如果有一个子空间 A, 且 id(x) = x 到一个连续函数 r\colon X\to A 是同伦的, 且这个同伦满足对任意 a\in A, t\in [0, 1], 有 H(a, t) = a, 此时就称 AX 的一个强形变收缩核. 容易发现, 这个同伦能够把任何一个基本群中的元素 [f] \in \pi_1(X,a_0) 同伦到 [r\circ f] \in \pi_1(A, a_0), 而且进一步给出了二者之间的一个同构.

如上图 (摘自 James Munkres, Topology) 所示, 这给出了一个 \mathbb R^2 挖去两个点后, 可以强形变收缩到两个环粘起来, 写作 S^1 \vee S^1. 不难想象, 挖去 n 个点后, 可以强形变收缩成将 n 个环经由同一个点粘起来的结构, 记该交点为 b_0, 我们只需要研究 \pi(S^1 \vee \dots \vee S^1, b_0) 的结构即可.

复叠空间 (covering space) 的理论可以比较轻易地说明 \pi_1(S^1, b_0) 是无限循环群 \mathbb Z, 且由在它上面"走一圈"的回路作为生成元 1. 而 van Kampen 定理 可以帮助我们处理确定将拓扑空间进行粘合的时候基本群的结构.

X=S^1 \vee S^1 为例子, 选取两个环上各一个点 p_1, p_2, 那么 A=X \smallsetminus \{p_1\}B=X \smallsetminus \{p_2\} 各自可以强形变收缩成一个环, 基本群是 \mathbb Z. 它们的交集 A\cap B = X \smallsetminus \{p_1, p_2\} 可以强形变收缩成一个点, 是单连通的. 对于这种情况, van Kampen 定理断言 X= A\cup Bb_0 的基本群是 A, B 各自在 b_0 基本群的自由积 (free product) \mathbb Z * \mathbb Z.

顾名思义, 两个群的自由积就是我们希望将它们最为自由地乘起来, 除了他们群里各自的单位元都是得到的群的单位元. 具体地说, G = G_1 * G_2 里的每个元素有一个唯一的既约字 (reduced word) 表示 x_1 x_2 \dots x_m, 其中每个 x_i \in G_1 \cup G_2 \smallsetminus \{1\}, 且相邻的 x_i 不能属于同个群. 两个字的乘法就是将它们首尾相连, 然后相邻属于同个群的都按照定义做运算, 得到 1 则去掉, 以此类推. 证明这个构造确实成群只是琐事, 不过也有略聪明些的方法简化步骤.

进一步地, 我们可以得到那 n 份环粘起来 S^1 \vee \dots \vee S^1b_0 的基本群是 n\mathbb Z 的自由积, 也称作 n 个元素的自由群 (free group), 而且收缩得到的 n 个环各自对应于一个元素. 也就是说, 群的结构无非就是 \{x_1, x_1^{-1}, x_2, x_2^{-1},\dots, x_n, x_n^{-1}\} 组成的字符串, 且相邻两项不为逆. 直观上看就是, 要消除之前走的路的影响, 仅能通过"原路返回"做到.

这里要注意的是, \mathbb R^2 \smallsetminus S 的强形变收缩核有很多种选取方式, 如前面的图中, 我们也可以选取一个环包住 p, 另一个环同时包住 \{p, q\}, 由于 S^1 \vee S^1 不在意这里的包含关系, 我们同样得到了一组生成元, 但是这组生成元和图中 8 字形的两个环的两个回路并不能一一对应. 从代数角度来说, 就是 \{x,y\} 生成的自由群同样可以被 \{x, xy\} 自由地生成. 为明确结构, 我们接下来假设的是选取了一个每个点恰被一个环包住一圈的情况, 可以想象成"开花".

对于 T\subset S, 有嵌入 \iota\colon \mathbb R^2 \smallsetminus S \to \mathbb R^2 \smallsetminus T, 自然地给出一个基本群的态射 \iota^* \colon \pi_1(\mathbb R^2 \smallsetminus S, x_0) \to \pi_1(\mathbb R^2 \smallsetminus T,x_0), 无非都是某个 [f], 容易验证连续映射给出了一个基本群之间的群同态 (group homomorphism). 接下来我们用 i 指代 S 中的第 i 个点. 容易验证, 如果 i\notin T, 那么 \iota^*x_i 映到单位元, 而对于 i\in T, 这些 \iota^*(x_i) 自由地生成了 \mathbb R^2 \smallsetminus T 的基本群. 至此, 我们完全将这个问题转化成了一个明确的代数问题:

试找出一个自由群 \mathbf F(x_1,\dots,x_n) 中的元素 w, 使得对于每个 T\subset S, 忽略 S\smallsetminus T 中元素的同态 \phi_{S\to T} 按照所给的要求将 w 映到单位元或非单位元.

显然我们有问题有解一些必要条件, 首先去掉所有点之后群是平凡的, 所以我们一定会有 \phi_{S\to \varnothing} (w) = 1. 此外, 有 \phi_{S\to T} = \phi_{R\to T} \circ \phi_{S\to R}, 所以对于 T\subset R, \phi_{S\to R}(w)=1 就必有 \phi_{S\to T}(w) = 1. 通过这样的封闭性检验是个必要条件.

然后呢? 我们很容易知道 w=x_1x_2\dots x_n 可以让所有非空集合 T 都有 \phi_{S\to T}(w)\neq 1, 但一般情况呢?

先考虑 n=2 时的一个非平凡情况, 如果 \phi_{S\to T}(w)=1 \iff T \neq S, 我们有这样的构造吗? 实际上是有的: xyx^{-1}y^{-1}. 这被称为两个元素的交换子 (commutator) [x,y]. 我们可以借此构造一个更一般一点的情况, 记 w_{x} = x, w_{x, T} = [x, w_T], 我们可以发现 \phi_{S\to T}(w_S) \neq 1 当且仅当 T= S. 这是容易归纳验证的, 只需利用 \phi(w_{x, T}) = [\phi(x), \phi(w_T)] 这一性质, 若 R\neq S, 则失去至少一个元素, 如果 x\notin R, 那 [\phi(x), \phi(w_T)] = [1, \phi(w_T)] = 1, 否则失去的元素在 T 里, 归纳有 [\phi(x), \phi(w_T)] = [\phi(x), 1] = 1.

最后我们可以考虑对剩下的所有情况做出构造了. 我们取出所有极小的规定了 \phi_{S\to R}(w)\neq 1R. 将这些所有 Rw_R 相乘, 我们验证它满足我们的要求. 对于 T, 显然 \phi_{S\to T} 消去了所有不是 T 的子集的 R. 当 \phi_{S\to T}(w)\neq 1, 必有至少一个 RT 的子集, 我们只需证明多个这样的 w_R 相乘不为 1, 直接利用 R 的极小性条件, 任取一个 R, 必有 \phi_{S\to R}(w) = w_R \neq 1, 因此在 T 上也不为 1.

这种递归构造的字长为 T(n) = 2T(n-1) + 2, 因此 T(n) = O(2^n), 所有 w_R 的串长加起来不超过 O(3^n), 由于一个回路实际上输出可能需要 O(n) 的长度, 路径的长度是 O(n3^n) 的, 并且可以通过.

不过值得一提的是, 有复杂度更低的构造. 我们将交换子的利用方法改成均匀的砍两半, 也就是 w_{L,R} = [w_L, w_R], 这样递归式就是 T(n) = 4T(n/2), 有 T(n) = O(n^2), 串长加起来不超过 O(n^{1.5} 2^n) (Sperner 定理说明最多有 \binom{n}{\lfloor n/2\rfloor} 个极小集合, Stirling 近似公式说明这个数是 O(n^{-0.5}2^n).), 路径长度有上界 O(n^{2.5} 2^n).

前面提到的 \binom{n}{n/2}=\Theta(n^{-0.5}2^n) 也能帮我们直接给出单调布尔函数数量的一个下界, 这说明我们的构造在最坏情况已经指数上做到最优了. 说句题外话, Erik Demaine 等人的工作进一步总结了将布尔函数做 \textbf{AND}, \textbf{OR} 时候对应的一些构造, 并讨论了一些相关的问题, 有兴趣的同学可以延伸阅读一下.