题 2.1
增广矩阵为:
012213102530
在第 1 列的主元在第 3 行,交换第 1 行和第 3 行:
210312201035
消元得:
2003−2122−11035
在第 2 列的主元在第 3 行,交换第 2 行和第 3 行:
20032−2121−1053
消元得:
20032021−4305417
回代求解得:
x1=−37,x2=316,x3=−317
题 2.2
证明:
由对称正定阵的 Cholesky 分解知:
A=LTL
其中 L 为下三角矩阵,对角元为正。
从而有:
∥x∥A=xTLTLx=∥Lx∥2
于是根据向量 2-范数的性质知:
-
正定性:
∥x∥A≥0 显然。
且:
∥x∥A=0⇔∥Lx∥2=0⇔Lx=0⇔x=0
-
齐次性:
∀α∈R,有:
∥αx∥A=∥αLx∥2=∣α∣∥Lx∥2=∣α∣∥x∥A
-
三角不等式:
∀x,y∈Rn,有:
∥x+y∥A=∥L(x+y)∥2≤∥Lx∥2+∥Ly∥2=∥x∥A+∥y∥A
综上,原范数是一个向量范数。
题 2.3
记 B−1=A=a1a2⋯an,
其中 ai 为 A 的第 i 行。
则利用矩阵乘法的按行展开得:
(BA)i=ai−k=i+1∑nak=ei.i=1,⋯,n
其中 ei=(0,⋯,1,⋯,0) 为第 i 位为 1 的单位行向量。
从下往上回代求解得:
anan−1ak=(0,⋯,0,1)=(0,⋯,0,1,1)=(0,⋯,0,1,1,2,4,⋯,2n−k−1),k≤n−2
也即:
∥ai∥1∥bi∥1=j=1∑n∣aij∣=2n−i=j=1∑n∣bij∣=n−i+1
从而有:
Cond(B)=∥A∥∞⋅∥B∥∞=imax∥ai∥1⋅imax∥bi∥1=n2n−1
题 2.4
证明 1
-
证明 Hn=HnT
归纳法。
n=0 时,H0=[1] 显然对称。
假设 Hn−1=Hn−1T 成立,下证对 Hn 也成立。这是因为:
HnT=[Hn−1THn−1THn−1T−Hn−1T]=[Hn−1Hn−1Hn−1−Hn−1]=Hn
成立!
-
证明 HnHnT=2nI2n
归纳法。
n=0 时,H0H0T=[1][1]=[1]=20⋅I1 成立。
假设 Hn−1Hn−1T=2n−1I2n−1 成立,下证对 Hn 也成立。这是因为:
HnHnT=[Hn−1Hn−1Hn−1−Hn−1][Hn−1THn−1THn−1T−Hn−1T]=[Hn−1Hn−1T+Hn−1Hn−1THn−1Hn−1T−Hn−1Hn−1THn−1Hn−1T−Hn−1Hn−1THn−1Hn−1T+Hn−1Hn−1T]=[2nI2n−1002nI2n−1]=2nI2n
成立!
证明 2
由于 Hn 对称正定,故其 LDL^T 分解存在且唯一。下归纳证明其 LDL^T 分解满足题示形式。
n=0 时,取 D0=[1],则 L0D0L0T=[1]=H0 满足题目形式。
假设对于分解 Hn−1=Ln−1Dn−1Ln−1T 满足题目形式,
下证对
Hn=[Hn−1Hn−1Hn−1−Hn−1]
也有同样的分解形式。也即验证以下关于对角阵 An−1,Bn−1 的方程有解:
[Ln−1Ln−10Ln−1][An−100Bn−1][Ln−1T0Ln−1TLn−1T]=[Hn−1Hn−1Hn−1−Hn−1]
等价于以下方程有解:
[Ln−1An−1Ln−1TLn−1An−1Ln−1TLn−1An−1Ln−1TLn−1(An−1+Bn−1)Ln−1T]=[Hn−1Hn−1Hn−1−Hn−1]
也即:
{Ln−1An−1Ln−1T=Hn−1Ln−1(An−1+Bn−1)Ln−1T=−Hn−1
利用归纳,构造对角阵:
{An−1=Dn−1Bn−1=−2Dn−1
满足上述方程,从而满足题目要求的分解对 Hn 存在。同时得到 Dn 的递推公式为:
Dn=[Dn−100−2Dn−1],D0=[1]
题 2.6
算法设计
本质上系数矩阵是上三角的,可以直接回代求解。但是直接回代求解的复杂度为 O(n3),我们需要想点办法改进一下。
先展开原方程,对第 i 行可得:
j=i∑n(k=i∑jSi,kTk,j)xj−λxi=bi
也即:
(Si,iTi,i−λ)xi+j=i+1∑n(k=i∑jSi,kTk,j)xj=bi
从而原始的回代求解即为:
xi=Si,iTi,i−λbi−∑j=i+1n(∑k=ijSi,kTk,j)xj,i=n,n−1,⋯,1
可以看到复杂度主要花在了计算双重求和 ∑j=i+1n(∑k=ijSi,kTk,j)xj 上,考虑优化这一部分。
利用恒等式:
j=i+1∑n(k=i∑jSi,kTk,j)xj=j=i+1∑n(k=i+1∑jSi,kTk,j)xj+j=i+1∑nSi,iTi,jxj=k=i+1∑nj=k∑nSi,k(Tk,jxj)+j=i+1∑nSi,i(Ti,jxj)=k=i+1∑nSi,kwk+Si,ivi
其中 wk=∑j=knTk,jxj,vk=∑j=k+1nTk,jxj。
于是我们得到改进的回代求解:
wi+1vixi=vi+1+Ti+1,i+1xi+1=j=i+1∑nTi,jxj=Si,iTi,i−λbi−Si,ivi−∑j=i+1nSi,jwj
其中 wk 与 vk 均只需求解一次,后续重复利用。在回代求解 xi 之前,已经计算好了 wk(k≥i+1)和 vi。
并且由于 wk 和 vk 的相关关系,我们可以只使用一个 w 数组。
复杂度分析
核心代码如下:
// 求解
x(n - 1) = b(n - 1) / (S(n - 1, n - 1) * T(n - 1, n - 1) - lambda);
for (int i = n - 2; i >= 0; i--) {
// 预处理 w(i + 1), v(i)
w(i + 1) += T(i + 1, i + 1) * x(i + 1); // w(i + 1)
for (int j = i + 1; j < n; j++) {
w(i) += T(i, j) * x(j); // v(i)
}
// 求解 x(i)
x(i) = b(i);
for (int j = i; j < n; j++) {
x(i) -= S(i, j) * w(j);
}
x(i) /= (S(i, i) * T(i, i) - lambda);
}
只考虑求解过程和浮点数运算,外层循环有 n−1 次,每次内层循环有 O(2n−2i) 次。
故时间复杂度:
T=i=0∑n−2O(2n−2i)=O(k=2∑n2k)=O(2n2)
空间复杂度上需要 O(n) 的额外空间。
题 2.7
问题 1
在不重复操作(模 2)意义下,解不一定存在,也不一定唯一,但是要么存在且唯一,要么可能不存在且可能不唯一。注意以下的计算都在域 F2 上进行。
考虑一个 m×n 的网格,用状态向量 v∈F2mn 表示所有灯的亮灭情况。
其中 v(i−1)⋅n+j=1 表示 (i,j) 灯亮,反之则灭。初始状态向量记为 v(0)。
所有的操作对应操作向量 x∈F2mn。
其中 x(i−1)⋅n+j=1 表示操作了 (i,j) 灯,反之不操作。此处不考虑重复操作。
操作 (i,j) 灯带来的影响是使自己及周围灯改变亮灭,也即使状态向量中对应自己及周围灯的元素加 1。
从而定义如下状态转移矩阵,其第 ((i−1)⋅n+j,(s−1)⋅n+t) 元素为 1 则表示操作 (i,j) 灯时会对 (s,t) 灯产生影响:
A=KnInOn⋮OnOnInKnIn⋯⋯OnInKn⋱InOn⋯⋯⋯KnInOnOnOn⋮InKnmn×mn
这是一个分块三对角矩阵。其中:
Kn=110⋮00111⋯⋯011⋱10⋯⋯⋯11000⋮11n×n
In 为单位阵,On 为零矩阵。
则经过所有操作后得到的终止状态向量即为:
v=v(0)+Ax
游戏有解等价于以下方程组有解:
Ax=v(0)
也即:
- 解存在 ⇔ ∀v(0)∈F2mn,v(0)∈Col(A)
⇔ dim(Col(A))=rank(A)=mn
- 解唯一 ⇔ det(A)=0
⇔ rank(A)=mn
从而若 A 满秩则解存在且唯一,否则解可能不存在且可能不唯一。
对于经典的 5×5 关灯游戏,状态转移矩阵 A 的秩为 23,不满秩,所以解可能不存在也可能不唯一。
实际枚举发现存在下述两种不改变任何灯的操作,说明了解确实不唯一。
图 1:不改变任何灯的操作 1(红色为操作,蓝色为不操作)
图 2:不改变任何灯的操作 2(红色为操作,蓝色为不操作)
问题 2
精确代数求解
可以通过求解线性方程组:
Ax=v(0)
完成任务。
如果 A 满秩则可以直接求解,否则可以使用最小二乘法求最优解。
DQN 强化学习
除了直接求解线性方程组外,我们可以基于 DQN(Deep Q-Network)训练一个人工智能近似求出最优解。
-
马尔可夫决策过程
首先将游戏形式化为马尔可夫决策过程 M=(S,A,T,R,γ):
- 状态空间 S:所有可能的灯阵状态,每个状态 s∈{0,1}m×n 表示当前各灯的亮灭情况
- 动作空间 A:选择操作 (i,j) 灯,共 ∣A∣=m×n 个离散动作
- 状态转移 T:确定性转移,执行动作后目标格子及其周围状态取反
- 奖励函数 R:每步给予 −1 的步数惩罚,当所有灯熄灭时给予 +100 的目标奖励
- 折扣因子 γ:取 0.99 以平衡步数与目标
-
神经网络架构
采用卷积神经网络结构,以利用灯阵的空间局部性:
| 层类型 | 配置 | 描述 |
|---|
| 输入层 | 1×m×n 张量 | 0/1 亮灭表示 |
| 卷积层 1 | 32 filters, 3×3, ReLU | 捕获局部十字形 |
| 卷积层 2 | 64 filters, 3×3, ReLU | 学习复合特征 |
| 全连接层 | 128 单元, ReLU | 全局信息整合 |
| 输出层 | m×n 个 Q 值 | 每个动作对应的状态-动作值 |
-
训练机制与优化策略
训练过程采用标准 DQN 流程:
-
探索策略:采用 ε-greedy 策略,初始时 ε=1.0,随训练指数衰减至 0.01。前期充分探索避免局部最优,后期利用已学策略精细化。
-
经验回放:设置容量为 105 的回放缓冲区,随机采样小批量经验以打破时间相关性。
-
稠密奖励:在稀疏奖励(每步 −1,胜利 +100)基础上,增加亮灯数减少的稠密奖励(减少 +5),以引导早期学习。待策略稳定后逐步移除,避免次优解。
-
评估
每 500 个 episode 进行一次评估,记录:
- 成功率:在限定步数内(如 3mn 步)完成游戏的比例
- 平均步数:成功 episode 的实际步数均值,衡量解的质量
- Q 值收敛性:检查目标状态下的最大 Q 值是否稳定收敛
方法对比
对比代数求解以及 DQN 强化学习方法:
| 维度 | 精确代数求解 | DQN 强化学习 |
|---|
| 解的质量 | 理论保证全局最优(最少步数) | 启发式近似,可能陷入局部最优 |
| 计算复杂度 | 训练无开销;推理 O(mn3),因为带状矩阵 | 训练 O(E⋅mn)(E为 episode数);推理 O(mn) |
| 可扩展性 | 受限于矩阵求逆,大规模困难 | 训练后推理时间与网格线性相关,可扩展至更大规模 |
| 适应性 | 要求状态观测精确,对噪声敏感 | 可通过数据增强学习鲁棒策略,容忍观测误差 |
| 在线调整 | 需重新求解方程组 | 支持增量学习,适应动态变化的初始配置 |
参考文献
-
Anderson, M., & Feil, T. (1998). Turning Lights Out with Linear Algebra. Mathematics Magazine, 71(4), 300–303.
-
Drissa D. C. (2023). Lights Out: An Application of Linear Algebra over a Finite Field.