从矩阵谱分解到矩形的最少正方形剖分

上次听AK讲到谱分解的时候,若有所思,下面将对思考稍作记录。

矩阵谱分解

关于谱分解有很多定义,主要区别在于条件的强弱,有的要求一个 n n n阶矩阵不仅要求可对角化,而且加强条件至其 n n n个特征值 λ 1 , λ 2 , . . . , λ n \lambda_1,\lambda_2,...,\lambda_n λ1,λ2,...,λn互异,我们这里由于不深入讨论谱分解,所以就采用最简单的定义来说。

定义:若 n n n阶矩阵 A A A可对角化,那么存在 n n n n n n阶方阵 G i G_i Gi使得 A = ∑ i = 1 n λ i G i A=\sum_{i=1}^n\lambda_iG_i A=i=1nλiGi.

证明:设矩阵 A A A n n n个特征值为 λ 1 , λ 2 , . . . , λ n \lambda_1,\lambda_2,...,\lambda_n λ1,λ2,...,λn,其对应的特征向量进行Gram-Schmidt 正交化后为 α 1 , α 2 , . . . , α n \alpha_1,\alpha_2,...,\alpha_n α1,α2,...,αn,那么有 A α i = λ i α i A\alpha_i=\lambda_i\alpha_i Aαi=λiαi。令 P = [ α 1 , α 2 , . . . , α n ] P=[\alpha_1,\alpha_2,...,\alpha_n] P=[α1,α2,...,αn],可以写成矩阵形式有 A P = P ⋅ d i a g ( λ 1 , λ 2 , . . . , λ n ) AP=P\cdot diag(\lambda_1,\lambda_2,...,\lambda_n) AP=Pdiag(λ1,λ2,...,λn)
此时,令: P − 1 = ( β 1 T , β 2 T , . . . β n T , ) T P^{-1}=(\beta_1^T,\beta_2^T,...\beta_n^T,)^T P1=(β1T,β2T,...βnT,)T,注意到这里的可逆性是由Gram-Schmidt 正交化保证的,当然,如果条件加强至特征值均互异,那么特征向量是相互独立的,这样不需要进行正交化,也可以保证可逆性。 β i \beta_i βi α i \alpha_i αi的size相同。
KaTeX parse error: Unknown column alignment: * at position 112: …{\begin{array}{*̲{20}{c}} {\beta…

于是谱分解的命题得证,上述证明同时给出了谱分解的一个构造。

问题引入

在讲座中AK猜测谱分解可以像SVD那样对图像进行压缩,但是有个不好的地方在于和SVD不同,谱分解要求矩阵(图像)为方阵。

当时有若干想法(假设谱分解可以用于图像压缩):

  • 既然谱分解只能作用于方阵,而对于一个 m ⋅ n m\cdot n mn的图像矩阵 A A A,那我们是否能对一个矩形方阵先进行正方形剖分,后处理呢?
  • 正方形剖分后,分别进行压缩后重组的图像和直接进行压缩(假设是图像本来就是方阵的情况下)是否有区别?如果有,那么从肉眼角度,区别大不大?
  • 既然要正方形剖分,那么这样的剖分是否存在?如果存在是否有最小正方形个数的剖分(这样的剖分可以使得处理和重组次数都最小)?如果有最小的剖分,那么这样的剖分数的方法是否唯一?
  • 矩形的正方形剖分种类是否有限

后来觉得不太对劲,虽然由谱分解 A = ∑ i = 1 n λ i G i A=\sum_{i=1}^n\lambda_iG_i A=i=1nλiGi,可以舍弃掉特征值较小的部分。但是,较小?实际上,矩阵的特征值完全有可能是复数,甚至几乎都是复数(当然这里的复数是特指虚部不为0的意思)。而SVD所求的特征值是 A T A A^TA ATA的,作为实对称矩阵的所有特征值必为实数。先用SVD来验证一下,“剖分-重组”的思路如何:
这里写图片描述

(a)和(b)两图都用SVD处理(仅保留一个特征值),从(a)中可以发现“剖分-重组”从肉眼上差别不大,但是从(b)中可以发现差别还是有点明显的,实际上这种思路本身就不抱太大的希望2333。

矩形的最少正方形剖分

完美正方形剖分不同的是,我们这里关注的是分成的正方形数量最小,而不需要和完美正方形剖分那样要求每个正方形大小互异。

  • 正方形剖分是否存在?
    存在性是显然的,我们以一个5x3的矩形为例,我们显然可以如下图(a)所示

这里写图片描述

将其分成15个小正方形显然是一种剖分,存在性即可证明。此时实际上不仅给出了一种剖分的构造同时也给出了"de数"(剖分后正方形的数量,de是decomposition的缩写)的一个上界,由最小数原理(自然数集的任一非空子集必有最小数)知道,"de数"必有最小值,即对于任意矩形,存在最少的正方形剖分。

关于"de数"的界还可以参考这篇文章Tiling a Rectangle with the Fewest Squares ,这篇文章指出,对于一个 m ⋅ n m \cdot n mn的矩形,其中 m ≥ n m\geq n mn,那么$log_2 n \leq $ de数 ≤ m n + C ⋅ l o g 2 n \leq \frac{m}{n}+C \cdot log_2 n nm+Clog2n,其中 C C C是一个常数,虽然这个结论没什么太大的用处,但是上下界都出现的 l o g 2 n log_2 n log2n引起了我的注意,它恰是辗转相除法的时间复杂度,为何突然扯到辗转相除法呢?且听我慢慢分析。

  • 贪心策略下的剖分

狗蔡在ak那场讨论班中给出了一种贪心的办法,即上图(b)中的办法。
对于这个5x3的矩形,先取一个以短边的正方形,即3x3的正方形,然后一直下去,可以观察发现似乎可以作为一种剖分的办法。

做了两三次手动计算后发现,实际上这就是一个辗转相除法,可以说明最后剩下的正方形的边长大小恰好就是 g c d ( m , n ) gcd(m,n) gcd(m,n)。对于相邻Fibonacci数型的矩形,这样的方法也是很优美的说,如下图所示:

这里写图片描述

对于这个8x13的矩形,我们甚至可以从繁分数的角度来一目了然:
13 8 = 1 + 1 1 + 1 1 + 1 1 + 1 2 \frac{{13}}{8} = 1 + \frac{1}{{1 + \frac{1}{{1 + \frac{1}{{1 + \frac{1}{2}}}}}}} 813=1+1+1+1+21111
F { 1 , 1 , 1 , 1 , 2 } F\{1,1,1,1,2\} F{1,1,1,1,2}表示,4个1恰好就是黄、绿、蓝、红四个正方形,最后一个2就是紫色的两个正方形。遗憾的是,这种辗转相除法并不是最优解,因为很快就构造出了反例
这里写图片描述

上面是9x10的矩形,可以发现右边这种辗转大法并不是最优的。但似乎可以证明,斐波那契型的矩形是最优解(具体是否有看到这样的文献不是太记得了ww)

  • "de数"剖分的方法是否唯一?

从目前来看,这个问题并不确定,一般情况下,除了对称解外,至今没有找到通用反例。但是对于斐波那契型矩形而言,却很容易构造多解。(利用辗转相除法)

好吧还是给出构造吧(如下图所示),注意到由于每次划分的时候,两部分之间都可以对调(如图),而由辗转相除法的复杂度可以估计数量大约有 O ( l o g n ) O(log n) O(logn)个,由乘法原理知道,这种情况下。同一个de数有 O ( 2 [ l o g n ] ) = O ( n ) O(2^{[log n]})=O(n) O(2[logn])=O(n)种划分。

这里写图片描述

  • 矩形的正方形剖分种类是否有限?

考虑一个这样的额外问题,一个矩形的正方形剖分的方法的种类是否是有限的呢?辗转相除法是一种通用剖分,直接分为 m ⋅ n m \cdot n mn个矩形也是一种通用剖分,所以对于一个矩形,它至少有两种方法,那么方法数是否有上界呢?

这个问题是和AK在吃饭的时候解决的,当时西园一楼的天花板恰好就是一个一个的小格子,有灯的部分恰好是有小格子的大矩形,恰好可以用来观察。下面这一步思考虽然有冗余,但是恰是思考的过程,我们可以得到:
D S q u a r e ≤ D R e c t a n g l e ≤ D T e t r i s , D_{Square}\leq D_{Rectangle} \leq D_{Tetris}, DSquareDRectangleDTetris,
其中 D S q u a r e , D R e c t a n g l e , D T e t r i s D_{Square}, D_{Rectangle}, D_{Tetris} DSquareDRectangleDTetris分别表示正方形剖分种数,矩形剖分种数和俄罗斯方块剖分种数,用 S n a m e S_{name} Sname表示他们的剖分方法的集合。其如下图所示:

这里写图片描述

上述不等式成立的原因是,显然有 S S q u a r e ⊆ S R e c t a n g l e ⊆ S T e t r i s S_{Square}\subseteq S_{Rectangle} \subseteq S_{Tetris} SSquareSRectangleSTetris,所以我们只需要给出 D T e t r i s D_{Tetris} DTetris的一个有限上界就可以说明正方形剖分种类是有限的了,实际上这个有限上界并不难给出。

考虑一个 m ⋅ n m \cdot n mn的矩形,可以容易知道它一共有 m ( n + 1 ) + n ( m + 1 ) m(n+1)+n(m+1) m(n+1)+n(m+1)条单位边,其中横向的有 m ( n + 1 ) m(n+1) m(n+1)条,纵向的有 n ( m + 1 ) n(m+1) n(m+1)条。对这些边进行二染色,即要么染色,要么不染色,设这样的处理种数的集合为 S b i n S_{bin} Sbin,显然有 S T e t r i s ⊆ S b i n S_{Tetris} \subseteq S_{bin} STetrisSbin,于是立马有:
D S q u a r e ≤ D T e t r i s < D b i n = 2 m ( n + 1 ) + n ( m + 1 ) , D_{Square} \leq D_{Tetris} < D_{bin}=2^{m(n+1)+n(m+1)}, DSquareDTetris<Dbin=2m(n+1)+n(m+1),
综上所述,正方形剖分种数的有限性得证。

数值求解

我们不妨回顾一下完全背包问题:

(完全背包问题)有 N N N种物品和一个容量为 V V V的背包,每种物品都有无限件可用。第 i i i种物品的体积是 c i c_i ci,价值是 w i w_i wi。将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。

而对于我们的剖分问题而言,我们可以将 m ⋅ n m \cdot n mn的矩形看成是一个容量为 m n mn mn的背包,有 n n n种物品(注意到,不妨设 m ≥ n m\geq n mn,那么最大最大的正方形边长为 n n n),那我们可以改写一下完全背包问题:

(矩形最少正方形剖分)有 n n n种物品和一个容量为 m n mn mn的背包,每种物品都有无限件可用。第 i i i种物品的体积是 c i 2 c_i^2 ci2,价值是1。将哪些物品装入背包可使这些物品的体积总和等于背包容量,且价值总和最小。

可以看出,矩形最少正方形剖分问题应该是比完全背包问题要强的,而完全背包问题是NP-complete问题,所以说可以大致估计矩形最少正方形剖分问题也应该是NP-complete问题。所以,本问题不妨从最优化的角度入手。

先约定一些符号,下面的模型也可以直接参考论文Minimum Tiling of a Rectangle by Squares:。对矩形建立一个平面直角坐标系,不过不是连续的,而是格点状的,左下角的格子看做为 ( 0 , 0 ) (0,0) (0,0)

这里写图片描述

我们称边长为 k k k的正方形占据着坐标 ( i , j ) (i,j) (i,j)是指,坐标 ( i , j ) (i,j) (i,j)恰好为正方形 k k k左下角,用 k ∈ ( i , j ) k \in (i,j) k(i,j)表示。由此定义,我们等会讨论的关注点都在上左下角!(注意辣)。更进一步定义:
KaTeX parse error: Unknown column alignment: * at position 36: …{\begin{array}{*̲{20}{c}} {1,t \…
其中,对于一个 M N MN MN的矩形, t ∈ { 1 , 2 , . . . , N } t \in \{1,2,...,N\} t{1,2,...,N}, i ∈ N t = { 0 , 1 , . . . , N − t } i\in N_t=\{0,1,...,N-t\} iNt={0,1,...,Nt}以及 j ∈ M t = { 0 , 1 , . . . , M − t } j\in M_t=\{0,1,...,M-t\} jMt={0,1,...,Mt}。由此,我们可以建立一个0-1规划的模型:
KaTeX parse error: Unknown column alignment: * at position 32: … \begin{array}{*̲{20}{c}} {}&{}&…
优化目标容易理解,而限制条件的目的是使得任意一个坐标 ( i , j ) (i,j) (i,j)最多只有一个正方形占据(占据是指 k ∈ ( i , j ) k \in (i,j) k(i,j)),上图(a),(b)给出两种案例给大家理解限制条件中和号的范围取定。(重申一次,我们考察的是正方形的左下角,上图黑框给出左下角的范围)另一方面,限制条件还有一个功能:使得矩形每个位置均在一个正方形内,没有缺漏。(想一想为什么,假设有缺漏,直接以这点为 ( i , j ) (i,j) (i,j)考虑一下限制条件即可)

这个0-1规划问题问题如何求解,额,只能上启发式算法了,特别注意到的是,模型中优化目标有 M N 2 MN^2 MN2个0-1变量,限制条件有大约 O ( M N ) O(MN) O(MN)个。规模可以说是相当地巨大。

这灰常考验计算能力,截止至2016年6月14日,已经在这里公布了380x380以内的矩形的计算结果。同时这里给出了一个在线的可视化结果。

下面给出40x40以内的直观结果, z z z轴表示de数,纵横代表 m , n m,n m,n,其中 m ≥ n m \geq n mn所以有一半是没有的,下面给大家欣赏一下:
这里写图片描述

一些补充

  • 最少正方形剖分的应用

最少正方形剖分是有直接的应用的,如有关量子霍尔阵列电阻的文章。

  • 猜想1: d e ( m , n ) = d e ( k m , k n ) de(m,n)=de(km,kn) de(m,n)=de(km,kn)

其实从上图(右)可以看出很多斜率相同的格点的值是相同的,这个猜想如果成立可以迅速扩大矩形的规模(现在是380x380),另外这个猜想至今没有找到反例。

  • 猜想2:若 m ≥ n m \geq n mn,那么有 d e ( m + n , n ) = d e ( m , n ) + 1 de(m+n,n)=de(m,n)+1 de(m+n,n)=de(m,n)+1

这个稍微画个图大致就会觉得还是蛮有道理的,但是很遗憾的是,在近几年里,这个猜想被推翻,反例是: d e ( 112 , 53 ) = d e ( 59 , 53 ) = 11 de(112,53) = de(59,53) = 11 de(112,53)=de(59,53)=11

  • 猜想3: d e ( m , n ) ∼ g ( m ) = l o g ϕ ( m ⋅ 5 ) de(m,n) \sim g(m)=log_\phi (m \cdot \sqrt{5}) de(m,n)g(m)=logϕ(m5 ),其中 ϕ = 1 + 5 2 \phi=\frac{1+\sqrt{5}}{2} ϕ=21+5

上面提到了繁分数,对于Fibonacci型的矩形,如 F k ⋅ F k + 1 F_k \cdot F_{k+1} FkFk+1的矩形,其繁分数对应的数码之和,或者说 d e ( F k , F k + 1 ) de(F_k,F_{k+1}) de(Fk,Fk+1)是满足(应该是成立的,暂时没证明), d e ( F k , F k + 1 ) ∼ l o g ϕ ( F k + 1 ⋅ 5 ) de(F_k,F_{k+1}) \sim log_\phi (F_{k+1} \cdot \sqrt{5}) de(Fk,Fk+1)logϕ(Fk+15 ),而对于一般情况我们用程序验证一下 d e ( m , n ) de(m,n) de(m,n) g ( m ) g(m) g(m)的关系,如下图所示:

这里写图片描述

可以看出效果还是可以的,“阶”大致吻合。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值